diff options
author | Chris Lattner <sabre@nondot.org> | 2002-10-29 23:18:23 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-10-29 23:18:23 +0000 |
commit | 7db458fb0768059f050d3a0f1a26818fa8e22712 (patch) | |
tree | 5afe2b029f69d09ae5ae6ac750119db7c312381a /include | |
parent | a3bbcb5b664c1c851b87392119608901b2e1837c (diff) | |
download | llvm-7db458fb0768059f050d3a0f1a26818fa8e22712.tar.gz llvm-7db458fb0768059f050d3a0f1a26818fa8e22712.tar.bz2 llvm-7db458fb0768059f050d3a0f1a26818fa8e22712.tar.xz |
Add capability to have machine instruction autoinsert when it is created
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4424 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/MachineInstr.h | 20 | ||||
-rw-r--r-- | include/llvm/CodeGen/MachineInstrBuilder.h | 10 |
2 files changed, 18 insertions, 12 deletions
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h index 221340e6de..048f884c66 100644 --- a/include/llvm/CodeGen/MachineInstr.h +++ b/include/llvm/CodeGen/MachineInstr.h @@ -15,6 +15,7 @@ #include <vector> class Value; class Function; +class MachineBasicBlock; typedef int MachineOpCode; @@ -239,19 +240,26 @@ public: /// MachineInstr ctor - This constructor only does a _reserve_ of the /// operands, not a resize for them. It is expected that if you use this that /// you call add* methods below to fill up the operands, instead of the Set - /// methods. + /// methods. Eventually, the "resizing" ctors will be phased out. /// MachineInstr(MachineOpCode Opcode, unsigned numOperands, bool XX, bool YY); - // - // Support to rewrite a machine instruction in place: for now, simply - // replace() and then set new operands with Set.*Operand methods below. - // + /// MachineInstr ctor - Work exactly the same as the ctor above, except that + /// the MachineInstr is created and added to the end of the specified basic + /// block. + /// + MachineInstr(MachineBasicBlock *MBB, MachineOpCode Opcode, unsigned numOps); + + + /// replace - Support to rewrite a machine instruction in place: for now, + /// simply replace() and then set new operands with Set.*Operand methods + /// below. + /// void replace(MachineOpCode Opcode, unsigned numOperands); - // // The opcode. // + const MachineOpCode getOpcode() const { return opCode; } const MachineOpCode getOpCode() const { return opCode; } // diff --git a/include/llvm/CodeGen/MachineInstrBuilder.h b/include/llvm/CodeGen/MachineInstrBuilder.h index 9b61abe4ba..909d101e90 100644 --- a/include/llvm/CodeGen/MachineInstrBuilder.h +++ b/include/llvm/CodeGen/MachineInstrBuilder.h @@ -78,11 +78,9 @@ inline MachineInstrBuilder BuildMI(MachineOpCode Opcode, unsigned NumOperands) { return MachineInstrBuilder(new MachineInstr(Opcode, NumOperands, true, true)); } -#if 0 -inline MachineInstrBuilder BuildMI(MBasicBlock *BB, MachineOpCode Opcode, - unsigned DestReg = 0) { - return MachineInstrBuilder(new MachineInstr(BB, Opcode, DestReg)); +inline MachineInstrBuilder BuildMI(MachineBasicBlock *BB, MachineOpCode Opcode, + unsigned NumOperands) { + return MachineInstrBuilder(new MachineInstr(BB, Opcode, NumOperands)); } -#endif - + #endif |