LoopFusionUtils CL 2/n: Factor out and generalize slice union computation.
authorAndy Davis <andydavis@google.com>
Wed, 29 May 2019 21:02:14 +0000 (14:02 -0700)
committerMehdi Amini <joker.eph@gmail.com>
Sun, 2 Jun 2019 03:08:52 +0000 (20:08 -0700)
commit1de0f97fff7b7f5fae21374e77d35c5c311c9f39
treec144650e3cb5305e3448f4a238200d638dbc61c2
parenta7b862240c5293a1b30c6ba2ddcc1b576feb2461
LoopFusionUtils CL 2/n: Factor out and generalize slice union computation.
    *) Factors slice union computation out of LoopFusion into Analysis/Utils (where other iteration slice utilities exist).
    *) Generalizes slice union computation to take the union of slices computed on all loads/stores pairs between source and destination loop nests.
    *) Fixes a bug in FlatAffineConstraints::addSliceBounds where redundant constraints were added.
    *) Takes care of a TODO to expose FlatAffineConstraints::mergeAndAlignIds as a public method.

--

PiperOrigin-RevId: 250561529
mlir/include/mlir/Analysis/AffineStructures.h
mlir/include/mlir/Analysis/Utils.h
mlir/lib/Analysis/AffineStructures.cpp
mlir/lib/Analysis/Utils.cpp
mlir/lib/Transforms/LoopFusion.cpp
mlir/lib/Transforms/TestLoopFusion.cpp
mlir/lib/Transforms/Utils/LoopFusionUtils.cpp