Lines Matching refs:AO

223                           bool AsValue, llvm::AtomicOrdering AO,
243 /// \param AO Atomic ordering.
245 void EmitAtomicUpdate(llvm::AtomicOrdering AO,
249 /// \param AO Atomic ordering.
250 void EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
264 llvm::AtomicOrdering AO, bool IsVolatile);
266 llvm::Value *EmitAtomicLoadOp(llvm::AtomicOrdering AO, bool IsVolatile,
285 EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO,
289 void EmitAtomicUpdateOp(llvm::AtomicOrdering AO,
293 void EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO, RValue UpdateRVal,
296 void EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRal,
1461 llvm::AtomicOrdering AO, bool) {
1468 RValue::get(llvm::ConstantInt::get(CGF.IntTy, (int)llvm::toCABI(AO))),
1473 llvm::Value *AtomicInfo::EmitAtomicLoadOp(llvm::AtomicOrdering AO,
1480 Load->setAtomic(AO);
1507 llvm::AtomicOrdering AO;
1510 AO = llvm::AtomicOrdering::SequentiallyConsistent;
1512 AO = llvm::AtomicOrdering::Acquire;
1515 return EmitAtomicLoad(LV, SL, AO, IsVolatile, Slot);
1519 bool AsValue, llvm::AtomicOrdering AO,
1530 EmitAtomicLoadLibcall(TempAddr.emitRawPointer(CGF), AO, IsVolatile);
1538 auto *Load = EmitAtomicLoadOp(AO, IsVolatile);
1552 llvm::AtomicOrdering AO, bool IsVolatile,
1555 return Atomics.EmitAtomicLoad(resultSlot, loc, /*AsValue=*/true, AO,
1765 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp,
1767 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1771 EmitAtomicLoadLibcall(ExpectedAddr.emitRawPointer(CGF), AO, IsVolatile);
1788 EmitAtomicCompareExchangeLibcall(ExpectedPtr, DesiredPtr, AO, Failure);
1794 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp,
1796 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1824 auto Res = EmitAtomicCompareExchangeOp(PHI, DesiredVal, AO, Failure);
1856 void AtomicInfo::EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO,
1858 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1862 EmitAtomicLoadLibcall(ExpectedAddr.emitRawPointer(CGF), AO, IsVolatile);
1876 EmitAtomicCompareExchangeLibcall(ExpectedPtr, DesiredPtr, AO, Failure);
1881 void AtomicInfo::EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRVal,
1883 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1904 auto Res = EmitAtomicCompareExchangeOp(PHI, DesiredVal, AO, Failure);
1911 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp,
1914 EmitAtomicUpdateLibcall(AO, UpdateOp, IsVolatile);
1916 EmitAtomicUpdateOp(AO, UpdateOp, IsVolatile);
1920 void AtomicInfo::EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
1923 EmitAtomicUpdateLibcall(AO, UpdateRVal, IsVolatile);
1925 EmitAtomicUpdateOp(AO, UpdateRVal, IsVolatile);
1932 llvm::AtomicOrdering AO;
1934 AO = llvm::AtomicOrdering::SequentiallyConsistent;
1936 AO = llvm::AtomicOrdering::Release;
1939 return EmitAtomicStore(rvalue, lvalue, AO, IsVolatile, isInit);
1948 llvm::AtomicOrdering AO, bool IsVolatile,
1979 RValue::get(llvm::ConstantInt::get(IntTy, (int)llvm::toCABI(AO))),
1998 if (AO == llvm::AtomicOrdering::Acquire)
1999 AO = llvm::AtomicOrdering::Monotonic;
2000 else if (AO == llvm::AtomicOrdering::AcquireRelease)
2001 AO = llvm::AtomicOrdering::Release;
2004 store->setAtomic(AO);
2014 atomics.EmitAtomicUpdate(AO, rvalue, IsVolatile);
2038 LValue LVal, llvm::AtomicOrdering AO,
2041 Atomics.EmitAtomicUpdate(AO, UpdateOp, IsVolatile);