Added MachineInstr::isBundled() to check if an instruction is part of a bundle.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150044 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Trick 2012-02-08 02:17:25 +00:00
parent 291411c7a1
commit 99a7a13f4a
3 changed files with 15 additions and 1 deletions

View File

@ -230,6 +230,10 @@ public:
clearFlag(InsideBundle);
}
/// isBundled - Return true if this instruction part of a bundle. This is true
/// if either itself or its following instruction is marked "InsideBundle".
bool isBundled() const;
/// getDebugLoc - Returns the debug location id of this MachineInstr.
///
DebugLoc getDebugLoc() const { return debugLoc; }

View File

@ -904,7 +904,7 @@ void LiveIntervals::moveInstr(MachineBasicBlock::iterator insertPt,
assert((insertPt == mbb->end() || insertPt->getParent() == mbb) &&
"Cannot handle moves across basic block boundaries.");
assert(&*insertPt != mi && "No-op move requested?");
assert(!mi->isInsideBundle() && "Can't handle bundled instructions yet.");
assert(!mi->isBundled() && "Can't handle bundled instructions yet.");
// Grab the original instruction index.
SlotIndex origIdx = indexes_->getInstructionIndex(mi);

View File

@ -890,6 +890,16 @@ unsigned MachineInstr::getNumExplicitOperands() const {
return NumOperands;
}
/// isBundled - Return true if this instruction part of a bundle. This is true
/// if either itself or its following instruction is marked "InsideBundle".
bool MachineInstr::isBundled() const {
if (isInsideBundle())
return true;
MachineBasicBlock::const_instr_iterator nextMI = this;
++nextMI;
return nextMI != Parent->instr_end() && nextMI->isInsideBundle();
}
bool MachineInstr::isStackAligningInlineAsm() const {
if (isInlineAsm()) {
unsigned ExtraInfo = getOperand(InlineAsm::MIOp_ExtraInfo).getImm();