forked from OSchip/llvm-project
Make non-module passes unconditionally added in the pass
manager for mips, and early exit if we don't want to do anything because of the current subtarget. llvm-svn: 213407
This commit is contained in:
parent
f4f1cff4ba
commit
a08db01b35
|
@ -449,7 +449,8 @@ bool MipsLongBranch::runOnMachineFunction(MachineFunction &F) {
|
|||
const MipsInstrInfo *TII =
|
||||
static_cast<const MipsInstrInfo*>(TM.getInstrInfo());
|
||||
|
||||
if (TM.getSubtarget<MipsSubtarget>().inMips16Mode())
|
||||
const MipsSubtarget &STI = TM.getSubtarget<MipsSubtarget>();
|
||||
if (STI.inMips16Mode() || !STI.enableLongBranchPass())
|
||||
return false;
|
||||
if ((TM.getRelocationModel() == Reloc::PIC_) &&
|
||||
TM.getSubtarget<MipsSubtarget>().isABI_O32() &&
|
||||
|
|
|
@ -124,13 +124,9 @@ void MipsPassConfig::addIRPasses() {
|
|||
// Install an instruction selector pass using
|
||||
// the ISelDag to gen Mips code.
|
||||
bool MipsPassConfig::addInstSelector() {
|
||||
if (getMipsSubtarget().allowMixed16_32()) {
|
||||
addPass(createMipsModuleISelDag(getMipsTargetMachine()));
|
||||
addPass(createMips16ISelDag(getMipsTargetMachine()));
|
||||
addPass(createMipsSEISelDag(getMipsTargetMachine()));
|
||||
} else {
|
||||
addPass(createMipsISelDag(getMipsTargetMachine()));
|
||||
}
|
||||
addPass(createMipsModuleISelDag(getMipsTargetMachine()));
|
||||
addPass(createMips16ISelDag(getMipsTargetMachine()));
|
||||
addPass(createMipsSEISelDag(getMipsTargetMachine()));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -166,15 +162,9 @@ void MipsTargetMachine::addAnalysisPasses(PassManagerBase &PM) {
|
|||
// print out the code after the passes.
|
||||
bool MipsPassConfig::addPreEmitPass() {
|
||||
MipsTargetMachine &TM = getMipsTargetMachine();
|
||||
const MipsSubtarget &Subtarget = TM.getSubtarget<MipsSubtarget>();
|
||||
addPass(createMipsDelaySlotFillerPass(TM));
|
||||
|
||||
if (Subtarget.enableLongBranchPass())
|
||||
addPass(createMipsLongBranchPass(TM));
|
||||
if (Subtarget.inMips16Mode() ||
|
||||
Subtarget.allowMixed16_32())
|
||||
addPass(createMipsConstantIslandPass(TM));
|
||||
|
||||
addPass(createMipsLongBranchPass(TM));
|
||||
addPass(createMipsConstantIslandPass(TM));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue