#
6fa31813 |
| 04-Apr-2019 |
River Riddle <riverriddle@google.com> |
Remove the non-postorder walk functions from Function/Block/Instruction and rename walkPostOrder to walk.
--
PiperOrigin-RevId: 241965239
|
#
67a52c44 |
| 02-Apr-2019 |
River Riddle <riverriddle@google.com> |
Rewrite the verify hooks on operations to use LogicalResult instead of bool. This also changes the return of Operation::emitError/emitOpError to LogicalResult as well.
--
PiperOrigin-RevId: 2415880
Rewrite the verify hooks on operations to use LogicalResult instead of bool. This also changes the return of Operation::emitError/emitOpError to LogicalResult as well.
--
PiperOrigin-RevId: 241588075
show more ...
|
#
3173a63f |
| 28-Mar-2019 |
Alex Zinenko <zinenko@google.com> |
Dialect Conversion: convert regions of operations when cloning them
Dialect conversion currently clones the operations that did not match any pattern. This includes cloning any regions that belong
Dialect Conversion: convert regions of operations when cloning them
Dialect conversion currently clones the operations that did not match any pattern. This includes cloning any regions that belong to these operations. Instead, apply conversion recursively to the nested regions.
Note that if an operation matched one of the conversion patterns, it is up to the pattern rewriter to fill in the regions of the converted operation. This may require calling back to the converter and is left for future work.
PiperOrigin-RevId: 240872410
show more ...
|
#
213b8d4d |
| 28-Mar-2019 |
River Riddle <riverriddle@google.com> |
Rename InstOperand to OpOperand.
PiperOrigin-RevId: 240814651
|
#
af9760fe |
| 28-Mar-2019 |
River Riddle <riverriddle@google.com> |
Replace remaining usages of the Instruction class with Operation.
PiperOrigin-RevId: 240777521
|
#
9c085406 |
| 27-Mar-2019 |
River Riddle <riverriddle@google.com> |
Replace usages of Instruction with Operation in the /Analysis directory.
PiperOrigin-RevId: 240569775
|
#
5a5bba02 |
| 27-Mar-2019 |
Alex Zinenko <zinenko@google.com> |
Introduce affine terminator
Due to legacy reasons (ML/CFG function separation), regions in affine control flow operations require contained blocks not to have terminators. This is inconsistent with
Introduce affine terminator
Due to legacy reasons (ML/CFG function separation), regions in affine control flow operations require contained blocks not to have terminators. This is inconsistent with the notion of the block and may complicate code motion between regions of affine control operations and other regions.
Introduce `affine.terminator`, a special terminator operation that must be used to terminate blocks inside affine operations and transfers the control back to he region enclosing the affine operation. For brevity and readability reasons, allow `affine.for` and `affine.if` to omit the `affine.terminator` in their regions when using custom printing and parsing format. The custom parser injects the `affine.terminator` if it is missing so as to always have it present in constructed operations.
Update transformations to account for the presence of terminator. In particular, most code motion transformation between loops should leave the terminator in place, and code motion between loops and non-affine blocks should drop the terminator.
PiperOrigin-RevId: 240536998
show more ...
|
#
c6b294ac |
| 27-Mar-2019 |
Jacques Pienaar <jpienaar@google.com> |
Include numeric header for std::accumulate.
PiperOrigin-RevId: 240462910
|
#
f9d91531 |
| 27-Mar-2019 |
River Riddle <riverriddle@google.com> |
Replace usages of Instruction with Operation in the /IR directory.
This is step 2/N to renaming Instruction to Operation.
PiperOrigin-RevId: 240459216
|
#
9ffdc930 |
| 26-Mar-2019 |
River Riddle <riverriddle@google.com> |
Rename the Instruction class to Operation. This just renames the class, usages of Instruction will still refer to a typedef in the interim.
This is step 1/N to renaming Instruction to Operation.
Pi
Rename the Instruction class to Operation. This just renames the class, usages of Instruction will still refer to a typedef in the interim.
This is step 1/N to renaming Instruction to Operation.
PiperOrigin-RevId: 240431520
show more ...
|
#
dd2b2ec5 |
| 24-Mar-2019 |
Chris Lattner <clattner@google.com> |
Push a bunch of 'consts' out of the *Op structure, in prep for removing OpPointer.
PiperOrigin-RevId: 240044712
|
#
986310a6 |
| 23-Mar-2019 |
Chris Lattner <clattner@google.com> |
Remove const from Value, Instruction, Argument, and the various methods on the *Op classes. This is a net reduction by almost 400LOC.
PiperOrigin-RevId: 239972443
|
#
5246bcee |
| 23-Mar-2019 |
Chris Lattner <clattner@google.com> |
Now that ConstOpPointer is gone, we can change the various methods generated by tblgen be non-const. This requires introducing some const_cast's at the moment, but those (and lots more stuff) will d
Now that ConstOpPointer is gone, we can change the various methods generated by tblgen be non-const. This requires introducing some const_cast's at the moment, but those (and lots more stuff) will disappear in subsequent patches.
This significantly simplifies those patches because the various tblgen op emitters get adjusted.
PiperOrigin-RevId: 239954566
show more ...
|
#
3d6c74ff |
| 22-Mar-2019 |
Chris Lattner <clattner@google.com> |
Remove const from mlir::Block.
This also eliminates some incorrect reinterpret_cast logic working around it, and numerous const-incorrect issues (like block argument iteration).
PiperOrigin-RevId:
Remove const from mlir::Block.
This also eliminates some incorrect reinterpret_cast logic working around it, and numerous const-incorrect issues (like block argument iteration).
PiperOrigin-RevId: 239712029
show more ...
|
#
88e9f418 |
| 21-Mar-2019 |
Chris Lattner <clattner@google.com> |
Continue pushing const out of the core IR types - in this case, remove const from Function.
PiperOrigin-RevId: 239638635
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1 |
|
#
366ebcf6 |
| 08-Feb-2019 |
River Riddle <riverriddle@google.com> |
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 th
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'.
PiperOrigin-RevId: 233076831
show more ...
|
Revision tags: llvmorg-8.0.0-rc2 |
|
#
870d7783 |
| 03-Feb-2019 |
River Riddle <riverriddle@google.com> |
Begin the process of fully removing OperationInst. This patch cleans up references to OperationInst in the /include, /AffineOps, and lib/Analysis.
PiperOrigin-RevId: 232199262
|
#
de2d0dfb |
| 03-Feb-2019 |
River Riddle <riverriddle@google.com> |
Fold the functionality of OperationInst into Instruction. OperationInst still exists as a forward declaration and will be removed incrementally in a set of followup cleanup patches.
PiperOrigin-RevI
Fold the functionality of OperationInst into Instruction. OperationInst still exists as a forward declaration and will be removed incrementally in a set of followup cleanup patches.
PiperOrigin-RevId: 232198540
show more ...
|
#
75553832 |
| 29-Jan-2019 |
River Riddle <riverriddle@google.com> |
Recommit: Define a AffineOps dialect as well as an AffineIfOp operation. Replace all instances of IfInst with AffineIfOp and delete IfInst.
PiperOrigin-RevId: 231342063
|
#
ae772b79 |
| 29-Jan-2019 |
Nicolas Vasilache <ntv@google.com> |
Automated rollback of changelist 231318632.
PiperOrigin-RevId: 231327161
|
#
5ecef2b3 |
| 29-Jan-2019 |
River Riddle <riverriddle@google.com> |
Define a AffineOps dialect as well as an AffineIfOp operation. Replace all instances of IfInst with AffineIfOp and delete IfInst.
PiperOrigin-RevId: 231318632
|
Revision tags: llvmorg-8.0.0-rc1 |
|
#
56544508 |
| 23-Jan-2019 |
Lei Zhang <antiagainst@google.com> |
Unify terms regarding assembly form to use generic vs. custom
This CL just changes various docs and comments to use the term "generic" and "custom" when mentioning assembly forms. To be consist, sev
Unify terms regarding assembly form to use generic vs. custom
This CL just changes various docs and comments to use the term "generic" and "custom" when mentioning assembly forms. To be consist, several methods are also renamed:
* FunctionParser::parseVerboseOperation() -> parseGenericOperation() * ModuleState::hasShorthandForm() -> hasCustomForm() * OpAsmPrinter::printDefaultOp() -> printGenericOp()
PiperOrigin-RevId: 230568819
show more ...
|
#
37663325 |
| 16-Jan-2019 |
Lei Zhang <antiagainst@google.com> |
Change impl::printBinaryOp() to consider operand and result type
The operand and result types of binary ops are not necessarily the same. For those binary ops, we cannot print in the short-form asse
Change impl::printBinaryOp() to consider operand and result type
The operand and result types of binary ops are not necessarily the same. For those binary ops, we cannot print in the short-form assembly.
Enhance impl:::printBinaryOp to consider operand and result types to select which assembly form to use.
PiperOrigin-RevId: 229608142
show more ...
|
#
54948a43 |
| 03-Jan-2019 |
River Riddle <riverriddle@google.com> |
Split the standard types from builtin types and move them into separate source files(StandardTypes.cpp/h). After this cl only FunctionType and IndexType are builtin types, but IndexType will likely b
Split the standard types from builtin types and move them into separate source files(StandardTypes.cpp/h). After this cl only FunctionType and IndexType are builtin types, but IndexType will likely become a standard type when the ml/cfgfunc merger is done. Mechanical NFC.
PiperOrigin-RevId: 227750918
show more ...
|
#
56e2a6cc |
| 29-Dec-2018 |
Chris Lattner <clattner@google.com> |
Merge the verifier logic for all functions into a unified framework, this requires enhancing DominanceInfo to handle the structure of an ML function, which is required anyway. Along the way, this al
Merge the verifier logic for all functions into a unified framework, this requires enhancing DominanceInfo to handle the structure of an ML function, which is required anyway. Along the way, this also fixes a const correctness problem with Instruction::getBlock().
This is step 24/n towards merging instructions and statements.
PiperOrigin-RevId: 227228900
show more ...
|