diff options
author | Chris Lattner <sabre@nondot.org> | 2006-10-20 22:39:36 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-10-20 22:39:36 +0000 |
commit | fcfcb6cb502fd4562b57425a5802dc52f358c451 (patch) | |
tree | 861d786b4fab7e4e6c352746eb86b5ae865dee14 /include/llvm/CodeGen/MachineInstr.h | |
parent | 9dcbf0dedc47e667ed90a46844cbf8655eda0070 (diff) |
add isIdenticalTo method to machineinstr/operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31087 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineInstr.h')
-rw-r--r-- | include/llvm/CodeGen/MachineInstr.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h index b3955b6c19..ca38fe68f7 100644 --- a/include/llvm/CodeGen/MachineInstr.h +++ b/include/llvm/CodeGen/MachineInstr.h @@ -118,6 +118,10 @@ public: assert(isImm() && "Wrong MachineOperand accessor"); return contents.immedVal; } + MachineBasicBlock *getMBB() const { + assert(isMachineBasicBlock() && "Wrong MachineOperand accessor"); + return contents.MBB; + } MachineBasicBlock *getMachineBasicBlock() const { assert(isMachineBasicBlock() && "Wrong MachineOperand accessor"); return contents.MBB; @@ -203,6 +207,9 @@ public: contents.immedVal = Idx; } + /// isIdenticalTo - Return true if this operand is identical to the specified + /// operand. + bool isIdenticalTo(const MachineOperand &Other) const; /// ChangeToImmediate - Replace this operand with a new immediate operand of /// the specified value. If an operand is known to be an immediate already, @@ -279,6 +286,18 @@ public: return Operands[i]; } + + /// isIdenticalTo - Return true if this instruction is identical to (same + /// opcode and same operands as) the specified instruction. + bool isIdenticalTo(const MachineInstr *Other) const { + if (Other->getOpcode() != getOpcode() || + getNumOperands() != getNumOperands()) + return false; + for (unsigned i = 0, e = getNumOperands(); i != e; ++i) + if (!getOperand(i).isIdenticalTo(Other->getOperand(i))) + return false; + return true; + } /// clone - Create a copy of 'this' instruction that is identical in /// all ways except the the instruction has no parent, prev, or next. |