clang 22.0.0git
Functions
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()

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

◆ appendParameterTypes()

static 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()

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

◆ arrangeFreeFunctionLikeCall()

static const CIRGenFunctionInfo & arrangeFreeFunctionLikeCall ( CIRGenTypes cgt,
CIRGenModule cgm,
const CallArgList args,
const FunctionType fnType 
)
static

◆ emitCallLikeOp()

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 
)
static

◆ getFormalType()

static CanQual< FunctionProtoType > getFormalType ( const CXXMethodDecl md)
static