rustc_codegen_llvm

Module llvm

Source

Re-exports§

pub use self::AtomicRmwBinOp::*;
pub use self::CallConv::*;
pub use self::CodeGenOptSize::*;
pub use self::IntPredicate::*;
pub use self::Linkage::*;
pub use self::MetadataType::*;
pub use self::RealPredicate::*;

Modules§

archive_ro
A wrapper around LLVM’s archive (.a) code
debuginfo
diagnostic
LLVM diagnostic reports.
enzyme_ffi

Structs§

AllocKindFlags
ArchiveChild
ArchiveIterator
Builder
Linker
PassManager
RawEnum
Wrapper for a raw enum value returned from LLVM’s C APIs.
RustArchiveMember
SanitizerOptions
LLVMRustSanitizerOptions
ThinLTOModule
LLVMRustThinLTOModule

Enums§

ArchiveKind
LLVMRustArchiveKind
AsmDialect
LLVMRustAsmDialect
AtomicOrdering
LLVMAtomicOrdering
AtomicRmwBinOp
LLVMAtomicRmwBinOp
AttributeKind
Must match the layout of LLVMRustAttributeKind. Semantically a subset of the C++ enum llvm::Attribute::AttrKind, though it is not ABI compatible (since it’s a C++ enum)
AttributePlace
CallConv
LLVM CallingConv::ID. Should we wrap this?
ChecksumKind
LLVMRustChecksumKind
CodeGenOptLevel
LLVMRustCodeGenOptLevel
CodeGenOptSize
CodeModel
LLVMRustCodeModel
DLLStorageClass
LLVMDLLStorageClass
DiagnosticKind
LLVMRustDiagnosticKind
DiagnosticLevel
LLVMRustDiagnosticLevel
FileType
LLVMRustFileType
FloatAbi
LLVMRustFloatABI
IntPredicate
LLVMIntPredicate
LLVMMachineType
Translation of LLVM’s MachineTypes enum, defined in llvm\include\llvm\BinaryFormat\COFF.h.
LLVMRustResult
LLVMRustVerifierFailureAction
Linkage
Must match the layout of LLVMLinkage.
MemoryEffects
LLVMRustMemoryEffects
MetadataType
LLVMMetadataType
ModuleFlagMergeBehavior
Must match the layout of LLVMRustModuleFlagMergeBehavior.
OptStage
LLVMRustOptStage
PassBuilderOptLevel
LLVMRustPassBuilderOptLevel
RealPredicate
LLVMRealPredicate
RelocModel
LLVMRustRelocModel
TailCallKind
LLVMRustTailCallKind
ThreadLocalMode
LLVMThreadLocalMode
TypeKind
LLVMTypeKind
UnnamedAddr
LLVMUnnamedAddr
Visibility
Must match the layout of LLVMVisibility.

Constants§

False
True

Functions§

AddCallSiteAttributes
AddFunctionAttributes
CreateAlignmentAttr
CreateAllocKindAttr
CreateAllocSizeAttr
CreateAttrString
CreateAttrStringValue
CreateByValAttr
CreateDereferenceableAttr
CreateDereferenceableOrNullAttr
CreateRangeAttr
CreateStructRetAttr
CreateUWTableAttr
LLVMAddAnalysisPasses⚠
LLVMAddCase⚠
LLVMAddClause⚠
LLVMAddGlobal⚠
LLVMAddHandler⚠
LLVMAddIncoming⚠
LLVMAddNamedMetadataOperand⚠
LLVMAppendBasicBlockInContext⚠
LLVMAppendModuleInlineAsm⚠
See Module::setModuleInlineAsm.
LLVMArrayType2⚠
LLVMBuildAShr⚠
LLVMBuildAdd⚠
LLVMBuildAlloca⚠
LLVMBuildAnd⚠
LLVMBuildArrayAlloca⚠
LLVMBuildAtomicCmpXchg⚠
LLVMBuildAtomicRMW⚠
LLVMBuildBitCast⚠
LLVMBuildBr⚠
LLVMBuildCatchPad⚠
LLVMBuildCatchRet⚠
LLVMBuildCatchSwitch⚠
LLVMBuildCleanupPad⚠
LLVMBuildCleanupRet⚠
LLVMBuildCondBr⚠
LLVMBuildExactSDiv⚠
LLVMBuildExactUDiv⚠
LLVMBuildExtractElement⚠
LLVMBuildExtractValue⚠
LLVMBuildFAdd⚠
LLVMBuildFCmp⚠
LLVMBuildFDiv⚠
LLVMBuildFMul⚠
LLVMBuildFNeg⚠
LLVMBuildFPExt⚠
LLVMBuildFPToSI⚠
LLVMBuildFPToUI⚠
LLVMBuildFPTrunc⚠
LLVMBuildFRem⚠
LLVMBuildFSub⚠
LLVMBuildFence⚠
LLVMBuildGEP2⚠
LLVMBuildICmp⚠
LLVMBuildInBoundsGEP2⚠
LLVMBuildInsertElement⚠
LLVMBuildInsertValue⚠
LLVMBuildIntCast2⚠
LLVMBuildIntToPtr⚠
LLVMBuildLShr⚠
LLVMBuildLandingPad⚠
LLVMBuildLoad2⚠
LLVMBuildMul⚠
LLVMBuildNSWAdd⚠
LLVMBuildNSWMul⚠
LLVMBuildNSWSub⚠
LLVMBuildNUWAdd⚠
LLVMBuildNUWMul⚠
LLVMBuildNUWSub⚠
LLVMBuildNeg⚠
LLVMBuildNot⚠
LLVMBuildOr⚠
LLVMBuildPhi⚠
LLVMBuildPointerCast⚠
LLVMBuildPtrToInt⚠
LLVMBuildResume⚠
LLVMBuildRet⚠
LLVMBuildRetVoid⚠
LLVMBuildSDiv⚠
LLVMBuildSExt⚠
LLVMBuildSIToFP⚠
LLVMBuildSRem⚠
LLVMBuildSelect⚠
LLVMBuildShl⚠
LLVMBuildShuffleVector⚠
LLVMBuildStore⚠
LLVMBuildSub⚠
LLVMBuildSwitch⚠
LLVMBuildTrunc⚠
LLVMBuildUDiv⚠
LLVMBuildUIToFP⚠
LLVMBuildURem⚠
LLVMBuildUnreachable⚠
LLVMBuildVAArg⚠
LLVMBuildXor⚠
LLVMBuildZExt⚠
LLVMCloneModule⚠
LLVMConstArray2⚠
LLVMConstBitCast⚠
LLVMConstInBoundsGEP2⚠
LLVMConstInt⚠
LLVMConstIntOfArbitraryPrecision⚠
LLVMConstIntToPtr⚠
LLVMConstNull⚠
LLVMConstPtrToInt⚠
LLVMConstReal⚠
LLVMConstStringInContext2⚠
LLVMConstStructInContext⚠
LLVMConstVector⚠
LLVMContextDispose⚠
LLVMCountParamTypes⚠
LLVMCountParams⚠
LLVMCreateBuilderInContext⚠
LLVMCreatePassManager⚠
Creates a legacy pass manager – only used for final codegen.
LLVMCreateStringAttribute⚠
LLVMDeleteGlobal⚠
LLVMDisposeBuilder⚠
LLVMDisposeMessage⚠
LLVMDoubleTypeInContext⚠
LLVMFP128TypeInContext⚠
LLVMFloatTypeInContext⚠
LLVMFunctionType⚠
LLVMGetAggregateElement⚠
LLVMGetAlignment⚠
LLVMGetBasicBlockParent⚠
LLVMGetCurrentDebugLocation2⚠
LLVMGetDataLayoutStr⚠
Data layout. See Module::getDataLayout.
LLVMGetElementType⚠
LLVMGetFirstBasicBlock⚠
LLVMGetFirstGlobal⚠
LLVMGetFunctionCallConv⚠
LLVMGetHostCPUFeatures⚠
LLVMGetInitializer⚠
LLVMGetInsertBlock⚠
LLVMGetIntTypeWidth⚠
LLVMGetLinkage⚠
LLVMGetMDKindIDInContext⚠
LLVMGetModuleContext⚠
LLVMGetNamedFunction⚠
LLVMGetNamedGlobal⚠
LLVMGetNextGlobal⚠
LLVMGetOrInsertComdat⚠
LLVMGetParam⚠
LLVMGetParamTypes⚠
LLVMGetParams⚠
LLVMGetPoison⚠
LLVMGetReturnType⚠
LLVMGetUndef⚠
LLVMGetValueName2⚠
LLVMGetVectorSize⚠
LLVMGetVisibility⚠
LLVMGlobalGetValueType⚠
LLVMGlobalSetMetadata⚠
LLVMHalfTypeInContext⚠
LLVMInt1TypeInContext⚠
LLVMInt8TypeInContext⚠
LLVMInt16TypeInContext⚠
LLVMInt32TypeInContext⚠
LLVMInt64TypeInContext⚠
LLVMIntTypeInContext⚠
LLVMIsAArgument⚠
LLVMIsAConstantInt⚠
LLVMIsAGlobalVariable⚠
LLVMIsAInstruction⚠
LLVMIsDeclaration⚠
LLVMIsGlobalConstant⚠
LLVMIsMultithreaded⚠
LLVMIsThreadLocal⚠
LLVMMDNodeInContext2⚠
LLVMMDStringInContext2⚠
LLVMMetadataAsValue⚠
LLVMMetadataTypeInContext⚠
LLVMModuleCreateWithNameInContext⚠
LLVMPointerTypeInContext⚠
LLVMPositionBuilderAtEnd⚠
LLVMReplaceAllUsesWith⚠
LLVMRustAddCallSiteAttributes⚠
LLVMRustAddFunctionAttributes⚠
LLVMRustAddLibraryInfo⚠
LLVMRustAddModuleFlagString⚠
LLVMRustAddModuleFlagU32⚠
Add LLVM module flags.
LLVMRustArchiveChildFree⚠
LLVMRustArchiveChildName⚠
LLVMRustArchiveIteratorFree⚠
LLVMRustArchiveIteratorNew⚠
LLVMRustArchiveIteratorNext⚠
LLVMRustArchiveMemberFree⚠
LLVMRustArchiveMemberNew⚠
LLVMRustBuildAtomicLoad⚠
LLVMRustBuildAtomicStore⚠
LLVMRustBuildMaxNum⚠
LLVMRustBuildMemCpy⚠
LLVMRustBuildMemMove⚠
LLVMRustBuildMemSet⚠
LLVMRustBuildMinNum⚠
LLVMRustBuildVectorReduceAdd⚠
LLVMRustBuildVectorReduceAnd⚠
LLVMRustBuildVectorReduceFAdd⚠
LLVMRustBuildVectorReduceFMax⚠
LLVMRustBuildVectorReduceFMin⚠
LLVMRustBuildVectorReduceFMul⚠
LLVMRustBuildVectorReduceMax⚠
LLVMRustBuildVectorReduceMin⚠
LLVMRustBuildVectorReduceMul⚠
LLVMRustBuildVectorReduceOr⚠
LLVMRustBuildVectorReduceXor⚠
LLVMRustComputeLTOCacheKey⚠
LLVMRustConstInt128Get⚠
LLVMRustConstIntGetZExtValue⚠
LLVMRustContextConfigureDiagnosticHandler⚠
LLVMRustContextCreate⚠
LLVMRustContextGetDiagnosticHandler⚠
LLVMRustContextSetDiagnosticHandler⚠
LLVMRustCreateAlignmentAttr⚠
LLVMRustCreateAllocKindAttr⚠
LLVMRustCreateAllocSizeAttr⚠
LLVMRustCreateAttrNoValue⚠
LLVMRustCreateByValAttr⚠
LLVMRustCreateDereferenceableAttr⚠
LLVMRustCreateDereferenceableOrNullAttr⚠
LLVMRustCreateElementTypeAttr⚠
LLVMRustCreateMemoryEffectsAttr⚠
LLVMRustCreateRangeAttribute⚠
LLVMRustCreateStructRetAttr⚠
LLVMRustCreateTargetMachine⚠
LLVMRustCreateThinLTOData⚠
LLVMRustCreateUWTableAttr⚠
LLVMRustDIBuilderCreate⚠
LLVMRustDIBuilderCreateArrayType⚠
LLVMRustDIBuilderCreateBasicType⚠
LLVMRustDIBuilderCreateCompileUnit⚠
LLVMRustDIBuilderCreateDebugLocation⚠
LLVMRustDIBuilderCreateEnumerationType⚠
LLVMRustDIBuilderCreateEnumerator⚠
LLVMRustDIBuilderCreateFile⚠
LLVMRustDIBuilderCreateFunction⚠
LLVMRustDIBuilderCreateLexicalBlock⚠
LLVMRustDIBuilderCreateLexicalBlockFile⚠
LLVMRustDIBuilderCreateMemberType⚠
LLVMRustDIBuilderCreateMethod⚠
LLVMRustDIBuilderCreateNameSpace⚠
LLVMRustDIBuilderCreatePointerType⚠
LLVMRustDIBuilderCreateQualifiedType⚠
LLVMRustDIBuilderCreateStaticMemberType⚠
LLVMRustDIBuilderCreateStaticVariable⚠
LLVMRustDIBuilderCreateStructType⚠
LLVMRustDIBuilderCreateSubroutineType⚠
LLVMRustDIBuilderCreateTemplateTypeParameter⚠
LLVMRustDIBuilderCreateTypedef⚠
LLVMRustDIBuilderCreateUnionType⚠
LLVMRustDIBuilderCreateVariable⚠
LLVMRustDIBuilderCreateVariantMemberType⚠
LLVMRustDIBuilderCreateVariantPart⚠
LLVMRustDIBuilderDispose⚠
LLVMRustDIBuilderFinalize⚠
LLVMRustDIBuilderGetOrCreateArray⚠
LLVMRustDIBuilderGetOrCreateSubrange⚠
LLVMRustDIBuilderInsertDeclareAtEnd⚠
LLVMRustDICompositeTypeReplaceArrays⚠
LLVMRustDIGetInstMetadata⚠
LLVMRustDILocationCloneWithBaseDiscriminator⚠
LLVMRustDebugMetadataVersion⚠
LLVMRustDestroyArchive⚠
LLVMRustDisableSystemDialogsOnCrash⚠
LLVMRustDisposeTargetMachine⚠
LLVMRustEraseInstBefore⚠
LLVMRustEraseInstFromParent⚠
LLVMRustFreeThinLTOData⚠
LLVMRustGetDiagInfoKind⚠
LLVMRustGetElementTypeArgIndex⚠
LLVMRustGetHostCPUName⚠
LLVMRustGetLastError⚠
Returns a string describing the last error caused by an LLVMRust* call.
LLVMRustGetLastInstruction⚠
LLVMRustGetMangledName⚠
LLVMRustGetNamedValue⚠
LLVMRustGetOrInsertFunction⚠
LLVMRustGetOrInsertGlobal⚠
LLVMRustGetSMDiagnostic⚠
LLVMRustGetSliceFromObjectDataByName⚠
LLVMRustGetSymbols⚠
LLVMRustGetTargetFeature⚠
LLVMRustGetTargetFeaturesCount⚠
LLVMRustGetTerminator⚠
LLVMRustGetTypeKind⚠
See llvm::LLVMTypeKind::getTypeID.
LLVMRustGlobalAddMetadata⚠
LLVMRustHasFeature⚠
LLVMRustHasMetadata⚠
LLVMRustInlineAsm⚠
Prepares inline assembly.
LLVMRustInlineAsmVerify⚠
LLVMRustInsertPrivateGlobal⚠
LLVMRustInstallErrorHandlers⚠
LLVMRustIs64BitSymbolicFile⚠
LLVMRustIsBitcode⚠
LLVMRustIsECObject⚠
LLVMRustIsNonGVFunctionPointerTy⚠
LLVMRustLLVMHasZlibCompressionForDebugSymbols⚠
LLVMRustLLVMHasZstdCompressionForDebugSymbols⚠
LLVMRustLinkerAdd⚠
LLVMRustLinkerFree⚠
LLVMRustLinkerNew⚠
LLVMRustModuleBufferCreate⚠
LLVMRustModuleBufferFree⚠
LLVMRustModuleBufferLen⚠
LLVMRustModuleBufferPtr⚠
LLVMRustModuleCost⚠
LLVMRustModuleInstructionStats⚠
LLVMRustOpenArchive⚠
LLVMRustOptimize⚠
LLVMRustParseBitcodeForLTO⚠
LLVMRustPositionBuilderAtStart⚠
LLVMRustPrepareThinLTOImport⚠
LLVMRustPrepareThinLTOInternalize⚠
LLVMRustPrepareThinLTORename⚠
LLVMRustPrepareThinLTOResolveWeak⚠
LLVMRustPrintModule⚠
LLVMRustPrintPasses⚠
LLVMRustRunRestrictionPass⚠
LLVMRustSetAlgebraicMath⚠
LLVMRustSetAllowReassoc⚠
LLVMRustSetDSOLocal⚠
LLVMRustSetDataLayoutFromTargetMachine⚠
LLVMRustSetFastMath⚠
LLVMRustSetLLVMOptions⚠
LLVMRustSetModuleCodeModel⚠
LLVMRustSetModulePICLevel⚠
LLVMRustSetModulePIELevel⚠
LLVMRustSetNoSanitizeAddress⚠
LLVMRustSetNoSanitizeHWAddress⚠
LLVMRustSetNormalizedTarget⚠
LLVMRustSetTailCallKind⚠
LLVMRustThinLTOBufferCreate⚠
LLVMRustThinLTOBufferFree⚠
LLVMRustThinLTOBufferLen⚠
LLVMRustThinLTOBufferPtr⚠
LLVMRustThinLTOBufferThinLinkDataLen⚠
LLVMRustThinLTOBufferThinLinkDataPtr⚠
LLVMRustTimeTraceProfilerFinish⚠
LLVMRustTimeTraceProfilerFinishThread⚠
LLVMRustTimeTraceProfilerInitialize⚠
LLVMRustUnpackInlineAsmDiagnostic⚠
LLVMRustUnpackOptimizationDiagnostic⚠
LLVMRustUnpackSMDiagnostic⚠
LLVMRustVerifyFunction⚠
LLVMRustVersionMajor⚠
LLVMRustVersionMinor⚠
LLVMRustVersionPatch⚠
LLVMRustWriteArchive⚠
LLVMRustWriteDiagnosticInfoToString⚠
LLVMRustWriteOutputFile⚠
LLVMRustWriteTwineToString⚠
LLVMRustWriteTypeToString⚠
LLVMRustWriteValueToString⚠
LLVMSetAlignment⚠
LLVMSetCleanup⚠
LLVMSetComdat⚠
LLVMSetCurrentDebugLocation2⚠
LLVMSetDLLStorageClass⚠
LLVMSetDataLayout⚠
LLVMSetFunctionCallConv⚠
LLVMSetGlobalConstant⚠
LLVMSetInitializer⚠
LLVMSetInstructionCallConv⚠
LLVMSetLinkage⚠
LLVMSetMetadata⚠
LLVMSetPersonalityFn⚠
LLVMSetSection⚠
LLVMSetTailCall⚠
LLVMSetThreadLocalMode⚠
LLVMSetUnnamedAddress⚠
LLVMSetValueName2⚠
LLVMSetVisibility⚠
LLVMSetVolatile⚠
LLVMSetWeak⚠
LLVMStructCreateNamed⚠
LLVMStructSetBody⚠
LLVMStructTypeInContext⚠
LLVMTokenTypeInContext⚠
LLVMTypeOf⚠
LLVMValueAsMetadata⚠
LLVMVectorType⚠
LLVMVoidTypeInContext⚠
LLVMWriteBitcodeToFile⚠
Writes a module to the specified path. Returns 0 on success.
SetFunctionCallConv
SetInstructionCallConv
SetUniqueComdat
SetUnnamedAddress
add_global
build_byte_buffer
build_string
get_linkage
get_param
Safe wrapper around LLVMGetParam, because segfaults are no fun.
get_value_name
Safe wrapper for LLVMGetValueName2 into a byte slice
get_visibility
last_error
set_alignment
set_comdat
Get the named comdat from llmod and assign it to llglobal.
set_global_constant
set_initializer
set_linkage
set_section
set_thread_local_mode
set_value_name
Safe wrapper for LLVMSetValueName2 from a byte slice
set_visibility
twine_to_string

Type Aliases§

Bool
In the LLVM-C API, boolean values are passed as typedef int LLVMBool, which has a different ABI from Rust or C++ bool.
DiagnosticHandlerTy
GetSymbolsCallback
GetSymbolsErrorCallback
InlineAsmDiagHandlerTy
SelfProfileAfterPassCallback
SelfProfileBeforePassCallback

Foreign Types§

Archive
Attribute
BasicBlock
Comdat
ConstantInt
Context
DiagnosticHandler
DiagnosticInfo
Metadata
Module
ModuleBuffer
Pass
SMDiagnostic
TargetMachine
ThinLTOBuffer
ThinLTOData
Twine
Type
Value