| OLD | NEW |
| 1 //===- subzero/src/IceCfgNode.cpp - Basic block (node) implementation -----===// | 1 //===- subzero/src/IceCfgNode.cpp - Basic block (node) implementation -----===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 /// | 9 /// |
| 10 /// \file | 10 /// \file |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 bool Found = false; | 234 bool Found = false; |
| 235 for (CfgNode *&I : Pred->OutEdges) { | 235 for (CfgNode *&I : Pred->OutEdges) { |
| 236 if (I == this) { | 236 if (I == this) { |
| 237 I = NewNode; | 237 I = NewNode; |
| 238 NewNode->InEdges.push_back(Pred); | 238 NewNode->InEdges.push_back(Pred); |
| 239 Found = true; | 239 Found = true; |
| 240 break; | 240 break; |
| 241 } | 241 } |
| 242 } | 242 } |
| 243 assert(Found); | 243 assert(Found); |
| 244 (void)Found; |
| 244 // Repoint this node's in-edge. | 245 // Repoint this node's in-edge. |
| 245 Found = false; | 246 Found = false; |
| 246 for (CfgNode *&I : InEdges) { | 247 for (CfgNode *&I : InEdges) { |
| 247 if (I == Pred) { | 248 if (I == Pred) { |
| 248 I = NewNode; | 249 I = NewNode; |
| 249 NewNode->OutEdges.push_back(this); | 250 NewNode->OutEdges.push_back(this); |
| 250 Found = true; | 251 Found = true; |
| 251 break; | 252 break; |
| 252 } | 253 } |
| 253 } | 254 } |
| 254 assert(Found); | 255 assert(Found); |
| 256 (void)Found; |
| 255 // Repoint all suitable branch instructions' target and return. | 257 // Repoint all suitable branch instructions' target and return. |
| 256 Found = false; | 258 Found = false; |
| 257 for (Inst &I : Pred->getInsts()) | 259 for (Inst &I : Pred->getInsts()) |
| 258 if (!I.isDeleted() && I.repointEdges(this, NewNode)) | 260 if (!I.isDeleted() && I.repointEdges(this, NewNode)) |
| 259 Found = true; | 261 Found = true; |
| 260 assert(Found); | 262 assert(Found); |
| 263 (void)Found; |
| 261 return NewNode; | 264 return NewNode; |
| 262 } | 265 } |
| 263 | 266 |
| 264 namespace { | 267 namespace { |
| 265 | 268 |
| 266 // Helper function used by advancedPhiLowering(). | 269 // Helper function used by advancedPhiLowering(). |
| 267 bool sameVarOrReg(const Variable *Var, const Operand *Opnd) { | 270 bool sameVarOrReg(const Variable *Var, const Operand *Opnd) { |
| 268 if (Var == Opnd) | 271 if (Var == Opnd) |
| 269 return true; | 272 return true; |
| 270 if (const auto Var2 = llvm::dyn_cast<Variable>(Opnd)) { | 273 if (const auto Var2 = llvm::dyn_cast<Variable>(Opnd)) { |
| (...skipping 1009 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1280 InstIntrinsicCall *Inst = InstIntrinsicCall::create( | 1283 InstIntrinsicCall *Inst = InstIntrinsicCall::create( |
| 1281 Func, 5, Func->makeVariable(IceType_i64), RMWI64Name, Info->Info); | 1284 Func, 5, Func->makeVariable(IceType_i64), RMWI64Name, Info->Info); |
| 1282 Inst->addArg(AtomicRMWOp); | 1285 Inst->addArg(AtomicRMWOp); |
| 1283 Inst->addArg(Counter); | 1286 Inst->addArg(Counter); |
| 1284 Inst->addArg(One); | 1287 Inst->addArg(One); |
| 1285 Inst->addArg(OrderAcquireRelease); | 1288 Inst->addArg(OrderAcquireRelease); |
| 1286 Insts.push_front(Inst); | 1289 Insts.push_front(Inst); |
| 1287 } | 1290 } |
| 1288 | 1291 |
| 1289 } // end of namespace Ice | 1292 } // end of namespace Ice |
| OLD | NEW |