Lines Matching refs:RValue
194 RValue convertAtomicTempToRValue(Address addr, AggValueSlot resultSlot,
197 llvm::Value *getScalarRValValueOrNull(RValue RVal) const;
200 llvm::Value *convertRValueToInt(RValue RVal, bool CmpXchg = false) const;
202 RValue ConvertToValueOrAtomic(llvm::Value *IntVal, AggValueSlot ResultSlot,
207 void emitCopyIntoMemory(RValue rvalue) const;
222 RValue EmitAtomicLoad(AggValueSlot ResultSlot, SourceLocation Loc,
234 std::pair<RValue, llvm::Value *>
235 EmitAtomicCompareExchange(RValue Expected, RValue Desired,
246 const llvm::function_ref<RValue(RValue)> &UpdateOp,
250 void EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
254 Address materializeRValue(RValue rvalue) const;
286 const llvm::function_ref<RValue(RValue)> &UpdateOp,
290 const llvm::function_ref<RValue(RValue)> &UpdateOp,
293 void EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO, RValue UpdateRVal,
296 void EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRal,
315 static RValue emitAtomicLibcall(CodeGenFunction &CGF, in emitAtomicLibcall()
817 RValue CodeGenFunction::EmitAtomicExpr(AtomicExpr *E) { in EmitAtomicExpr()
833 return RValue::get(nullptr); in EmitAtomicExpr()
1040 Args.add(RValue::get(llvm::ConstantInt::get(SizeTy, Size)), in EmitAtomicExpr()
1059 Args.add(RValue::get(CastToGenericAddrSpace(Ptr.emitRawPointer(*this), in EmitAtomicExpr()
1090 Args.add(RValue::get(CastToGenericAddrSpace(Val1.emitRawPointer(*this), in EmitAtomicExpr()
1093 Args.add(RValue::get(CastToGenericAddrSpace(Val2.emitRawPointer(*this), in EmitAtomicExpr()
1096 Args.add(RValue::get(Order), getContext().IntTy); in EmitAtomicExpr()
1109 Args.add(RValue::get(CastToGenericAddrSpace(Val1.emitRawPointer(*this), in EmitAtomicExpr()
1124 Args.add(RValue::get(CastToGenericAddrSpace(Val1.emitRawPointer(*this), in EmitAtomicExpr()
1203 Args.add(RValue::get( in EmitAtomicExpr()
1208 Args.add(RValue::get(Order), in EmitAtomicExpr()
1211 Args.add(RValue::get(Scope), getContext().IntTy); in EmitAtomicExpr()
1213 RValue Res = emitAtomicLibcall(*this, LibCallName, RetTy, Args); in EmitAtomicExpr()
1219 return RValue::get(nullptr); in EmitAtomicExpr()
1275 return RValue::get(nullptr); in EmitAtomicExpr()
1345 return RValue::get(nullptr); in EmitAtomicExpr()
1371 RValue AtomicInfo::convertAtomicTempToRValue(Address addr, in convertAtomicTempToRValue()
1389 return RValue::get(CGF.Builder.CreateLoad(addr)); in convertAtomicTempToRValue()
1415 RValue AtomicInfo::ConvertToValueOrAtomic(llvm::Value *Val, in ConvertToValueOrAtomic()
1435 return RValue::get(CGF.EmitFromMemory(Val, ValueTy)); in ConvertToValueOrAtomic()
1438 return RValue::get(CGF.Builder.CreateBitCast(Val, ValTy)); in ConvertToValueOrAtomic()
1464 Args.add(RValue::get(getAtomicSizeValue()), CGF.getContext().getSizeType()); in EmitAtomicLoadLibcall()
1465 Args.add(RValue::get(getAtomicPointer()), CGF.getContext().VoidPtrTy); in EmitAtomicLoadLibcall()
1466 Args.add(RValue::get(AddForLoaded), CGF.getContext().VoidPtrTy); in EmitAtomicLoadLibcall()
1468 RValue::get(llvm::ConstantInt::get(CGF.IntTy, (int)llvm::toCABI(AO))), in EmitAtomicLoadLibcall()
1505 RValue CodeGenFunction::EmitAtomicLoad(LValue LV, SourceLocation SL, in EmitAtomicLoad()
1518 RValue AtomicInfo::EmitAtomicLoad(AggValueSlot ResultSlot, SourceLocation Loc, in EmitAtomicLoad()
1542 return RValue::getAggregate(Address::invalid(), false); in EmitAtomicLoad()
1551 RValue CodeGenFunction::EmitAtomicLoad(LValue src, SourceLocation loc, in EmitAtomicLoad()
1561 void AtomicInfo::emitCopyIntoMemory(RValue rvalue) const { in emitCopyIntoMemory()
1596 Address AtomicInfo::materializeRValue(RValue rvalue) const { in materializeRValue()
1609 llvm::Value *AtomicInfo::getScalarRValValueOrNull(RValue RVal) const { in getScalarRValValueOrNull()
1615 llvm::Value *AtomicInfo::convertRValueToInt(RValue RVal, bool CmpXchg) const { in convertRValueToInt()
1663 Args.add(RValue::get(getAtomicSizeValue()), CGF.getContext().getSizeType()); in EmitAtomicCompareExchangeLibcall()
1664 Args.add(RValue::get(getAtomicPointer()), CGF.getContext().VoidPtrTy); in EmitAtomicCompareExchangeLibcall()
1665 Args.add(RValue::get(ExpectedAddr), CGF.getContext().VoidPtrTy); in EmitAtomicCompareExchangeLibcall()
1666 Args.add(RValue::get(DesiredAddr), CGF.getContext().VoidPtrTy); in EmitAtomicCompareExchangeLibcall()
1667 Args.add(RValue::get( in EmitAtomicCompareExchangeLibcall()
1670 Args.add(RValue::get( in EmitAtomicCompareExchangeLibcall()
1679 std::pair<RValue, llvm::Value *> AtomicInfo::EmitAtomicCompareExchange( in EmitAtomicCompareExchange()
1680 RValue Expected, RValue Desired, llvm::AtomicOrdering Success, in EmitAtomicCompareExchange()
1710 EmitAtomicUpdateValue(CodeGenFunction &CGF, AtomicInfo &Atomics, RValue OldRVal, in EmitAtomicUpdateValue()
1711 const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdateValue()
1713 RValue UpRVal; in EmitAtomicUpdateValue()
1754 RValue NewRVal = UpdateOp(UpRVal); in EmitAtomicUpdateValue()
1765 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdateLibcall()
1794 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdateOp()
1831 RValue UpdateRVal, Address DesiredAddr) { in EmitAtomicUpdateValue()
1857 RValue UpdateRVal, bool IsVolatile) { in EmitAtomicUpdateLibcall()
1881 void AtomicInfo::EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRVal, in EmitAtomicUpdateOp()
1911 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdate()
1920 void AtomicInfo::EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal, in EmitAtomicUpdate()
1929 void CodeGenFunction::EmitAtomicStore(RValue rvalue, LValue lvalue, in EmitAtomicStore()
1947 void CodeGenFunction::EmitAtomicStore(RValue rvalue, LValue dest, in EmitAtomicStore()
1973 args.add(RValue::get(atomics.getAtomicSizeValue()), in EmitAtomicStore()
1975 args.add(RValue::get(atomics.getAtomicPointer()), getContext().VoidPtrTy); in EmitAtomicStore()
1976 args.add(RValue::get(srcAddr.emitRawPointer(*this)), in EmitAtomicStore()
1979 RValue::get(llvm::ConstantInt::get(IntTy, (int)llvm::toCABI(AO))), in EmitAtomicStore()
2019 std::pair<RValue, llvm::Value *> CodeGenFunction::EmitAtomicCompareExchange( in EmitAtomicCompareExchange()
2020 LValue Obj, RValue Expected, RValue Desired, SourceLocation Loc, in EmitAtomicCompareExchange()
2039 const llvm::function_ref<RValue(RValue)> &UpdateOp, bool IsVolatile) { in EmitAtomicUpdate()
2050 atomics.emitCopyIntoMemory(RValue::get(value)); in EmitAtomicInit()
2056 atomics.emitCopyIntoMemory(RValue::getComplex(value)); in EmitAtomicInit()