llvm-project/mlir/lib/Analysis
River Riddle a495f960e0 Introduce the notion of dialect attributes and dependent attributes. A dialect attribute derives its context from a specific dialect, whereas a dependent attribute derives context from what it is attached to. Following this, we now enforce that functions and function arguments may only contain dialect specific attributes. These are generic entities and cannot provide any specific context for a dependent attribute.
Dialect attributes are defined as:

        dialect-namespace `.` attr-name `:` attribute-value

Dialects can override any of the following hooks to verify the validity of a given attribute:
  * verifyFunctionAttribute
  * verifyFunctionArgAttribute
  * verifyInstructionAttribute

PiperOrigin-RevId: 236507970
2019-03-29 16:55:05 -07:00
..
AffineAnalysis.cpp NFC. Move all of the remaining operations left in BuiltinOps to StandardOps. The only thing left in BuiltinOps are the core MLIR types. The standard types can't be moved because they are referenced within the IR directory, e.g. in things like Builder. 2019-03-29 16:53:35 -07:00
AffineStructures.cpp Update addSliceBounds to deal with loops with floor's/mod's. 2019-03-29 16:53:50 -07:00
Dominance.cpp Rewrite the dominance info classes to allow for operating on arbitrary control flow within operation regions. The CSE pass is also updated to properly handle nested dominance. 2019-03-29 16:43:35 -07:00
LoopAnalysis.cpp NFC. Move all of the remaining operations left in BuiltinOps to StandardOps. The only thing left in BuiltinOps are the core MLIR types. The standard types can't be moved because they are referenced within the IR directory, e.g. in things like Builder. 2019-03-29 16:53:35 -07:00
MemRefBoundCheck.cpp NFC. Move all of the remaining operations left in BuiltinOps to StandardOps. The only thing left in BuiltinOps are the core MLIR types. The standard types can't be moved because they are referenced within the IR directory, e.g. in things like Builder. 2019-03-29 16:53:35 -07:00
MemRefDependenceCheck.cpp NFC. Move all of the remaining operations left in BuiltinOps to StandardOps. The only thing left in BuiltinOps are the core MLIR types. The standard types can't be moved because they are referenced within the IR directory, e.g. in things like Builder. 2019-03-29 16:53:35 -07:00
NestedMatcher.cpp Use consistent names for dialect op source files 2019-03-29 16:53:19 -07:00
OpStats.cpp Remove PassResult and have the runOnFunction/runOnModule functions return void instead. To signal a pass failure, passes should now invoke the 'signalPassFailure' method. This provides the equivalent functionality when needed, but isn't an intrusive part of the API like PassResult. 2019-03-29 16:50:44 -07:00
ParallelismDetection.cpp A simple pass to detect and mark all parallel loops 2019-03-29 16:53:03 -07:00
SliceAnalysis.cpp NFC. Move all of the remaining operations left in BuiltinOps to StandardOps. The only thing left in BuiltinOps are the core MLIR types. The standard types can't be moved because they are referenced within the IR directory, e.g. in things like Builder. 2019-03-29 16:53:35 -07:00
Utils.cpp Update addSliceBounds to deal with loops with floor's/mod's. 2019-03-29 16:53:50 -07:00
VectorAnalysis.cpp NFC. Move all of the remaining operations left in BuiltinOps to StandardOps. The only thing left in BuiltinOps are the core MLIR types. The standard types can't be moved because they are referenced within the IR directory, e.g. in things like Builder. 2019-03-29 16:53:35 -07:00
Verifier.cpp Introduce the notion of dialect attributes and dependent attributes. A dialect attribute derives its context from a specific dialect, whereas a dependent attribute derives context from what it is attached to. Following this, we now enforce that functions and function arguments may only contain dialect specific attributes. These are generic entities and cannot provide any specific context for a dependent attribute. 2019-03-29 16:55:05 -07:00