clang 22.0.0git
clang::CIRGen::RValue Class Reference

This trivial value class is used to represent the result of an expression that is evaluated. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/CIRGenValue.h"

Public Member Functions

 RValue ()
bool isScalar () const
bool isComplex () const
bool isAggregate () const
bool isVolatileQualified () const
mlir::Value getValue () const
 Return the value of this scalar value.
mlir::Value getComplexValue () const
 Return the value of this complex value.
Address getAggregateAddress () const
 Return the value of the address of the aggregate.
mlir::Value getAggregatePointer (QualType pointeeType) const

Static Public Member Functions

static RValue getIgnored ()
static RValue get (mlir::Value v)
static RValue getComplex (mlir::Value v)
static RValue getAggregate (Address addr, bool isVolatile=false)
 Convert an Address to an RValue.

Detailed Description

This trivial value class is used to represent the result of an expression that is evaluated.

It can be one of three things: either a simple MLIR SSA value, a pair of SSA values for complex numbers, or the address of an aggregate value in memory.

Definition at line 33 of file CIRGenValue.h.

Constructor & Destructor Documentation

◆ RValue()

clang::CIRGen::RValue::RValue ( )
inline

Definition at line 47 of file CIRGenValue.h.

References clang::nullptr, and value.

Referenced by get(), getAggregate(), getComplex(), and getIgnored().

Member Function Documentation

◆ get()

RValue clang::CIRGen::RValue::get ( mlir::Value v)
inlinestatic

Definition at line 82 of file CIRGenValue.h.

References RValue(), and value.

Referenced by clang::CIRGen::CIRGenCXXABI::addImplicitConstructorArgs(), commonBuildCXXMemberOrOperatorCall(), clang::CIRGen::CIRGenFunction::convertTempToRValue(), clang::CIRGen::CIRGenFunction::emitAnyExpr(), clang::CIRGen::CIRGenFunction::emitAnyExprToMem(), clang::CIRGen::CIRGenFunction::emitAtomicExpr(), clang::CIRGen::CIRGenFunction::emitAtomicInit(), clang::CIRGen::CIRGenFunction::emitAutoVarInit(), emitBuiltinBitOp(), clang::CIRGen::CIRGenFunction::emitBuiltinExpr(), clang::CIRGen::CIRGenFunction::emitCall(), clang::CIRGen::CIRGenFunction::emitCallExpr(), clang::CIRGen::CIRGenFunction::emitCXXConstructorCall(), clang::CIRGen::CIRGenFunction::emitCXXMemberCallExpr(), clang::CIRGen::CIRGenFunction::emitCXXMemberOrOperatorMemberCallExpr(), clang::CIRGen::CIRGenFunction::emitCXXNewExpr(), clang::CIRGen::CIRGenFunction::emitCXXPseudoDestructorExpr(), clang::CIRGen::CIRGenFunction::emitDelegateCallArg(), clang::CIRGen::CIRGenFunction::emitDelegateCXXConstructorCall(), clang::CIRGen::CIRGenFunction::emitInitializerForField(), clang::CIRGen::CIRGenFunction::emitLambdaDelegatingInvokeBody(), clang::CIRGen::CIRGenFunction::emitLoadOfBitfieldLValue(), clang::CIRGen::CIRGenFunction::emitLoadOfLValue(), clang::CIRGen::CIRGenFunction::emitReferenceBindingToExpr(), clang::CIRGen::CIRGenFunction::emitRotate(), clang::CIRGen::CIRGenFunction::emitScalarInit(), emitUnaryFPBuiltin(), emitUnaryMaybeConstrainedFPBuiltin(), getIgnored(), and clang::CIRGen::CIRGenFunction::getUndefRValue().

◆ getAggregate()

RValue clang::CIRGen::RValue::getAggregate ( Address addr,
bool isVolatile = false )
inlinestatic

Convert an Address to an RValue.

If the Address is not signed, create an RValue using the unsigned address. Otherwise, resign the address using the provided type.

Definition at line 104 of file CIRGenValue.h.

References aggregateAddr, and RValue().

Referenced by clang::CIRGen::AggValueSlot::asRValue(), and clang::CIRGen::CIRGenFunction::emitCall().

◆ getAggregateAddress()

Address clang::CIRGen::RValue::getAggregateAddress ( ) const
inline

Return the value of the address of the aggregate.

Definition at line 68 of file CIRGenValue.h.

References aggregateAddr, and isAggregate().

Referenced by clang::CIRGen::CIRGenFunction::emitReturnOfRValue(), and getAggregatePointer().

◆ getAggregatePointer()

mlir::Value clang::CIRGen::RValue::getAggregatePointer ( QualType pointeeType) const
inline

Definition at line 73 of file CIRGenValue.h.

References getAggregateAddress(), and clang::CIRGen::Address::getPointer().

◆ getComplex()

RValue clang::CIRGen::RValue::getComplex ( mlir::Value v)
inlinestatic

◆ getComplexValue()

mlir::Value clang::CIRGen::RValue::getComplexValue ( ) const
inline

Return the value of this complex value.

Definition at line 62 of file CIRGenValue.h.

References isComplex(), and value.

◆ getIgnored()

RValue clang::CIRGen::RValue::getIgnored ( )
inlinestatic

Definition at line 77 of file CIRGenValue.h.

References get(), and RValue().

Referenced by clang::CIRGen::AggValueSlot::asRValue().

◆ getValue()

◆ isAggregate()

bool clang::CIRGen::RValue::isAggregate ( ) const
inline

◆ isComplex()

bool clang::CIRGen::RValue::isComplex ( ) const
inline

Definition at line 50 of file CIRGenValue.h.

Referenced by getComplexValue().

◆ isScalar()

◆ isVolatileQualified()

bool clang::CIRGen::RValue::isVolatileQualified ( ) const
inline

Definition at line 53 of file CIRGenValue.h.

Member Data Documentation

◆ aggregateAddr

Address clang::CIRGen::RValue::aggregateAddr

Definition at line 40 of file CIRGenValue.h.

Referenced by getAggregate(), and getAggregateAddress().

◆ value

mlir::Value clang::CIRGen::RValue::value

Definition at line 37 of file CIRGenValue.h.

Referenced by get(), getComplex(), getComplexValue(), getValue(), and RValue().


The documentation for this class was generated from the following file: