|
clang 23.0.0git
|
Namespaces | |
| namespace | acc |
| namespace | detail |
| namespace | direct |
Classes | |
| class | ABIArgInfo |
| class | CIRBaseBuilderTy |
| class | CIRCXXABI |
| class | CIRDataLayout |
| class | CIRGenAction |
| class | CIRGenConsumer |
| class | CIRGenerator |
| class | EmitAssemblyAction |
| class | EmitBCAction |
| class | EmitCIRAction |
| class | EmitLLVMAction |
| class | EmitObjAction |
| class | LowerModule |
| struct | MissingFeatures |
| class | TargetLoweringInfo |
Enumerations | |
| enum class | OverflowBehavior { None = 0 , NoSignedWrap = 1 << 0 , NoUnsignedWrap = 1 << 1 , Saturated = 1 << 2 } |
| enum | TypeEvaluationKind { TEK_Scalar , TEK_Complex , TEK_Aggregate } |
Functions | |
| mlir::LogicalResult | runCIRToCIRPasses (mlir::ModuleOp theModule, mlir::MLIRContext &mlirCtx, clang::ASTContext &astCtx, bool enableVerifier, bool enableIdiomRecognizer, bool enableCIRSimplify) |
| constexpr OverflowBehavior | operator| (OverflowBehavior a, OverflowBehavior b) |
| constexpr OverflowBehavior | operator& (OverflowBehavior a, OverflowBehavior b) |
| constexpr OverflowBehavior & | operator|= (OverflowBehavior &a, OverflowBehavior b) |
| constexpr OverflowBehavior & | operator&= (OverflowBehavior &a, OverflowBehavior b) |
| constexpr bool | testFlag (OverflowBehavior ob, OverflowBehavior flag) |
| void | buildTerminatedBody (mlir::OpBuilder &builder, mlir::Location loc) |
| static bool | isExternalLinkage (GlobalLinkageKind linkage) |
| static bool | isAvailableExternallyLinkage (GlobalLinkageKind linkage) |
| static bool | isLinkOnceAnyLinkage (GlobalLinkageKind linkage) |
| static bool | isLinkOnceODRLinkage (GlobalLinkageKind linkage) |
| static bool | isLinkOnceLinkage (GlobalLinkageKind linkage) |
| static bool | isWeakAnyLinkage (GlobalLinkageKind linkage) |
| static bool | isWeakODRLinkage (GlobalLinkageKind linkage) |
| static bool | isWeakLinkage (GlobalLinkageKind linkage) |
| static bool | isInternalLinkage (GlobalLinkageKind linkage) |
| static bool | isPrivateLinkage (GlobalLinkageKind linkage) |
| static bool | isLocalLinkage (GlobalLinkageKind linkage) |
| static bool | isExternalWeakLinkage (GlobalLinkageKind linkage) |
| static bool | isCommonLinkage (GlobalLinkageKind linkage) |
| static bool | isAppendingLinkage (GlobalLinkageKind linkage) |
| static bool | isValidDeclarationLinkage (GlobalLinkageKind linkage) |
| static bool | isInterposableLinkage (GlobalLinkageKind linkage) |
| Whether the definition of this global may be replaced by something non-equivalent at link time. | |
| static bool | isDiscardableIfUnused (GlobalLinkageKind linkage) |
| Whether the definition of this global may be discarded if it is not used in its compilation unit. | |
| static bool | isWeakForLinker (GlobalLinkageKind linkage) |
| Whether the definition of this global may be replaced at link time. | |
| static bool | isValidLinkage (GlobalLinkageKind gl) |
| bool | operator< (cir::MemOrder, cir::MemOrder)=delete |
| bool | operator> (cir::MemOrder, cir::MemOrder)=delete |
| bool | operator<= (cir::MemOrder, cir::MemOrder)=delete |
| bool | operator>= (cir::MemOrder, cir::MemOrder)=delete |
| template<typename Int> | |
| bool | isValidCIRAtomicOrderingCABI (Int value) |
| bool | isValidFundamentalIntWidth (unsigned width) |
| bool | isSized (mlir::Type ty) |
| Returns true if the type is a CIR sized type. | |
| cir::LangAddressSpace | toCIRLangAddressSpace (clang::LangAS langAS) |
| bool | isMatchingAddressSpace (mlir::ptr::MemorySpaceAttrInterface cirAS, clang::LangAS as) |
| mlir::ptr::MemorySpaceAttrInterface | toCIRAddressSpaceAttr (mlir::MLIRContext &ctx, clang::LangAS langAS) |
| Convert an AST LangAS to the appropriate CIR address space attribute interface. | |
| mlir::ptr::MemorySpaceAttrInterface | normalizeDefaultAddressSpace (mlir::ptr::MemorySpaceAttrInterface addrSpace) |
| Normalize LangAddressSpace::Default to null (empty attribute). | |
| bool | isSupportedCIRMemorySpaceAttr (mlir::ptr::MemorySpaceAttrInterface memorySpace) |
| std::unique_ptr< CIRCXXABI > | createItaniumCXXABI (LowerModule &lm) |
| Creates an Itanium-family ABI. | |
| static cir::IntType | getPtrDiffCIRTy (LowerModule &lm) |
| static mlir::Value | lowerDataMemberCast (mlir::Operation *op, mlir::Value loweredSrc, std::int64_t offset, bool isDerivedToBase, mlir::OpBuilder &builder) |
| static mlir::Value | lowerMethodCast (mlir::Operation *op, mlir::Value loweredSrc, std::int64_t offset, bool isDerivedToBase, LowerModule &lowerMod, mlir::OpBuilder &builder) |
| static void | buildBadCastCall (mlir::OpBuilder &builder, mlir::Location loc, mlir::FlatSymbolRefAttr badCastFuncRef) |
| static mlir::Value | buildDynamicCastAfterNullCheck (cir::DynamicCastOp op, mlir::OpBuilder &builder) |
| static mlir::Value | buildDynamicCastToVoidAfterNullCheck (cir::DynamicCastOp op, cir::LowerModule &lm, mlir::OpBuilder &builder) |
| static std::unique_ptr< CIRCXXABI > | createCXXABI (LowerModule &lm) |
| static std::unique_ptr< TargetLoweringInfo > | createTargetLoweringInfo (LowerModule &lm) |
| std::unique_ptr< LowerModule > | createLowerModule (mlir::ModuleOp module) |
| static BackendAction | getBackendActionFromOutputType (CIRGenAction::OutputType Action) |
| static std::unique_ptr< llvm::Module > | lowerFromCIRToLLVMIR (mlir::ModuleOp MLIRModule, llvm::LLVMContext &LLVMCtx) |
|
strong |
| Enumerator | |
|---|---|
| None | |
| NoSignedWrap | |
| NoUnsignedWrap | |
| Saturated | |
Definition at line 30 of file CIRBaseBuilder.h.
| Enumerator | |
|---|---|
| TEK_Scalar | |
| TEK_Complex | |
| TEK_Aggregate | |
Definition at line 17 of file TypeEvaluationKind.h.
|
static |
Definition at line 600 of file LowerItaniumCXXABI.cpp.
References cir::MissingFeatures::opFuncNoReturn().
Referenced by buildDynamicCastAfterNullCheck().
|
static |
C++ [expr.dynamic.cast]p9: A failed cast to reference type throws std::bad_cast
Definition at line 611 of file LowerItaniumCXXABI.cpp.
References cir::MissingFeatures::addressSpace(), and buildBadCastCall().
|
static |
Definition at line 665 of file LowerItaniumCXXABI.cpp.
References cir::MissingFeatures::addressSpace(), clang::Default, clang::TargetInfo::getPointerAlign(), getPtrDiffCIRTy(), and cir::LowerModule::getTarget().
| void cir::buildTerminatedBody | ( | mlir::OpBuilder & | builder, |
| mlir::Location | loc ) |
|
static |
Definition at line 26 of file LowerModule.cpp.
References createItaniumCXXABI(), and cir::LowerModule::getCXXABIKind().
Referenced by cir::LowerModule::LowerModule().
| std::unique_ptr< CIRCXXABI > cir::createItaniumCXXABI | ( | LowerModule & | lm | ) |
Creates an Itanium-family ABI.
Definition at line 115 of file LowerItaniumCXXABI.cpp.
References cir::MissingFeatures::appleArm64CXXABI(), and cir::LowerModule::getCXXABIKind().
Referenced by createCXXABI().
| std::unique_ptr< LowerModule > cir::createLowerModule | ( | mlir::ModuleOp | module | ) |
Definition at line 65 of file LowerModule.cpp.
References clang::targets::AllocateTarget(), cir::MissingFeatures::lowerModuleCodeGenOpts(), cir::MissingFeatures::lowerModuleLangOpts(), cir::MissingFeatures::makeTripleAlwaysPresent(), and clang::TargetOptions::Triple.
|
static |
Definition at line 47 of file LowerModule.cpp.
References cir::MissingFeatures::targetLoweringInfo().
Referenced by cir::LowerModule::getTargetLoweringInfo().
|
static |
Definition at line 26 of file CIRGenAction.cpp.
References clang::Backend_EmitAssembly, clang::Backend_EmitBC, clang::Backend_EmitLL, clang::Backend_EmitObj, cir::CIRGenAction::EmitAssembly, cir::CIRGenAction::EmitBC, cir::CIRGenAction::EmitCIR, cir::CIRGenAction::EmitLLVM, and cir::CIRGenAction::EmitObj.
Referenced by cir::CIRGenConsumer::HandleTranslationUnit().
|
static |
Definition at line 138 of file LowerItaniumCXXABI.cpp.
References clang::Default, cir::LowerModule::getMLIRContext(), clang::TargetInfo::getPtrDiffType(), cir::LowerModule::getTarget(), clang::TargetInfo::getTypeWidth(), and clang::TargetInfo::isTypeSigned().
Referenced by buildDynamicCastToVoidAfterNullCheck(), and lowerMethodCast().
|
static |
Definition at line 60 of file CIROpsEnums.h.
|
static |
Definition at line 24 of file CIROpsEnums.h.
Referenced by isDiscardableIfUnused().
|
static |
Definition at line 57 of file CIROpsEnums.h.
|
static |
Whether the definition of this global may be discarded if it is not used in its compilation unit.
Definition at line 95 of file CIROpsEnums.h.
References isAvailableExternallyLinkage(), isLinkOnceLinkage(), and isLocalLinkage().
Referenced by getCIRGenToUse().
|
static |
Definition at line 21 of file CIROpsEnums.h.
Referenced by isValidDeclarationLinkage(), and isValidLinkage().
|
static |
Definition at line 54 of file CIROpsEnums.h.
Referenced by isValidDeclarationLinkage().
|
static |
Definition at line 45 of file CIROpsEnums.h.
Referenced by isLocalLinkage().
|
static |
Whether the definition of this global may be replaced by something non-equivalent at link time.
For example, if a function has weak linkage then the code defining it may be replaced by different code.
Definition at line 71 of file CIROpsEnums.h.
|
static |
Definition at line 27 of file CIROpsEnums.h.
Referenced by isLinkOnceLinkage().
|
static |
Definition at line 33 of file CIROpsEnums.h.
References isLinkOnceAnyLinkage(), and isLinkOnceODRLinkage().
Referenced by isDiscardableIfUnused(), and isValidLinkage().
|
static |
Definition at line 30 of file CIROpsEnums.h.
Referenced by isLinkOnceLinkage().
|
static |
Definition at line 51 of file CIROpsEnums.h.
References isInternalLinkage(), and isPrivateLinkage().
Referenced by clang::CIRGen::CIRGenVTables::generateConstructionVTable(), isDiscardableIfUnused(), and isValidLinkage().
| bool cir::isMatchingAddressSpace | ( | mlir::ptr::MemorySpaceAttrInterface | cirAS, |
| clang::LangAS | as ) |
Definition at line 1084 of file CIRTypes.cpp.
References clang::Default, normalizeDefaultAddressSpace(), and toCIRAddressSpaceAttr().
Referenced by emitBuiltinAlloca().
|
static |
Definition at line 48 of file CIROpsEnums.h.
Referenced by isLocalLinkage().
| bool cir::isSized | ( | mlir::Type | ty | ) |
Returns true if the type is a CIR sized type.
Types are sized if they implement SizedTypeInterface and return true from its method isSized.
Unsized types are those that do not have a size, such as void, or abstract types.
Definition at line 33 of file CIRTypes.cpp.
References cir::MissingFeatures::unsizedTypes().
Referenced by clang::CIRGen::CIRGenTypes::convertType(), determineNoUndef(), and cir::CIRDataLayout::getTypeSizeInBits().
| bool cir::isSupportedCIRMemorySpaceAttr | ( | mlir::ptr::MemorySpaceAttrInterface | memorySpace | ) |
Definition at line 947 of file CIRTypes.cpp.
|
inline |
Definition at line 125 of file CIROpsEnums.h.
Referenced by emitAtomicCmpXchgFailureSet(), and clang::CIRGen::CIRGenFunction::emitAtomicExprWithMemOrder().
|
static |
Definition at line 64 of file CIROpsEnums.h.
References isExternalLinkage(), and isExternalWeakLinkage().
Definition at line 534 of file CIRTypes.cpp.
|
static |
Definition at line 113 of file CIROpsEnums.h.
References isExternalLinkage(), isLinkOnceLinkage(), isLocalLinkage(), and isWeakLinkage().
Referenced by getCIRGenToUse().
|
static |
Definition at line 36 of file CIROpsEnums.h.
Referenced by isWeakLinkage().
|
static |
Whether the definition of this global may be replaced at link time.
NB: Using this method outside of the code generators is almost always a mistake: when working at the IR level use isInterposable instead as it knows about ODR semantics.
Definition at line 104 of file CIROpsEnums.h.
Referenced by clang::CIRGen::CIRGenModule::createOrReplaceCXXRuntimeVariable(), and getCIRGenToUse().
|
static |
Definition at line 42 of file CIROpsEnums.h.
References isWeakAnyLinkage(), and isWeakODRLinkage().
Referenced by isValidLinkage().
|
static |
Definition at line 39 of file CIROpsEnums.h.
Referenced by isWeakLinkage().
|
static |
Definition at line 403 of file LowerItaniumCXXABI.cpp.
|
static |
Definition at line 47 of file CIRGenAction.cpp.
References cir::direct::lowerDirectlyFromCIRToLLVMIR().
Referenced by cir::CIRGenConsumer::HandleTranslationUnit().
|
static |
Definition at line 453 of file LowerItaniumCXXABI.cpp.
References getPtrDiffCIRTy().
| mlir::ptr::MemorySpaceAttrInterface cir::normalizeDefaultAddressSpace | ( | mlir::ptr::MemorySpaceAttrInterface | addrSpace | ) |
Normalize LangAddressSpace::Default to null (empty attribute).
Definition at line 1060 of file CIRTypes.cpp.
Referenced by isMatchingAddressSpace().
|
constexpr |
Definition at line 42 of file CIRBaseBuilder.h.
References b.
|
constexpr |
Definition at line 53 of file CIRBaseBuilder.h.
References b.
|
delete |
|
delete |
|
delete |
|
delete |
|
constexpr |
Definition at line 37 of file CIRBaseBuilder.h.
References b.
|
constexpr |
Definition at line 47 of file CIRBaseBuilder.h.
References b.
| mlir::LogicalResult cir::runCIRToCIRPasses | ( | mlir::ModuleOp | theModule, |
| mlir::MLIRContext & | mlirCtx, | ||
| clang::ASTContext & | astCtx, | ||
| bool | enableVerifier, | ||
| bool | enableIdiomRecognizer, | ||
| bool | enableCIRSimplify ) |
Definition at line 21 of file CIRPasses.cpp.
References mlir::createCIRCanonicalizePass(), mlir::createCIRSimplifyPass(), mlir::createCXXABILoweringPass(), mlir::createIdiomRecognizerPass(), mlir::createLoweringPreparePass(), and mlir::createTargetLoweringPass().
Referenced by cir::CIRGenConsumer::HandleTranslationUnit().
|
constexpr |
Definition at line 59 of file CIRBaseBuilder.h.
References None.
Referenced by cir::CIRBaseBuilderTy::createAdd(), cir::CIRBaseBuilderTy::createMul(), and cir::CIRBaseBuilderTy::createSub().
| mlir::ptr::MemorySpaceAttrInterface cir::toCIRAddressSpaceAttr | ( | mlir::MLIRContext & | ctx, |
| clang::LangAS | langAS ) |
Convert an AST LangAS to the appropriate CIR address space attribute interface.
Definition at line 1070 of file CIRTypes.cpp.
References clang::isTargetAddressSpace(), toCIRLangAddressSpace(), and clang::toTargetAddressSpace().
Referenced by clang::CIRGen::CIRGenFunction::emitCastLValue(), cir::CIRBaseBuilderTy::getPointerTo(), and isMatchingAddressSpace().
| cir::LangAddressSpace cir::toCIRLangAddressSpace | ( | clang::LangAS | langAS | ) |
Definition at line 953 of file CIRTypes.cpp.
Referenced by toCIRAddressSpaceAttr().