clang 22.0.0git
CIRGenCall.cpp File Reference
#include "CIRGenCall.h"
#include "CIRGenCXXABI.h"
#include "CIRGenFunction.h"
#include "CIRGenFunctionInfo.h"
#include "clang/CIR/MissingFeatures.h"

Go to the source code of this file.

Functions

static void addAttributesFromFunctionProtoType (CIRGenBuilderTy &builder, mlir::NamedAttrList &attrs, const FunctionProtoType *fpt)
static CanQual< FunctionProtoTypegetFormalType (const CXXMethodDecl *md)
 Returns the canonical formal type of the given C++ method.
static void appendParameterTypes (const CIRGenTypes &cgt, SmallVectorImpl< CanQualType > &prefix, CanQual< FunctionProtoType > fpt)
 Adds the formal parameters in FPT to the given prefix.
static const CIRGenFunctionInfoarrangeCIRFunctionInfo (CIRGenTypes &cgt, SmallVectorImpl< CanQualType > &prefix, CanQual< FunctionProtoType > fpt)
 Arrange the CIR function layout for a value of the given function type, on top of any implicit parameters already stored.
static const CIRGenFunctionInfoarrangeFreeFunctionLikeCall (CIRGenTypes &cgt, CIRGenModule &cgm, const CallArgList &args, const FunctionType *fnType)
static cir::CIRCallOpInterface emitCallLikeOp (CIRGenFunction &cgf, mlir::Location callLoc, cir::FuncType indirectFuncTy, mlir::Value indirectFuncVal, cir::FuncOp directFuncOp, const SmallVectorImpl< mlir::Value > &cirCallArgs, const mlir::NamedAttrList &attrs)

Function Documentation

◆ addAttributesFromFunctionProtoType()

void addAttributesFromFunctionProtoType ( CIRGenBuilderTy & builder,
mlir::NamedAttrList & attrs,
const FunctionProtoType * fpt )
static

◆ appendParameterTypes()

void appendParameterTypes ( const CIRGenTypes & cgt,
SmallVectorImpl< CanQualType > & prefix,
CanQual< FunctionProtoType > fpt )
static

Adds the formal parameters in FPT to the given prefix.

If any parameter in FPT has pass_object_size_attrs, then we'll add parameters for those, too. TODO(cir): this should be shared with LLVM codegen

Definition at line 165 of file CIRGenCall.cpp.

References clang::CIRGen::CIRGenModule::errorNYI(), clang::CIRGen::CIRGenTypes::getCGModule(), and cir::MissingFeatures::opCallExtParameterInfo().

Referenced by arrangeCIRFunctionInfo(), clang::CIRGen::CIRGenTypes::arrangeCXXStructorDeclaration(), clang::CodeGen::CodeGenTypes::arrangeCXXStructorDeclaration(), and arrangeLLVMFunctionInfo().

◆ arrangeCIRFunctionInfo()

const CIRGenFunctionInfo & arrangeCIRFunctionInfo ( CIRGenTypes & cgt,
SmallVectorImpl< CanQualType > & prefix,
CanQual< FunctionProtoType > fpt )
static

◆ arrangeFreeFunctionLikeCall()

◆ emitCallLikeOp()

cir::CIRCallOpInterface emitCallLikeOp ( CIRGenFunction & cgf,
mlir::Location callLoc,
cir::FuncType indirectFuncTy,
mlir::Value indirectFuncVal,
cir::FuncOp directFuncOp,
const SmallVectorImpl< mlir::Value > & cirCallArgs,
const mlir::NamedAttrList & attrs )
static

◆ getFormalType()