llvm-project/mlir/lib/IR
River Riddle 037742cdf2 Add support for early exit walk methods.
This is done by providing a walk callback that returns a WalkResult. This result is either `advance` or `interrupt`. `advance` means that the walk should continue, whereas `interrupt` signals that the walk should stop immediately. An example is shown below:

auto result = op->walk([](Operation *op) {
  if (some_invariant)
    return WalkResult::interrupt();
  return WalkResult::advance();
});

if (result.wasInterrupted())
  ...;

PiperOrigin-RevId: 266436700
2019-08-30 12:47:53 -07:00
..
AffineExpr.cpp Fix AffineExpr::simplifyAdd bug 2019-08-20 01:53:07 -07:00
AffineExprDetail.h AffineExpr: factor uniqu'ing out of MLIRContext.cpp 2019-06-01 19:53:43 -07:00
AffineMap.cpp Fix build of affine load/store with empty map 2019-08-20 10:44:18 -07:00
AffineMapDetail.h Fix build of affine load/store with empty map 2019-08-20 10:44:18 -07:00
AsmPrinter.cpp Make dumping using generic form more robust when IR ill-formed 2019-08-29 12:14:30 -07:00
AttributeDetail.h Ensure that DenseElementAttr data is 64-bit aligned. 2019-07-20 09:23:03 -07:00
Attributes.cpp Add iterator support to ElementsAttr and SparseElementsAttr. 2019-08-22 18:59:24 -07:00
Block.cpp Refactor the 'walk' methods for operations. 2019-08-29 13:04:50 -07:00
Builders.cpp Add support for LLVM lowering of binary ops on n-D vector types 2019-08-20 02:00:22 -07:00
CMakeLists.txt Link MLIRSupport to IR in OSS 2019-05-06 08:20:38 -07:00
Diagnostics.cpp Change from llvm::make_unique to std::make_unique 2019-08-17 11:06:03 -07:00
Dialect.cpp Move the parser extensions for aliases currently on Dialect to a new OpAsmDialectInterface. 2019-08-21 09:42:02 -07:00
Function.cpp FunctionSupport: wrap around bool to have a more semantic callback type 2019-08-08 12:11:54 -07:00
FunctionSupport.cpp FunctionSupport: wrap around bool to have a more semantic callback type 2019-08-08 12:11:54 -07:00
IntegerSet.cpp Introduce Fourier-Motzkin variable elimination + other cleanup/support 2019-03-29 13:38:24 -07:00
IntegerSetDetail.h Introduce Fourier-Motzkin variable elimination + other cleanup/support 2019-03-29 13:38:24 -07:00
Location.cpp NFC: Remove unnecessary context parameters from several Location getters. 2019-08-26 13:54:01 -07:00
LocationDetail.h Refactor the location classes to be attributes instead of separate IR classes. 2019-06-22 09:17:51 -07:00
MLIRContext.cpp NFC: Keep the dialect list in the context sorted by namespace. 2019-08-20 19:59:01 -07:00
Module.cpp NFC: Simplify ModuleTerminatorOp by using the HasParent trait. 2019-08-06 11:46:32 -07:00
Operation.cpp Refactor the 'walk' methods for operations. 2019-08-29 13:04:50 -07:00
OperationSupport.cpp NFC: Remove the explicit context from Operation::create and OperationState. 2019-08-26 17:34:48 -07:00
PatternMatch.cpp NFC: Update pattern rewrite API to pass OwningRewritePatternList by const reference. 2019-08-11 18:34:14 -07:00
Region.cpp Refactor the 'walk' methods for operations. 2019-08-29 13:04:50 -07:00
StandardTypes.cpp NFC: Move the Type::is* predicates to StandardTypes.cpp 2019-08-16 14:46:06 -07:00
SymbolTable.cpp Generalize the symbol table functionality of ModuleOp into a trait 'OpTrait::SymbolTable'. 2019-07-08 22:31:56 -07:00
TypeDetail.h Make MemRefType subclass ShapedType 2019-06-01 20:12:40 -07:00
TypeUtilities.cpp Improve support for opaque types in MLIR, allowing dialects to opt into 2019-08-07 11:50:26 -07:00
Types.cpp NFC: Add header blocks to improve readability. 2019-08-17 10:22:50 -07:00
Value.cpp NFC: Standardize the terminology used for parent ops/regions/etc. 2019-08-09 20:07:52 -07:00
Visitors.cpp Add support for early exit walk methods. 2019-08-30 12:47:53 -07:00