Lines Matching defs:AO
222 bool AsValue, llvm::AtomicOrdering AO,
242 /// \param AO Atomic ordering.
244 void EmitAtomicUpdate(llvm::AtomicOrdering AO,
248 /// \param AO Atomic ordering.
249 void EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
263 llvm::AtomicOrdering AO, bool IsVolatile);
265 llvm::Value *EmitAtomicLoadOp(llvm::AtomicOrdering AO, bool IsVolatile,
284 EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO,
288 void EmitAtomicUpdateOp(llvm::AtomicOrdering AO,
292 void EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO, RValue UpdateRVal,
295 void EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRal,
1495 llvm::AtomicOrdering AO, bool) {
1502 RValue::get(llvm::ConstantInt::get(CGF.IntTy, (int)llvm::toCABI(AO))),
1507 llvm::Value *AtomicInfo::EmitAtomicLoadOp(llvm::AtomicOrdering AO,
1514 Load->setAtomic(AO);
1541 llvm::AtomicOrdering AO;
1544 AO = llvm::AtomicOrdering::SequentiallyConsistent;
1546 AO = llvm::AtomicOrdering::Acquire;
1549 return EmitAtomicLoad(LV, SL, AO, IsVolatile, Slot);
1553 bool AsValue, llvm::AtomicOrdering AO,
1564 EmitAtomicLoadLibcall(TempAddr.emitRawPointer(CGF), AO, IsVolatile);
1572 auto *Load = EmitAtomicLoadOp(AO, IsVolatile);
1586 llvm::AtomicOrdering AO, bool IsVolatile,
1589 return Atomics.EmitAtomicLoad(resultSlot, loc, /*AsValue=*/true, AO,
1799 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp,
1801 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1805 EmitAtomicLoadLibcall(ExpectedAddr.emitRawPointer(CGF), AO, IsVolatile);
1822 EmitAtomicCompareExchangeLibcall(ExpectedPtr, DesiredPtr, AO, Failure);
1828 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp,
1830 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1858 auto Res = EmitAtomicCompareExchangeOp(PHI, DesiredVal, AO, Failure);
1890 void AtomicInfo::EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO,
1892 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1896 EmitAtomicLoadLibcall(ExpectedAddr.emitRawPointer(CGF), AO, IsVolatile);
1910 EmitAtomicCompareExchangeLibcall(ExpectedPtr, DesiredPtr, AO, Failure);
1915 void AtomicInfo::EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRVal,
1917 auto Failure = llvm::AtomicCmpXchgInst::getStrongestFailureOrdering(AO);
1938 auto Res = EmitAtomicCompareExchangeOp(PHI, DesiredVal, AO, Failure);
1945 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp,
1948 EmitAtomicUpdateLibcall(AO, UpdateOp, IsVolatile);
1950 EmitAtomicUpdateOp(AO, UpdateOp, IsVolatile);
1954 void AtomicInfo::EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
1957 EmitAtomicUpdateLibcall(AO, UpdateRVal, IsVolatile);
1959 EmitAtomicUpdateOp(AO, UpdateRVal, IsVolatile);
1966 llvm::AtomicOrdering AO;
1968 AO = llvm::AtomicOrdering::SequentiallyConsistent;
1970 AO = llvm::AtomicOrdering::Release;
1973 return EmitAtomicStore(rvalue, lvalue, AO, IsVolatile, isInit);
1982 llvm::AtomicOrdering AO, bool IsVolatile,
2013 RValue::get(llvm::ConstantInt::get(IntTy, (int)llvm::toCABI(AO))),
2032 if (AO == llvm::AtomicOrdering::Acquire)
2033 AO = llvm::AtomicOrdering::Monotonic;
2034 else if (AO == llvm::AtomicOrdering::AcquireRelease)
2035 AO = llvm::AtomicOrdering::Release;
2038 store->setAtomic(AO);
2048 atomics.EmitAtomicUpdate(AO, rvalue, IsVolatile);
2083 LValue LVal, llvm::AtomicOrdering AO,
2086 Atomics.EmitAtomicUpdate(AO, UpdateOp, IsVolatile);