mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
Making this code const-correct would be a pain, so I'll hack it.
llvm-svn: 7350
This commit is contained in:
parent
2d6049baaf
commit
92dfc1ed32
@ -189,8 +189,8 @@ InstructionSelection::InsertCodeForPhis(Function &F)
|
||||
//
|
||||
MachineFunction &MF = MachineFunction::get(&F);
|
||||
for (MachineFunction::iterator BB = MF.begin(); BB != MF.end(); ++BB) {
|
||||
for (BasicBlock::iterator IIt = BB->getBasicBlock()->begin();
|
||||
PHINode *PN = dyn_cast<PHINode>(IIt); ++IIt) {
|
||||
for (BasicBlock::const_iterator IIt = BB->getBasicBlock()->begin();
|
||||
const PHINode *PN = dyn_cast<PHINode>(IIt); ++IIt) {
|
||||
// FIXME: This is probably wrong...
|
||||
Value *PhiCpRes = new PHINode(PN->getType(), "PhiCp:");
|
||||
|
||||
@ -209,7 +209,7 @@ InstructionSelection::InsertCodeForPhis(Function &F)
|
||||
for (vector<MachineInstr*>::iterator MI=mvec.begin();
|
||||
MI != mvec.end(); ++MI) {
|
||||
vector<MachineInstr*> CpVec2 =
|
||||
FixConstantOperandsForInstr(PN, *MI, Target);
|
||||
FixConstantOperandsForInstr(const_cast<PHINode*>(PN), *MI, Target);
|
||||
CpVec2.push_back(*MI);
|
||||
CpVec.insert(CpVec.end(), CpVec2.begin(), CpVec2.end());
|
||||
}
|
||||
@ -218,7 +218,8 @@ InstructionSelection::InsertCodeForPhis(Function &F)
|
||||
}
|
||||
|
||||
vector<MachineInstr*> mvec;
|
||||
Target.getRegInfo().cpValue2Value(PhiCpRes, PN, mvec);
|
||||
Target.getRegInfo().cpValue2Value(PhiCpRes, const_cast<PHINode*>(PN),
|
||||
mvec);
|
||||
BB->insert(BB->begin(), mvec.begin(), mvec.end());
|
||||
} // for each Phi Instr in BB
|
||||
} // for all BBs in function
|
||||
|
@ -569,7 +569,7 @@ void PhyRegAlloc::updateMachineCode()
|
||||
//
|
||||
for (MachineBasicBlock::iterator MII = MBB.begin(); MII != MBB.end(); ++MII)
|
||||
if (!TM.getInstrInfo().isDummyPhiInstr((*MII)->getOpCode()))// ignore Phis
|
||||
updateInstruction(*MII, MBB.getBasicBlock());
|
||||
updateInstruction(*MII, const_cast<BasicBlock*>(MBB.getBasicBlock()));
|
||||
|
||||
// Now, move code out of delay slots of branches and returns if needed.
|
||||
// (Also, move "after" code from calls to the last delay slot instruction.)
|
||||
|
Loading…
Reference in New Issue
Block a user