mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 00:20:11 +00:00
-Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed
stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84424 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -466,10 +466,8 @@ void StackSlotColoring::RewriteInstruction(MachineInstr *MI, int OldFI,
|
||||
// Update the memory references. This changes the MachineMemOperands
|
||||
// directly. They may be in use by multiple instructions, however all
|
||||
// instructions using OldFI are being rewritten to use NewFI.
|
||||
const Value *OldSV = MFI->isFixedObjectIndex(OldFI)
|
||||
? PseudoSourceValue::getFixedStack(OldFI) : PseudoSourceValue::getStack();
|
||||
const Value *NewSV = MFI->isFixedObjectIndex(NewFI)
|
||||
? PseudoSourceValue::getFixedStack(NewFI) : PseudoSourceValue::getStack();
|
||||
const Value *OldSV = PseudoSourceValue::getFixedStack(OldFI);
|
||||
const Value *NewSV = PseudoSourceValue::getFixedStack(NewFI);
|
||||
for (MachineInstr::mmo_iterator I = MI->memoperands_begin(),
|
||||
E = MI->memoperands_end(); I != E; ++I)
|
||||
if ((*I)->getValue() == OldSV)
|
||||
|
||||
Reference in New Issue
Block a user