llvm-project/mlir/lib/IR
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
..
AffineExpr.cpp Cleanup post cl/235283610 - NFC 2019-03-29 16:42:20 -07:00
AffineExprDetail.h [MLIR] Sketch AffineExpr value type 2019-03-29 13:25:42 -07:00
AffineMap.cpp Make IndexType a standard type instead of a builtin. This also cleans up some unnecessary factory methods on the Type class. 2019-03-29 16:25:38 -07:00
AffineMapDetail.h Introduce Fourier-Motzkin variable elimination + other cleanup/support 2019-03-29 13:38:24 -07:00
AsmPrinter.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
AttributeDetail.h Add a new class NamedAttributeList to deduplicate named attribute handling between Function and Instruction. 2019-03-29 16:45:40 -07:00
Attributes.cpp Add support for named function argument attributes. The attribute dictionary is printed after the argument type: 2019-03-29 16:50:15 -07:00
Block.cpp Remove the restriction that only registered terminator operations may terminate a block and have block operands. This allows for any operation to hold block operands. It also introduces the notion that unregistered operations may terminate a block. As such, the 'isTerminator' api on Instruction has been split into 'isKnownTerminator' and 'isKnownNonTerminator'. 2019-03-29 16:22:23 -07:00
Builders.cpp Add an assertion on the builder to ensure that a block is set before creating an operation 2019-03-29 16:54:35 -07:00
Dialect.cpp Validate the names of attribute, dialect, and functions during verification. This essentially enforces the parsing rules upon their names. 2019-03-29 16:44:53 -07:00
Function.cpp Add support for named function argument attributes. The attribute dictionary is printed after the argument type: 2019-03-29 16:50:15 -07:00
Instruction.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
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 Support NameLoc and CallSiteLoc for mlir::Location 2019-03-29 14:37:34 -07:00
LocationDetail.h Support NameLoc and CallSiteLoc for mlir::Location 2019-03-29 14:37:34 -07:00
MLIRContext.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
Module.cpp Implement initial support for function attributes, including parser, printer, 2019-03-29 13:02:44 -07:00
Operation.cpp Remove the restriction that only registered terminator operations may terminate a block and have block operands. This allows for any operation to hold block operands. It also introduces the notion that unregistered operations may terminate a block. As such, the 'isTerminator' api on Instruction has been split into 'isKnownTerminator' and 'isKnownNonTerminator'. 2019-03-29 16:22:23 -07:00
PatternMatch.cpp Remove remaining references to OperationInst in all directories except for lib/Transforms. 2019-03-29 16:10:38 -07:00
StandardTypes.cpp Make IndexType a standard type instead of a builtin. This also cleans up some unnecessary factory methods on the Type class. 2019-03-29 16:25:38 -07:00
TypeDetail.h Migrate VectorOrTensorType/MemRefType shape api to use int64_t instead of int. 2019-03-29 15:33:20 -07:00
Types.cpp Validate the names of attribute, dialect, and functions during verification. This essentially enforces the parsing rules upon their names. 2019-03-29 16:44:53 -07:00
Value.cpp Begin the process of fully removing OperationInst. This patch cleans up references to OperationInst in the /include, /AffineOps, and lib/Analysis. 2019-03-29 16:09:36 -07:00