//
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:");
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());
}
}
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
//
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.)
//
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:");
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());
}
}
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
//
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.)