If the target has V9 instructions, this pass is a noop, don't bother

running it.

llvm-svn: 25811
This commit is contained in:
Chris Lattner 2006-01-30 05:51:14 +00:00
parent 90d3fd9e7c
commit 321e337d95
1 changed files with 16 additions and 8 deletions

View File

@ -12,8 +12,10 @@
//===----------------------------------------------------------------------===//
#include "SparcV8.h"
#include "SparcV8Subtarget.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/Debug.h"
#include <iostream>
@ -36,14 +38,7 @@ namespace {
}
bool runOnMachineBasicBlock(MachineBasicBlock &MBB);
bool runOnMachineFunction(MachineFunction &F) {
bool Changed = false;
for (MachineFunction::iterator FI = F.begin(), FE = F.end();
FI != FE; ++FI)
Changed |= runOnMachineBasicBlock(*FI);
return Changed;
}
bool runOnMachineFunction(MachineFunction &F);
};
} // end of anonymous namespace
@ -122,3 +117,16 @@ bool FPMover::runOnMachineBasicBlock(MachineBasicBlock &MBB) {
}
return Changed;
}
bool FPMover::runOnMachineFunction(MachineFunction &F) {
// If the target has V9 instructions, the fp-mover pseudos will never be
// emitted. Avoid a scan of the instructions to improve compile time.
if (TM.getSubtarget<SparcV8Subtarget>().isV9())
return false;
bool Changed = false;
for (MachineFunction::iterator FI = F.begin(), FE = F.end();
FI != FE; ++FI)
Changed |= runOnMachineBasicBlock(*FI);
return Changed;
}