mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
- Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -70,15 +70,19 @@ inline const MachineInstrBuilder &addDirectMem(const MachineInstrBuilder &MIB,
|
||||
/// displacement. An example is: DWORD PTR [EAX + 4].
|
||||
///
|
||||
inline const MachineInstrBuilder &addRegOffset(const MachineInstrBuilder &MIB,
|
||||
unsigned Reg, int Offset) {
|
||||
return MIB.addReg(Reg).addImm(1).addReg(0).addImm(Offset);
|
||||
unsigned Reg, bool isKill,
|
||||
int Offset) {
|
||||
return MIB.addReg(Reg, false, false, isKill)
|
||||
.addImm(1).addReg(0).addImm(Offset);
|
||||
}
|
||||
|
||||
/// addRegReg - This function is used to add a memory reference of the form:
|
||||
/// [Reg + Reg].
|
||||
inline const MachineInstrBuilder &addRegReg(const MachineInstrBuilder &MIB,
|
||||
unsigned Reg1, unsigned Reg2) {
|
||||
return MIB.addReg(Reg1).addImm(1).addReg(Reg2).addImm(0);
|
||||
unsigned Reg1, bool isKill1,
|
||||
unsigned Reg2, bool isKill2) {
|
||||
return MIB.addReg(Reg1, false, false, isKill1).addImm(1)
|
||||
.addReg(Reg2, false, false, isKill2).addImm(0);
|
||||
}
|
||||
|
||||
inline const MachineInstrBuilder &addFullAddress(const MachineInstrBuilder &MIB,
|
||||
|
Reference in New Issue
Block a user