forked from OSchip/llvm-project
parent
d299dbac0e
commit
0a2990a7c6
|
@ -256,7 +256,7 @@ void PhyRegAlloc::addInterferencesForArgs()
|
||||||
addInterference( *ArgIt, InSet, false ); // add interferences between
|
addInterference( *ArgIt, InSet, false ); // add interferences between
|
||||||
// args and LVars at start
|
// args and LVars at start
|
||||||
if( DEBUG_RA > 1) {
|
if( DEBUG_RA > 1) {
|
||||||
cout << " - %% adding interference for argument ";
|
cout << " - %% adding interference for argument ";
|
||||||
printValue( (const Value *) *ArgIt); cout << endl;
|
printValue( (const Value *) *ArgIt); cout << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -326,7 +326,7 @@ void PhyRegAlloc::insertCallerSavingCode(const MachineInstr *MInst,
|
||||||
|
|
||||||
// if the value is in both LV sets (i.e., live before and after
|
// if the value is in both LV sets (i.e., live before and after
|
||||||
// the call machine instruction)
|
// the call machine instruction)
|
||||||
|
|
||||||
unsigned Reg = MRI.getUnifiedRegNum(RCID, Color);
|
unsigned Reg = MRI.getUnifiedRegNum(RCID, Color);
|
||||||
|
|
||||||
if( PushedRegSet.find(Reg) == PushedRegSet.end() ) {
|
if( PushedRegSet.find(Reg) == PushedRegSet.end() ) {
|
||||||
|
@ -350,8 +350,12 @@ void PhyRegAlloc::insertCallerSavingCode(const MachineInstr *MInst,
|
||||||
|
|
||||||
PushedRegSet.insert( Reg );
|
PushedRegSet.insert( Reg );
|
||||||
StackOff -= 8; // ****TODO: Correct ??????
|
StackOff -= 8; // ****TODO: Correct ??????
|
||||||
cerr << "\n $$$ Inserted caller saving instr";
|
|
||||||
|
if(DEBUG_RA) {
|
||||||
|
cout << "For callee save call inst:" << *MInst << endl;
|
||||||
|
cerr << "\n -inserted caller saving instrs:\n\t ";
|
||||||
|
cerr << *AdIBef << "\n\t" << *AdIAft ;
|
||||||
|
}
|
||||||
} // if not already pushed
|
} // if not already pushed
|
||||||
|
|
||||||
} // if LR has a volatile color
|
} // if LR has a volatile color
|
||||||
|
@ -405,10 +409,9 @@ void PhyRegAlloc::updateMachineCode()
|
||||||
|
|
||||||
for( AdIt = IBef.begin(); AdIt != IBef.end() ; ++AdIt ) {
|
for( AdIt = IBef.begin(); AdIt != IBef.end() ; ++AdIt ) {
|
||||||
|
|
||||||
cerr << " *$* PREPENDed instr opcode: ";
|
if( DEBUG_RA)
|
||||||
cerr << TargetInstrDescriptors[(*AdIt)->getOpCode()].opCodeString;
|
cerr << " *$* PREPENDed instr " << *AdIt << endl;
|
||||||
cerr << endl;
|
|
||||||
|
|
||||||
MInstIterator = MIVec.insert( MInstIterator, *AdIt );
|
MInstIterator = MIVec.insert( MInstIterator, *AdIt );
|
||||||
++MInstIterator;
|
++MInstIterator;
|
||||||
}
|
}
|
||||||
|
@ -513,10 +516,9 @@ void PhyRegAlloc::updateMachineCode()
|
||||||
|
|
||||||
for( AdIt = IAft.begin(); AdIt != IAft.end() ; ++AdIt ) {
|
for( AdIt = IAft.begin(); AdIt != IAft.end() ; ++AdIt ) {
|
||||||
|
|
||||||
cerr << " *#* APPENDed instr opcode: ";
|
if(DEBUG_RA)
|
||||||
cerr << TargetInstrDescriptors[(*AdIt)->getOpCode()].opCodeString;
|
cerr << " *#* APPENDed instr opcode: " << *AdIt << endl;
|
||||||
cerr << endl;
|
|
||||||
|
|
||||||
MInstIterator = MIVec.insert( MInstIterator, *AdIt );
|
MInstIterator = MIVec.insert( MInstIterator, *AdIt );
|
||||||
++MInstIterator;
|
++MInstIterator;
|
||||||
}
|
}
|
||||||
|
@ -574,8 +576,8 @@ void PhyRegAlloc::printMachineCode()
|
||||||
MachineOperand& Op = MInst->getOperand(OpNum);
|
MachineOperand& Op = MInst->getOperand(OpNum);
|
||||||
|
|
||||||
if( Op.getOperandType() == MachineOperand::MO_VirtualRegister ||
|
if( Op.getOperandType() == MachineOperand::MO_VirtualRegister ||
|
||||||
Op.getOperandType() == MachineOperand::MO_CCRegister ||
|
Op.getOperandType() == MachineOperand::MO_CCRegister /*||
|
||||||
Op.getOperandType() == MachineOperand::MO_PCRelativeDisp ) {
|
Op.getOperandType() == MachineOperand::MO_PCRelativeDisp*/ ) {
|
||||||
|
|
||||||
const Value *const Val = Op.getVRegValue () ;
|
const Value *const Val = Op.getVRegValue () ;
|
||||||
// ****this code is temporary till NULL Values are fixed
|
// ****this code is temporary till NULL Values are fixed
|
||||||
|
@ -751,7 +753,7 @@ void PhyRegAlloc::allocateRegisters()
|
||||||
colorIncomingArgs();
|
colorIncomingArgs();
|
||||||
colorCallRetArgs();
|
colorCallRetArgs();
|
||||||
|
|
||||||
|
|
||||||
updateMachineCode();
|
updateMachineCode();
|
||||||
if (DEBUG_RA) {
|
if (DEBUG_RA) {
|
||||||
PrintMachineInstructions(Meth);
|
PrintMachineInstructions(Meth);
|
||||||
|
|
Loading…
Reference in New Issue