Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects
that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
This commit is contained in:
@@ -131,11 +131,10 @@ void ilist_traits<MachineInstr>::transferNodesFromList(
|
||||
}
|
||||
|
||||
MachineBasicBlock::iterator MachineBasicBlock::getFirstTerminator() {
|
||||
const TargetInstrInfo& TII = *getParent()->getTarget().getInstrInfo();
|
||||
iterator I = end();
|
||||
while (I != begin() && TII.isTerminatorInstr((--I)->getOpcode()))
|
||||
while (I != begin() && (--I)->getDesc()->isTerminator())
|
||||
; /*noop */
|
||||
if (I != end() && !TII.isTerminatorInstr(I->getOpcode())) ++I;
|
||||
if (I != end() && !I->getDesc()->isTerminator()) ++I;
|
||||
return I;
|
||||
}
|
||||
|
||||
@@ -262,7 +261,7 @@ void MachineBasicBlock::ReplaceUsesOfBlockWith(MachineBasicBlock *Old,
|
||||
MachineBasicBlock::iterator I = end();
|
||||
while (I != begin()) {
|
||||
--I;
|
||||
if (!(I->getInstrDescriptor()->Flags & M_TERMINATOR_FLAG)) break;
|
||||
if (!I->getDesc()->isTerminator()) break;
|
||||
|
||||
// Scan the operands of this machine instruction, replacing any uses of Old
|
||||
// with New.
|
||||
|
||||
Reference in New Issue
Block a user