clang 22.0.0git
|
#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< FunctionProtoType > | getFormalType (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 CIRGenFunctionInfo & | arrangeCIRFunctionInfo (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 CIRGenFunctionInfo & | arrangeFreeFunctionLikeCall (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) |
|
static |
Definition at line 100 of file CIRGenCall.cpp.
References clang::FunctionProtoType::getExceptionSpecType(), clang::FunctionProtoType::isNothrow(), and clang::isUnresolvedExceptionSpec().
Referenced by clang::CIRGen::CIRGenModule::constructAttributeList().
|
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().
|
static |
Arrange the CIR function layout for a value of the given function type, on top of any implicit parameters already stored.
Definition at line 246 of file CIRGenCall.cpp.
References appendParameterTypes(), clang::CIRGen::CIRGenTypes::arrangeCIRFunctionInfo(), clang::CIRGen::RequiredArgs::getFromProtoWithExtraSlots(), clang::CanQual< T >::getUnqualifiedType(), cir::MissingFeatures::opCallExtParameterInfo(), and cir::MissingFeatures::opCallFnInfoOpts().
|
static |
Definition at line 298 of file CIRGenCall.cpp.
References clang::CIRGen::RequiredArgs::All, clang::CIRGen::CIRGenTypes::arrangeCIRFunctionInfo(), clang::CIRGen::CIRGenModule::errorNYI(), clang::CIRGen::CIRGenTypes::getASTContext(), clang::ASTContext::getCanonicalParamType(), clang::Type::getCanonicalTypeUnqualified(), clang::CIRGen::RequiredArgs::getFromProtoWithExtraSlots(), clang::FunctionType::getReturnType(), clang::CIRGen::CIRGenModule::getTargetCIRGenInfo(), clang::CanQual< T >::getUnqualifiedType(), clang::CIRGen::TargetCIRGenInfo::isNoProtoCallVariadic(), and cir::MissingFeatures::opCallFnInfoOpts().
Referenced by clang::CodeGen::CodeGenTypes::arrangeBlockFunctionCall(), clang::CIRGen::CIRGenTypes::arrangeFreeFunctionCall(), and clang::CodeGen::CodeGenTypes::arrangeFreeFunctionCall().
|
static |
Definition at line 461 of file CIRGenCall.cpp.
References cir::CIRBaseBuilderTy::createCallOp(), cir::CIRBaseBuilderTy::createIndirectCallOp(), clang::CIRGen::CIRGenFunction::getBuilder(), cir::MissingFeatures::invokeOp(), cir::MissingFeatures::opCallCallConv(), and cir::MissingFeatures::opCallSurroundingTry().
Referenced by clang::CIRGen::CIRGenFunction::emitCall().
|
static |
Returns the canonical formal type of the given C++ method.
Definition at line 156 of file CIRGenCall.cpp.
References clang::CanQual< T >::getAs(), clang::Type::getCanonicalTypeUnqualified(), and clang::ValueDecl::getType().
Referenced by clang::CIRGen::CIRGenTypes::arrangeCXXConstructorCall(), and clang::CIRGen::CIRGenTypes::arrangeCXXStructorDeclaration().