mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Teach PHIElimination to split critical edges when -split-phi-edges is enabled.
Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86725 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -103,7 +103,10 @@ public:
|
||||
Kills.erase(I);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// findKill - Find a kill instruction in MBB. Return NULL if none is found.
|
||||
MachineInstr *findKill(const MachineBasicBlock *MBB) const;
|
||||
|
||||
void dump() const;
|
||||
};
|
||||
|
||||
@ -263,6 +266,10 @@ public:
|
||||
void HandleVirtRegDef(unsigned reg, MachineInstr *MI);
|
||||
void HandleVirtRegUse(unsigned reg, MachineBasicBlock *MBB,
|
||||
MachineInstr *MI);
|
||||
|
||||
/// addNewBlock - Add a new basic block A as an empty predecessor of B. All
|
||||
/// variables that are live into B will be marked as passing live through A.
|
||||
void addNewBlock(MachineBasicBlock *A, MachineBasicBlock *B);
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
Reference in New Issue
Block a user