forked from OSchip/llvm-project
Turn on post register allocation scheduler.
llvm-svn: 153554
This commit is contained in:
parent
5ba593f509
commit
047473e293
|
@ -132,6 +132,11 @@ getReservedRegs(const MachineFunction &MF) const {
|
|||
return Reserved;
|
||||
}
|
||||
|
||||
bool
|
||||
MipsRegisterInfo::requiresRegisterScavenging(const MachineFunction &MF) const {
|
||||
return true;
|
||||
}
|
||||
|
||||
// This function eliminate ADJCALLSTACKDOWN,
|
||||
// ADJCALLSTACKUP pseudo instructions
|
||||
void MipsRegisterInfo::
|
||||
|
|
|
@ -47,6 +47,8 @@ struct MipsRegisterInfo : public MipsGenRegisterInfo {
|
|||
|
||||
BitVector getReservedRegs(const MachineFunction &MF) const;
|
||||
|
||||
virtual bool requiresRegisterScavenging(const MachineFunction &MF) const;
|
||||
|
||||
void eliminateCallFramePseudoInstr(MachineFunction &MF,
|
||||
MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I) const;
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include "MipsSubtarget.h"
|
||||
#include "Mips.h"
|
||||
#include "MipsRegisterInfo.h"
|
||||
#include "llvm/Support/TargetRegistry.h"
|
||||
|
||||
#define GET_SUBTARGETINFO_TARGET_DESC
|
||||
|
@ -54,3 +55,14 @@ MipsSubtarget::MipsSubtarget(const std::string &TT, const std::string &CPU,
|
|||
if (TT.find("linux") == std::string::npos)
|
||||
IsLinux = false;
|
||||
}
|
||||
|
||||
bool
|
||||
MipsSubtarget::enablePostRAScheduler(CodeGenOpt::Level OptLevel,
|
||||
TargetSubtargetInfo::AntiDepBreakMode& Mode,
|
||||
RegClassVector& CriticalPathRCs) const {
|
||||
Mode = TargetSubtargetInfo::ANTIDEP_CRITICAL;
|
||||
CriticalPathRCs.clear();
|
||||
CriticalPathRCs.push_back(hasMips64() ?
|
||||
&Mips::CPU64RegsRegClass : &Mips::CPURegsRegClass);
|
||||
return OptLevel >= CodeGenOpt::Default;
|
||||
}
|
||||
|
|
|
@ -89,6 +89,9 @@ protected:
|
|||
InstrItineraryData InstrItins;
|
||||
|
||||
public:
|
||||
virtual bool enablePostRAScheduler(CodeGenOpt::Level OptLevel,
|
||||
AntiDepBreakMode& Mode,
|
||||
RegClassVector& CriticalPathRCs) const;
|
||||
|
||||
/// Only O32 and EABI supported right now.
|
||||
bool isABI_EABI() const { return MipsABI == EABI; }
|
||||
|
|
Loading…
Reference in New Issue