mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-01 07:11:45 +00:00
ReMat of load from stub in pic mode extends the life of pic base. Currently spiller doesn't do a good job of estimating the impact. Disable for now.
llvm-svn: 49059
This commit is contained in:
parent
f322cc7462
commit
e1eee9570f
@ -37,6 +37,10 @@ namespace {
|
||||
cl::desc("Print instructions that the allocator wants to"
|
||||
" fuse, but the X86 backend currently can't"),
|
||||
cl::Hidden);
|
||||
cl::opt<bool>
|
||||
ReMatPICStubLoad("remat-pic-stub-load",
|
||||
cl::desc("Re-materialize load from stub in PIC mode"),
|
||||
cl::init(false), cl::Hidden);
|
||||
}
|
||||
|
||||
X86InstrInfo::X86InstrInfo(X86TargetMachine &tm)
|
||||
@ -782,6 +786,8 @@ bool X86InstrInfo::isReallyTriviallyReMaterializable(MachineInstr *MI) const {
|
||||
if (BaseReg == 0)
|
||||
return true;
|
||||
// Allow re-materialization of PIC load.
|
||||
if (!ReMatPICStubLoad && MI->getOperand(4).isGlobal())
|
||||
return false;
|
||||
MachineRegisterInfo &MRI = MI->getParent()->getParent()->getRegInfo();
|
||||
bool isPICBase = false;
|
||||
for (MachineRegisterInfo::def_iterator I = MRI.def_begin(BaseReg),
|
||||
|
Loading…
x
Reference in New Issue
Block a user