llvm-project/mlir/lib/Transforms
River Riddle d07c90e395 [mlir] Refactor the forward dataflow propagation in SCCP into a generic framework
This revision takes the forward value propagation engine in SCCP and refactors it into a more generalized forward dataflow analysis framework. This framework allows for propagating information about values across the various control flow constructs in MLIR, and removes the need for users to reinvent the traversal (often not as completely). There are a few aspects of the traversal, that were conservative for SCCP, that should be relaxed to support the needs of different value analyses. To keep this revision simple, these conservative behaviors will be left in (Note that this won't produce an incorrect result, but may produce more conservative results than necessary in certain edge cases. e.g. region entry arguments for non-region branch interface operations). The framework also only focuses on computing lattices for values, given the SCCP origins, but this is something to relax as needed in the future.

Given that this logic is already in SCCP, a majority of this commit is NFC. The more interesting parts are the interface glue that clients interact with.

Differential Revision: https://reviews.llvm.org/D100915
2021-04-26 19:39:46 -07:00
..
Utils [mlir][NFC] Add a using directive for llvm::SetVector 2021-04-15 16:09:34 -07:00
BufferDeallocation.cpp Revert "Revert "[mlir] Introduce CloneOp and adapt test cases in BufferDeallocation."" 2021-03-31 09:49:09 +02:00
BufferOptimizations.cpp [MLIR] Create memref dialect and move dialect-specific ops from std. 2021-03-15 11:14:09 +01:00
BufferResultsToOutParams.cpp [MLIR] Create memref dialect and move dialect-specific ops from std. 2021-03-15 11:14:09 +01:00
BufferUtils.cpp Revert "Revert "[mlir] Introduce CloneOp and adapt test cases in BufferDeallocation."" 2021-03-31 09:49:09 +02:00
Bufferize.cpp [PatternMatch] Big mechanical rename OwningRewritePatternList -> RewritePatternSet and insert -> add. NFC 2021-03-22 17:20:50 -07:00
CMakeLists.txt Revert "Revert "[mlir] Introduce CloneOp and adapt test cases in BufferDeallocation."" 2021-03-31 09:49:09 +02:00
CSE.cpp [mlir][cse] do not replace operands in previously simplified operations 2021-03-31 12:20:34 -07:00
Canonicalizer.cpp Rename FrozenRewritePatternList -> FrozenRewritePatternSet; NFC. 2021-03-22 17:40:45 -07:00
Inliner.cpp [mlir][Inliner] Don't optimize callees in async mode if there is only one to optimize 2021-02-23 18:44:09 -08:00
LocationSnapshot.cpp [mlir] Simplify various pieces of code now that Identifier has access to the Context/Dialect 2021-02-26 18:00:05 -08:00
LoopCoalescing.cpp [mlir] Use mlir::OpState::operator->() to get to methods of mlir::Operation. This is a preparation step to remove the corresponding methods from OpState. 2020-12-09 12:11:32 +01:00
LoopFusion.cpp [mlir][NFC] Add a using directive for llvm::SetVector 2021-04-15 16:09:34 -07:00
LoopInvariantCodeMotion.cpp [mlir][BuiltinDialect] Resolve comments from D91571 2020-11-19 11:12:49 -08:00
MemRefDataFlowOpt.cpp [MLIR] Create memref dialect and move dialect-specific ops from std. 2021-03-15 11:14:09 +01:00
NormalizeMemRefs.cpp [MLIR] Create memref dialect and move dialect-specific ops from std. 2021-03-15 11:14:09 +01:00
OpStats.cpp [mlir][BuiltinDialect] Resolve comments from D91571 2020-11-19 11:12:49 -08:00
ParallelLoopCollapsing.cpp [mlir] NFC: Rename LoopOps dialect to SCF (Structured Control Flow) 2020-05-11 15:04:27 +02:00
PassDetail.h [MLIR] Create memref dialect and move dialect-specific ops from std. 2021-03-15 11:14:09 +01:00
PipelineDataTransfer.cpp [MLIR] Create memref dialect and move dialect-specific ops from std. 2021-03-15 11:14:09 +01:00
SCCP.cpp [mlir] Refactor the forward dataflow propagation in SCCP into a generic framework 2021-04-26 19:39:46 -07:00
StripDebugInfo.cpp [mlir][BuiltinDialect] Resolve comments from D91571 2020-11-19 11:12:49 -08:00
SymbolDCE.cpp Define a `NoTerminator` traits that allows operations with a single block region to not provide a terminator 2021-03-25 03:59:03 +00:00
ViewOpGraph.cpp [mlir] Register the print-op-graph pass using ODS 2021-02-20 15:42:02 -08:00
ViewRegionGraph.cpp [mlir][Pass] Update the PassGen to generate base classes instead of utilities 2020-04-07 14:08:52 -07:00