summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-10-29 23:18:23 +0000
committerChris Lattner <sabre@nondot.org>2002-10-29 23:18:23 +0000
commit7db458fb0768059f050d3a0f1a26818fa8e22712 (patch)
tree5afe2b029f69d09ae5ae6ac750119db7c312381a /include
parenta3bbcb5b664c1c851b87392119608901b2e1837c (diff)
downloadllvm-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.h20
-rw-r--r--include/llvm/CodeGen/MachineInstrBuilder.h10
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