Lines Matching refs:RValue
194 RValue convertAtomicTempToRValue(Address addr, AggValueSlot resultSlot,
198 llvm::Value *convertRValueToInt(RValue RVal) const;
200 RValue ConvertIntToValueOrAtomic(llvm::Value *IntVal,
205 void emitCopyIntoMemory(RValue rvalue) const;
220 RValue EmitAtomicLoad(AggValueSlot ResultSlot, SourceLocation Loc,
232 std::pair<RValue, llvm::Value *>
233 EmitAtomicCompareExchange(RValue Expected, RValue Desired,
244 const llvm::function_ref<RValue(RValue)> &UpdateOp,
248 void EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
252 Address materializeRValue(RValue rvalue) const;
283 const llvm::function_ref<RValue(RValue)> &UpdateOp,
287 const llvm::function_ref<RValue(RValue)> &UpdateOp,
290 void EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO, RValue UpdateRVal,
293 void EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRal,
312 static RValue emitAtomicLibcall(CodeGenFunction &CGF, in emitAtomicLibcall()
830 Args.add(RValue::get(Val), ValTy); in AddDirectArgument()
833 Args.add(RValue::get(Val), CGF.getContext().VoidPtrTy); in AddDirectArgument()
837 RValue CodeGenFunction::EmitAtomicExpr(AtomicExpr *E) { in EmitAtomicExpr()
853 return RValue::get(nullptr); in EmitAtomicExpr()
1162 Args.add(RValue::get(llvm::ConstantInt::get(SizeTy, Size)), in EmitAtomicExpr()
1181 Args.add(RValue::get(CastToGenericAddrSpace(Ptr.getPointer(), in EmitAtomicExpr()
1217 Args.add(RValue::get(CastToGenericAddrSpace(Val1.getPointer(), in EmitAtomicExpr()
1222 Args.add(RValue::get(Order), getContext().IntTy); in EmitAtomicExpr()
1403 Args.add(RValue::get(Dest.getPointer()), getContext().VoidPtrTy); in EmitAtomicExpr()
1407 Args.add(RValue::get(Order), in EmitAtomicExpr()
1410 Args.add(RValue::get(Scope), getContext().IntTy); in EmitAtomicExpr()
1417 RValue Res = emitAtomicLibcall(*this, LibCallName, RetTy, Args); in EmitAtomicExpr()
1443 return RValue::get(nullptr); in EmitAtomicExpr()
1499 return RValue::get(nullptr); in EmitAtomicExpr()
1569 return RValue::get(nullptr); in EmitAtomicExpr()
1595 RValue AtomicInfo::convertAtomicTempToRValue(Address addr, in convertAtomicTempToRValue()
1613 return RValue::get(CGF.Builder.CreateLoad(addr)); in convertAtomicTempToRValue()
1628 RValue AtomicInfo::ConvertIntToValueOrAtomic(llvm::Value *IntVal, in ConvertIntToValueOrAtomic()
1644 return RValue::get(CGF.EmitFromMemory(IntVal, ValueTy)); in ConvertIntToValueOrAtomic()
1646 return RValue::get(CGF.Builder.CreateIntToPtr(IntVal, ValTy)); in ConvertIntToValueOrAtomic()
1648 return RValue::get(CGF.Builder.CreateBitCast(IntVal, ValTy)); in ConvertIntToValueOrAtomic()
1675 Args.add(RValue::get(getAtomicSizeValue()), CGF.getContext().getSizeType()); in EmitAtomicLoadLibcall()
1676 Args.add(RValue::get(getAtomicPointer()), CGF.getContext().VoidPtrTy); in EmitAtomicLoadLibcall()
1677 Args.add(RValue::get(AddForLoaded), CGF.getContext().VoidPtrTy); in EmitAtomicLoadLibcall()
1679 RValue::get(llvm::ConstantInt::get(CGF.IntTy, (int)llvm::toCABI(AO))), in EmitAtomicLoadLibcall()
1714 RValue CodeGenFunction::EmitAtomicLoad(LValue LV, SourceLocation SL, in EmitAtomicLoad()
1727 RValue AtomicInfo::EmitAtomicLoad(AggValueSlot ResultSlot, SourceLocation Loc, in EmitAtomicLoad()
1751 return RValue::getAggregate(Address::invalid(), false); in EmitAtomicLoad()
1760 RValue CodeGenFunction::EmitAtomicLoad(LValue src, SourceLocation loc, in EmitAtomicLoad()
1770 void AtomicInfo::emitCopyIntoMemory(RValue rvalue) const { in emitCopyIntoMemory()
1805 Address AtomicInfo::materializeRValue(RValue rvalue) const { in materializeRValue()
1818 llvm::Value *AtomicInfo::convertRValueToInt(RValue RVal) const { in convertRValueToInt()
1869 Args.add(RValue::get(getAtomicSizeValue()), CGF.getContext().getSizeType()); in EmitAtomicCompareExchangeLibcall()
1870 Args.add(RValue::get(getAtomicPointer()), CGF.getContext().VoidPtrTy); in EmitAtomicCompareExchangeLibcall()
1871 Args.add(RValue::get(ExpectedAddr), CGF.getContext().VoidPtrTy); in EmitAtomicCompareExchangeLibcall()
1872 Args.add(RValue::get(DesiredAddr), CGF.getContext().VoidPtrTy); in EmitAtomicCompareExchangeLibcall()
1873 Args.add(RValue::get( in EmitAtomicCompareExchangeLibcall()
1876 Args.add(RValue::get( in EmitAtomicCompareExchangeLibcall()
1885 std::pair<RValue, llvm::Value *> AtomicInfo::EmitAtomicCompareExchange( in EmitAtomicCompareExchange()
1886 RValue Expected, RValue Desired, llvm::AtomicOrdering Success, in EmitAtomicCompareExchange()
1915 EmitAtomicUpdateValue(CodeGenFunction &CGF, AtomicInfo &Atomics, RValue OldRVal, in EmitAtomicUpdateValue()
1916 const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdateValue()
1918 RValue UpRVal; in EmitAtomicUpdateValue()
1959 RValue NewRVal = UpdateOp(UpRVal); in EmitAtomicUpdateValue()
1970 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdateLibcall()
1999 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdateOp()
2031 RValue UpdateRVal, Address DesiredAddr) { in EmitAtomicUpdateValue()
2057 RValue UpdateRVal, bool IsVolatile) { in EmitAtomicUpdateLibcall()
2081 void AtomicInfo::EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRVal, in EmitAtomicUpdateOp()
2111 llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, in EmitAtomicUpdate()
2120 void AtomicInfo::EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal, in EmitAtomicUpdate()
2129 void CodeGenFunction::EmitAtomicStore(RValue rvalue, LValue lvalue, in EmitAtomicStore()
2147 void CodeGenFunction::EmitAtomicStore(RValue rvalue, LValue dest, in EmitAtomicStore()
2173 args.add(RValue::get(atomics.getAtomicSizeValue()), in EmitAtomicStore()
2175 args.add(RValue::get(atomics.getAtomicPointer()), getContext().VoidPtrTy); in EmitAtomicStore()
2176 args.add(RValue::get(srcAddr.getPointer()), getContext().VoidPtrTy); in EmitAtomicStore()
2178 RValue::get(llvm::ConstantInt::get(IntTy, (int)llvm::toCABI(AO))), in EmitAtomicStore()
2214 std::pair<RValue, llvm::Value *> CodeGenFunction::EmitAtomicCompareExchange( in EmitAtomicCompareExchange()
2215 LValue Obj, RValue Expected, RValue Desired, SourceLocation Loc, in EmitAtomicCompareExchange()
2234 const llvm::function_ref<RValue(RValue)> &UpdateOp, bool IsVolatile) { in EmitAtomicUpdate()
2245 atomics.emitCopyIntoMemory(RValue::get(value)); in EmitAtomicInit()
2251 atomics.emitCopyIntoMemory(RValue::getComplex(value)); in EmitAtomicInit()