AffineLoopFusion: Prevent fusion of multi-out-edge producer loops
authorDiego Caballero <diego.caballero@intel.com>
Tue, 3 Dec 2019 14:09:21 +0000 (06:09 -0800)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Tue, 3 Dec 2019 14:09:50 +0000 (06:09 -0800)
commit330d1ff00ea85363125ca9b7e42dca50f6ea4ebe
treecc9e9259d40cd8b78e3509db464c933577844b8b
parent2125c0e3a8ec1e0abaadfac8cd9f0f1d8574d952
AffineLoopFusion: Prevent fusion of multi-out-edge producer loops

tensorflow/mlir#162 introduced a bug that
incorrectly allowed fusion of producer loops with multiple outgoing
edges. This commit fixes that problem. It also introduces a new flag to
disable sibling loop fusion so that we can test producer-consumer fusion
in isolation.

Closes tensorflow/mlir#259

COPYBARA_INTEGRATE_REVIEW=https://github.com/tensorflow/mlir/pull/259 from dcaballe:dcaballe/fix_multi_out_edge_producer_fusion 578d5661705fd5c56c555832d5e0528df88c5282
PiperOrigin-RevId: 283531105
mlir/lib/Transforms/LoopFusion.cpp
mlir/test/Transforms/loop-fusion.mlir