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

References

tools/clang/lib/CodeGen/CGAtomic.cpp
  506     emitAtomicCmpXchgFailureSet(CGF, E, false, Dest, Ptr, Val1, Val2,
  511     emitAtomicCmpXchgFailureSet(CGF, E, true, Dest, Ptr, Val1, Val2,
  517       emitAtomicCmpXchgFailureSet(CGF, E, IsWeakC->getZExtValue(), Dest, Ptr,
  522           CGF.createBasicBlock("cmpxchg.strong", CGF.CurFn);
  522           CGF.createBasicBlock("cmpxchg.strong", CGF.CurFn);
  523       llvm::BasicBlock *WeakBB = CGF.createBasicBlock("cmxchg.weak", CGF.CurFn);
  523       llvm::BasicBlock *WeakBB = CGF.createBasicBlock("cmxchg.weak", CGF.CurFn);
  525           CGF.createBasicBlock("cmpxchg.continue", CGF.CurFn);
  525           CGF.createBasicBlock("cmpxchg.continue", CGF.CurFn);
  527       llvm::SwitchInst *SI = CGF.Builder.CreateSwitch(IsWeak, WeakBB);
  528       SI->addCase(CGF.Builder.getInt1(false), StrongBB);
  530       CGF.Builder.SetInsertPoint(StrongBB);
  531       emitAtomicCmpXchgFailureSet(CGF, E, false, Dest, Ptr, Val1, Val2,
  533       CGF.Builder.CreateBr(ContBB);
  535       CGF.Builder.SetInsertPoint(WeakBB);
  536       emitAtomicCmpXchgFailureSet(CGF, E, true, Dest, Ptr, Val1, Val2,
  538       CGF.Builder.CreateBr(ContBB);
  540       CGF.Builder.SetInsertPoint(ContBB);
  548     llvm::LoadInst *Load = CGF.Builder.CreateLoad(Ptr);
  551     CGF.Builder.CreateStore(Load, Dest);
  559     llvm::Value *LoadVal1 = CGF.Builder.CreateLoad(Val1);
  560     llvm::StoreInst *Store = CGF.Builder.CreateStore(LoadVal1, Ptr);
  638   llvm::Value *LoadVal1 = CGF.Builder.CreateLoad(Val1);
  640       CGF.Builder.CreateAtomicRMW(Op, Ptr.getPointer(), LoadVal1, Order, Scope);
  647     Result = CGF.Builder.CreateBinOp(PostOp, RMWI, LoadVal1);
  649     Result = CGF.Builder.CreateNot(Result);
  650   CGF.Builder.CreateStore(Result, Dest);