| Index: src/IceCfgNode.cpp
|
| diff --git a/src/IceCfgNode.cpp b/src/IceCfgNode.cpp
|
| index 543f4e9b49469dbd2ee9f1c2a3b92e83317a9419..07246a2c6291b208cb66ead12db26f1bee7bfa11 100644
|
| --- a/src/IceCfgNode.cpp
|
| +++ b/src/IceCfgNode.cpp
|
| @@ -59,7 +59,7 @@ void CfgNode::renumberInstructions() {
|
| InstNumberT FirstNumber = Func->getNextInstNumber();
|
| for (InstPhi *I : Phis)
|
| I->renumber(Func);
|
| - for (Inst *I : Insts)
|
| + for (auto I = Insts.begin(), E = Insts.end(); I != E; ++I)
|
| I->renumber(Func);
|
| InstCountEstimate = Func->getNextInstNumber() - FirstNumber;
|
| }
|
| @@ -69,7 +69,7 @@ void CfgNode::renumberInstructions() {
|
| // constructed, the computePredecessors() pass finalizes it by
|
| // creating the InEdges list.
|
| void CfgNode::computePredecessors() {
|
| - OutEdges = (*Insts.rbegin())->getTerminatorEdges();
|
| + OutEdges = Insts.rbegin()->getTerminatorEdges();
|
| for (CfgNode *Succ : OutEdges)
|
| Succ->InEdges.push_back(this);
|
| }
|
| @@ -117,7 +117,7 @@ void CfgNode::placePhiStores() {
|
| // Confirm that InsertionPoint is a terminator instruction. Calling
|
| // getTerminatorEdges() on a non-terminator instruction will cause
|
| // an llvm_unreachable().
|
| - (void)(*InsertionPoint)->getTerminatorEdges();
|
| + (void)InsertionPoint->getTerminatorEdges();
|
| // SafeInsertionPoint is always immediately before the terminator
|
| // instruction. If the block ends in a compare and conditional
|
| // branch, it's better to place the Phi store before the compare so
|
| @@ -167,13 +167,13 @@ void CfgNode::placePhiStores() {
|
| // instruction, and the previous instruction is a compare
|
| // instruction, then we move the insertion point before the compare
|
| // instruction so as not to interfere with compare/branch fusing.
|
| - if (InstBr *Branch = llvm::dyn_cast<InstBr>(*InsertionPoint)) {
|
| + if (InstBr *Branch = llvm::dyn_cast<InstBr>(InsertionPoint)) {
|
| if (!Branch->isUnconditional()) {
|
| if (InsertionPoint != Insts.begin()) {
|
| --InsertionPoint;
|
| - if (llvm::isa<InstIcmp>(*InsertionPoint) ||
|
| - llvm::isa<InstFcmp>(*InsertionPoint)) {
|
| - CmpInstDest = (*InsertionPoint)->getDest();
|
| + if (llvm::isa<InstIcmp>(InsertionPoint) ||
|
| + llvm::isa<InstFcmp>(InsertionPoint)) {
|
| + CmpInstDest = InsertionPoint->getDest();
|
| } else {
|
| ++InsertionPoint;
|
| }
|
| @@ -250,8 +250,8 @@ CfgNode *CfgNode::splitIncomingEdge(CfgNode *Pred, SizeT EdgeIndex) {
|
| Found = false;
|
| for (auto I = Pred->getInsts().rbegin(), E = Pred->getInsts().rend();
|
| !Found && I != E; ++I) {
|
| - if (!(*I)->isDeleted()) {
|
| - Found = (*I)->repointEdge(this, NewNode);
|
| + if (!I->isDeleted()) {
|
| + Found = I->repointEdge(this, NewNode);
|
| }
|
| }
|
| assert(Found);
|
| @@ -530,9 +530,9 @@ void CfgNode::livenessLightweight() {
|
| // Process regular instructions in reverse order.
|
| // TODO(stichnot): Use llvm::make_range with LLVM 3.5.
|
| for (auto I = Insts.rbegin(), E = Insts.rend(); I != E; ++I) {
|
| - if ((*I)->isDeleted())
|
| + if (I->isDeleted())
|
| continue;
|
| - (*I)->livenessLightweight(Func, Live);
|
| + I->livenessLightweight(Func, Live);
|
| }
|
| for (InstPhi *I : Phis) {
|
| if (I->isDeleted())
|
| @@ -573,9 +573,9 @@ bool CfgNode::liveness(Liveness *Liveness) {
|
|
|
| // Process regular instructions in reverse order.
|
| for (auto I = Insts.rbegin(), E = Insts.rend(); I != E; ++I) {
|
| - if ((*I)->isDeleted())
|
| + if (I->isDeleted())
|
| continue;
|
| - (*I)->liveness((*I)->getNumber(), Live, Liveness, LiveBegin, LiveEnd);
|
| + I->liveness(I->getNumber(), Live, Liveness, LiveBegin, LiveEnd);
|
| }
|
| // Process phis in forward order so that we can override the
|
| // instruction number to be that of the earliest phi instruction in
|
| @@ -654,7 +654,7 @@ void CfgNode::livenessPostprocess(LivenessMode Mode, Liveness *Liveness) {
|
| LastInstNum = I->getNumber();
|
| }
|
| // Process instructions
|
| - for (Inst *I : Insts) {
|
| + for (auto I = Insts.begin(), E = Insts.end(); I != E; ++I) {
|
| I->deleteIfDead();
|
| if (I->isDeleted())
|
| continue;
|
| @@ -753,7 +753,7 @@ void CfgNode::contractIfEmpty() {
|
| if (InEdges.empty())
|
| return;
|
| Inst *Branch = NULL;
|
| - for (Inst *I : Insts) {
|
| + for (auto I = Insts.begin(), E = Insts.end(); I != E; ++I) {
|
| if (I->isDeleted())
|
| continue;
|
| if (I->isUnconditionalBranch())
|
| @@ -776,7 +776,8 @@ void CfgNode::contractIfEmpty() {
|
| OutEdges.front()->InEdges.push_back(Pred);
|
| }
|
| }
|
| - for (Inst *I : Pred->getInsts()) {
|
| + for (auto I = Pred->getInsts().begin(), E = Pred->getInsts().end();
|
| + I != E; ++I) {
|
| if (!I->isDeleted())
|
| I->repointEdge(this, OutEdges.front());
|
| }
|
| @@ -795,7 +796,7 @@ void CfgNode::doBranchOpt(const CfgNode *NextNode) {
|
| // first opportunity, unless there is some target lowering where we
|
| // have the possibility of multiple such optimizations per block
|
| // (currently not the case for x86 lowering).
|
| - for (Inst *I : Insts) {
|
| + for (auto I = Insts.begin(), E = Insts.end(); I != E; ++I) {
|
| if (!I->isDeleted()) {
|
| Target->doBranchOpt(I, NextNode);
|
| }
|
| @@ -901,7 +902,7 @@ void CfgNode::emit(Cfg *Func) const {
|
| Inst *Instr = Phi;
|
| Instr->emit(Func);
|
| }
|
| - for (Inst *I : Insts) {
|
| + for (auto I = Insts.begin(), E = Insts.end(); I != E; ++I) {
|
| if (I->isDeleted())
|
| continue;
|
| if (I->isRedundantAssign()) {
|
| @@ -931,7 +932,7 @@ void CfgNode::emitIAS(Cfg *Func) const {
|
| Inst *Instr = Phi;
|
| Instr->emitIAS(Func);
|
| }
|
| - for (Inst *I : Insts) {
|
| + for (auto I = Insts.begin(), E = Insts.end(); I != E; ++I) {
|
| if (I->isDeleted())
|
| continue;
|
| if (I->isRedundantAssign())
|
| @@ -982,7 +983,7 @@ void CfgNode::dump(Cfg *Func) const {
|
| if (Func->getContext()->isVerbose(IceV_Instructions)) {
|
| for (InstPhi *I : Phis)
|
| I->dumpDecorated(Func);
|
| - for (Inst *I : Insts)
|
| + for (auto I = Insts.begin(), E = Insts.end(); I != E; ++I)
|
| I->dumpDecorated(Func);
|
| }
|
| // Dump the live-out variables.
|
|
|