reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/AtomicExpandPass.cpp
 1186   Builder.SetInsertPoint(BB);
 1188     TLI->emitLeadingFence(Builder, CI, SuccessOrder);
 1189   Builder.CreateBr(StartBB);
 1192   Builder.SetInsertPoint(StartBB);
 1193   Value *UnreleasedLoad = TLI->emitLoadLinked(Builder, Addr, MemOpOrder);
 1194   Value *ShouldStore = Builder.CreateICmpEQ(
 1199   Builder.CreateCondBr(ShouldStore, ReleasingStoreBB, NoStoreBB);
 1201   Builder.SetInsertPoint(ReleasingStoreBB);
 1203     TLI->emitLeadingFence(Builder, CI, SuccessOrder);
 1204   Builder.CreateBr(TryStoreBB);
 1206   Builder.SetInsertPoint(TryStoreBB);
 1208       Builder, CI->getNewValOperand(), Addr, MemOpOrder);
 1209   StoreSuccess = Builder.CreateICmpEQ(
 1212   Builder.CreateCondBr(StoreSuccess, SuccessBB,
 1215   Builder.SetInsertPoint(ReleasedLoadBB);
 1218     SecondLoad = TLI->emitLoadLinked(Builder, Addr, MemOpOrder);
 1219     ShouldStore = Builder.CreateICmpEQ(SecondLoad, CI->getCompareOperand(),
 1224     Builder.CreateCondBr(ShouldStore, TryStoreBB, NoStoreBB);
 1226     Builder.CreateUnreachable();
 1230   Builder.SetInsertPoint(SuccessBB);
 1232     TLI->emitTrailingFence(Builder, CI, SuccessOrder);
 1233   Builder.CreateBr(ExitBB);
 1235   Builder.SetInsertPoint(NoStoreBB);
 1239   TLI->emitAtomicCmpXchgNoStoreLLBalance(Builder);
 1240   Builder.CreateBr(FailureBB);
 1242   Builder.SetInsertPoint(FailureBB);
 1244     TLI->emitTrailingFence(Builder, CI, FailureOrder);
 1245   Builder.CreateBr(ExitBB);
 1251   Builder.SetInsertPoint(ExitBB, ExitBB->begin());
 1252   PHINode *Success = Builder.CreatePHI(Type::getInt1Ty(Ctx), 2);
 1261     Builder.SetInsertPoint(TryStoreBB, TryStoreBB->begin());
 1262     PHINode *TryStoreLoaded = Builder.CreatePHI(UnreleasedLoad->getType(), 2);
 1266     Builder.SetInsertPoint(NoStoreBB, NoStoreBB->begin());
 1267     PHINode *NoStoreLoaded = Builder.CreatePHI(UnreleasedLoad->getType(), 2);
 1271     Builder.SetInsertPoint(ExitBB, ++ExitBB->begin());
 1272     PHINode *ExitLoaded = Builder.CreatePHI(UnreleasedLoad->getType(), 2);
 1306     Res = Builder.CreateInsertValue(UndefValue::get(CI->getType()), Loaded, 0);
 1307     Res = Builder.CreateInsertValue(Res, Success, 1);