mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Re-apply 55467 with fix. If copy is being replaced by remat'ed def, transfer the implicit defs onto the remat'ed instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55564 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -96,6 +96,10 @@ namespace llvm {
|
||||
///
|
||||
SmallPtrSet<MachineInstr*, 32> JoinedCopies;
|
||||
|
||||
/// ReMatCopies - Keep track of copies eliminated due to remat.
|
||||
///
|
||||
SmallPtrSet<MachineInstr*, 32> ReMatCopies;
|
||||
|
||||
public:
|
||||
static char ID; // Pass identifcation, replacement for typeid
|
||||
SimpleRegisterCoalescing() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
@@ -194,6 +198,9 @@ namespace llvm {
|
||||
bool RemoveCopyByCommutingDef(LiveInterval &IntA, LiveInterval &IntB,
|
||||
MachineInstr *CopyMI);
|
||||
|
||||
bool ReMaterializeTrivialDef(LiveInterval &SrcInt, unsigned DstReg,
|
||||
MachineInstr *CopyMI);
|
||||
|
||||
/// TurnCopyIntoImpDef - If source of the specified copy is an implicit def,
|
||||
/// turn the copy into an implicit def.
|
||||
bool TurnCopyIntoImpDef(MachineBasicBlock::iterator &I,
|
||||
|
Reference in New Issue
Block a user