Lines Matching defs:rvalue
199 /// Converts an rvalue to integer value if needed.
207 void emitCopyIntoMemory(RValue rvalue) const;
254 Address materializeRValue(RValue rvalue) const;
1561 void AtomicInfo::emitCopyIntoMemory(RValue rvalue) const {
1563 // If we have an r-value, the rvalue should be of the atomic type,
1566 if (rvalue.isAggregate()) {
1568 LValue Src = CGF.MakeAddrLValue(rvalue.getAggregateAddress(),
1570 bool IsVolatile = rvalue.isVolatileQualified() ||
1585 // Okay, store the rvalue in.
1586 if (rvalue.isScalar()) {
1587 CGF.EmitStoreOfScalar(rvalue.getScalarVal(), TempLVal, /*init*/ true);
1589 CGF.EmitStoreOfComplex(rvalue.getComplexVal(), TempLVal, /*init*/ true);
1596 Address AtomicInfo::materializeRValue(RValue rvalue) const {
1599 if (rvalue.isAggregate())
1600 return rvalue.getAggregateAddress();
1605 Atomics.emitCopyIntoMemory(rvalue);
1929 void CodeGenFunction::EmitAtomicStore(RValue rvalue, LValue lvalue,
1939 return EmitAtomicStore(rvalue, lvalue, AO, IsVolatile, isInit);
1947 void CodeGenFunction::EmitAtomicStore(RValue rvalue, LValue dest,
1952 assert(!rvalue.isAggregate() ||
1953 rvalue.getAggregateAddress().getElementType() ==
1962 atomics.emitCopyIntoMemory(rvalue);
1969 Address srcAddr = atomics.materializeRValue(rvalue);
1986 llvm::Value *ValToStore = atomics.convertRValueToInt(rvalue);
1990 if (llvm::Value *Value = atomics.getScalarRValValueOrNull(rvalue))
2014 atomics.EmitAtomicUpdate(AO, rvalue, IsVolatile);