#
0816c186 |
| 23-Jul-2018 |
Chris Lattner <clattner@google.com> |
Add operand support to the Instruction base class. Add setOperand methods to all the things. Fill out the OneOperand trait class with support for getting and setting operands, allowing DimOp to hav
Add operand support to the Instruction base class. Add setOperand methods to all the things. Fill out the OneOperand trait class with support for getting and setting operands, allowing DimOp to have a working get/setOperand() method.
I'm not thrilled with the extra template argument on OneOperand, I'll will investigate removing that in a follow-on patch.
PiperOrigin-RevId: 205679696
show more ...
|
#
3de07e5c |
| 23-Jul-2018 |
Chris Lattner <clattner@google.com> |
Implement generic operand/result iterators that map through our implementation details, returning things in terms of values (which is what most clients want).
Implement support for operands and resu
Implement generic operand/result iterators that map through our implementation details, returning things in terms of values (which is what most clients want).
Implement support for operands and results on Operation, and simplify the asmprinter to use it.
PiperOrigin-RevId: 205608853
show more ...
|
#
e917c0a2 |
| 19-Jul-2018 |
Chris Lattner <clattner@google.com> |
Provide better factoring for the SSA types to allow type agnostic def/use iterators, along with type specific ones.
Also provide mechanics to cast from Operation up to OperationStmt etc.
PiperOrigi
Provide better factoring for the SSA types to allow type agnostic def/use iterators, along with type specific ones.
Also provide mechanics to cast from Operation up to OperationStmt etc.
PiperOrigin-RevId: 205175333
show more ...
|
#
9e0e01b4 |
| 06-Jul-2018 |
Chris Lattner <clattner@google.com> |
Implement Uday's suggestion to unique attribute lists across instructions, reducing the memory impact on Operation to one word instead of 3 from an std::vector.
Implement Jacques' suggestion to merg
Implement Uday's suggestion to unique attribute lists across instructions, reducing the memory impact on Operation to one word instead of 3 from an std::vector.
Implement Jacques' suggestion to merge OpImpl::Storage into OpImpl::Base.
PiperOrigin-RevId: 203426518
show more ...
|
#
1928e20a |
| 05-Jul-2018 |
Chris Lattner <clattner@google.com> |
Add the ability to have "Ops" defined as small C++ classes, with some nice properties: - They allow type checked dynamic casting from their base Operation. - They allow nice accessors for C++ clien
Add the ability to have "Ops" defined as small C++ classes, with some nice properties: - They allow type checked dynamic casting from their base Operation. - They allow nice accessors for C++ clients, e.g. a "getIndex()" method on 'dim' that returns an unsigned. - They work with both OperationInst/OperationStmt (once OperationStmt is implemented). - They get custom printing logic. They will eventually get custom parsing, verifier, and builder logic as well. - Out of tree clients can register their own operation set without having to change MLIR core, e.g. for TensorFlow or custom target instructions.
This registers addf and dim as examples.
PiperOrigin-RevId: 203382993
show more ...
|
#
b0dabbd6 |
| 05-Jul-2018 |
Chris Lattner <clattner@google.com> |
Add parsing for attributes and attibutes on operations. Add IR representation for attributes on operations. Split Operation out from OperationInst so it can be shared with OperationStmt one day.
P
Add parsing for attributes and attibutes on operations. Add IR representation for attributes on operations. Split Operation out from OperationInst so it can be shared with OperationStmt one day.
PiperOrigin-RevId: 203325366
show more ...
|