summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2004-05-23 19:35:12 +0000
committerTanya Lattner <tonic@nondot.org>2004-05-23 19:35:12 +0000
commit466b534a570f574ed485d875bbca8454f68dcb52 (patch)
treefe90790ff8f78957e1b98186cd3380eb41228a4d /include
parent8e0262f0edec9e40bfe0bdc7f1c70a3f1cbb95c7 (diff)
downloadexternal_llvm-466b534a570f574ed485d875bbca8454f68dcb52.zip
external_llvm-466b534a570f574ed485d875bbca8454f68dcb52.tar.gz
external_llvm-466b534a570f574ed485d875bbca8454f68dcb52.tar.bz2
Adding support to clone MachineInstr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/CodeGen/MachineInstr.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h
index dac1c47..b6c1861 100644
--- a/include/llvm/CodeGen/MachineInstr.h
+++ b/include/llvm/CodeGen/MachineInstr.h
@@ -172,6 +172,7 @@ public:
contents.SymbolName = new std::string(M.getSymbolName());
}
+
~MachineOperand() {
if (isExternalSymbol())
delete contents.SymbolName;
@@ -367,7 +368,9 @@ class MachineInstr {
// OperandComplete - Return true if it's illegal to add a new operand
bool OperandsComplete() const;
- MachineInstr(const MachineInstr &); // DO NOT IMPLEMENT
+ //Constructor used by clone() method
+ MachineInstr(const MachineInstr&);
+
void operator=(const MachineInstr&); // DO NOT IMPLEMENT
// Intrusive list support
@@ -395,6 +398,9 @@ public:
const MachineBasicBlock* getParent() const { return parent; }
MachineBasicBlock* getParent() { return parent; }
+ //void setParent(const MachineBasicBlock *MBB) { parent = MBB; }
+ void setParent(MachineBasicBlock *MBB) { parent = MBB; }
+
/// getOpcode - Returns the opcode of this MachineInstr.
///
const int getOpcode() const { return Opcode; }
@@ -455,6 +461,12 @@ public:
MachineOperand::MO_VirtualRegister, V);
}
+ //Clone Instruction
+ //Create a copy of 'this' instruction that is
+ //identical in all ways except the following: The instruction has no
+ //parent The instruction has no name
+ MachineInstr* clone();
+
//
// Debugging support
//