mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 04:09:45 +00:00
Use the new MI bundling API in MachineInstrBundle itself.
The new API is higher level than just manipulating the bundle flags directly, and the setIsInsideBundle() function will disappear soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170159 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
200e2370dc
commit
caf946edf3
@ -47,8 +47,8 @@ bool UnpackMachineBundles::runOnMachineFunction(MachineFunction &MF) {
|
||||
// Remove BUNDLE instruction and the InsideBundle flags from bundled
|
||||
// instructions.
|
||||
if (MI->isBundle()) {
|
||||
while (++MII != MIE && MII->isInsideBundle()) {
|
||||
MII->setIsInsideBundle(false);
|
||||
while (++MII != MIE && MII->isBundledWithPred()) {
|
||||
MII->unbundleFromPred();
|
||||
for (unsigned i = 0, e = MII->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MII->getOperand(i);
|
||||
if (MO.isReg() && MO.isInternalRead())
|
||||
@ -101,13 +101,15 @@ void llvm::finalizeBundle(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::instr_iterator FirstMI,
|
||||
MachineBasicBlock::instr_iterator LastMI) {
|
||||
assert(FirstMI != LastMI && "Empty bundle?");
|
||||
MIBundleBuilder Bundle(MBB, FirstMI, LastMI);
|
||||
|
||||
const TargetMachine &TM = MBB.getParent()->getTarget();
|
||||
const TargetInstrInfo *TII = TM.getInstrInfo();
|
||||
const TargetRegisterInfo *TRI = TM.getRegisterInfo();
|
||||
|
||||
MachineInstrBuilder MIB = BuildMI(MBB, FirstMI, FirstMI->getDebugLoc(),
|
||||
MachineInstrBuilder MIB = BuildMI(*MBB.getParent(), FirstMI->getDebugLoc(),
|
||||
TII->get(TargetOpcode::BUNDLE));
|
||||
Bundle.prepend(MIB);
|
||||
|
||||
SmallVector<unsigned, 32> LocalDefs;
|
||||
SmallSet<unsigned, 32> LocalDefSet;
|
||||
@ -177,7 +179,6 @@ void llvm::finalizeBundle(MachineBasicBlock &MBB,
|
||||
}
|
||||
}
|
||||
|
||||
FirstMI->setIsInsideBundle();
|
||||
Defs.clear();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user