aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
diff options
context:
space:
mode:
authorMehdi Amini <joker.eph@gmail.com>2021-03-11 23:58:02 +0000
committerMehdi Amini <joker.eph@gmail.com>2021-03-25 03:59:03 +0000
commit973ddb7d6e96e744a785ba64c065b592987a005f (patch)
tree448766c0870f91f09d874384d2e15deddfb58149 /llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
parent0f99c6c56e73ef2265cb278ab8128eec5b30fee1 (diff)
downloadllvm-973ddb7d6e96e744a785ba64c065b592987a005f.zip
llvm-973ddb7d6e96e744a785ba64c065b592987a005f.tar.gz
llvm-973ddb7d6e96e744a785ba64c065b592987a005f.tar.bz2
Define a `NoTerminator` traits that allows operations with a single block region to not provide a terminator
In particular for Graph Regions, the terminator needs is just a historical artifact of the generalization of MLIR from CFG region. Operations like Module don't need a terminator, and before Module migrated to be an operation with region there wasn't any needed. To validate the feature, the ModuleOp is migrated to use this trait and the ModuleTerminator operation is deleted. This patch is likely to break clients, if you're in this case: - you may iterate on a ModuleOp with `getBody()->without_terminator()`, the solution is simple: just remove the ->without_terminator! - you created a builder with `Builder::atBlockTerminator(module_body)`, just use `Builder::atBlockEnd(module_body)` instead. - you were handling ModuleTerminator: it isn't needed anymore. - for generic code, a `Block::mayNotHaveTerminator()` may be used. Differential Revision: https://reviews.llvm.org/D98468
Diffstat (limited to 'llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp')
0 files changed, 0 insertions, 0 deletions