[−][src]Module rustc_codegen_llvm::llvm

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

coverageinfo
debuginfo
diagnostic

LLVM diagnostic reports.

Structs

ArchiveChild
ArchiveIterator
Builder
Linker
ObjectFile
OperandBundleDef
OperandBundleDef
PassManager
RustArchiveMember
SanitizerOptions

LLVMRustSanitizerOptions

SectionIter
SectionIterator
ThinLTOModule

LLVMRustThinLTOModule

Enums

ArchiveKind

LLVMRustArchiveKind

AsmDialect

LLVMRustAsmDialect

AtomicOrdering

LLVMAtomicOrdering

AtomicRmwBinOp

LLVMAtomicRmwBinOp

Attribute

Matches LLVMRustAttribute in LLVMWrapper.h 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

IntPredicate

LLVMIntPredicate

LLVMRustResult
Linkage

LLVMRustLinkage

MetadataType

LLVMMetadataType

OptStage

LLVMRustOptStage

PassBuilderOptLevel

LLVMRustPassBuilderOptLevel

PassKind

LLVMRustPassKind

RealPredicate

LLVMRealPredicate

RelocModel

LLVMRelocMode

SynchronizationScope

LLVMRustSynchronizationScope

ThreadLocalMode

LLVMThreadLocalMode

TypeKind

LLVMTypeKind

UnnamedAddr

LLVMUnnamedAddr

Visibility

Constants

False
True

Functions

AddFunctionAttrString
AddFunctionAttrStringValue
LLVMAddAnalysisPasses⚠
LLVMAddCase⚠
LLVMAddClause⚠
LLVMAddGlobal⚠
LLVMAddIncoming⚠
LLVMAddNamedMetadataOperand⚠
LLVMAppendBasicBlockInContext⚠
LLVMBuildAShr⚠
LLVMBuildAdd⚠
LLVMBuildAlloca⚠
LLVMBuildAnd⚠
LLVMBuildArrayAlloca⚠
LLVMBuildAtomicRMW⚠
LLVMBuildBitCast⚠
LLVMBuildBr⚠
LLVMBuildCondBr⚠
LLVMBuildExactSDiv⚠
LLVMBuildExactUDiv⚠
LLVMBuildExtractElement⚠
LLVMBuildExtractValue⚠
LLVMBuildFAdd⚠
LLVMBuildFCmp⚠
LLVMBuildFDiv⚠
LLVMBuildFMul⚠
LLVMBuildFNeg⚠
LLVMBuildFPExt⚠
LLVMBuildFPToSI⚠
LLVMBuildFPToUI⚠
LLVMBuildFPTrunc⚠
LLVMBuildFRem⚠
LLVMBuildFSub⚠
LLVMBuildGEP⚠
LLVMBuildICmp⚠
LLVMBuildInBoundsGEP⚠
LLVMBuildInsertElement⚠
LLVMBuildInsertValue⚠
LLVMBuildIntToPtr⚠
LLVMBuildLShr⚠
LLVMBuildLandingPad⚠
LLVMBuildLoad⚠
LLVMBuildMul⚠
LLVMBuildNSWAdd⚠
LLVMBuildNSWMul⚠
LLVMBuildNSWSub⚠
LLVMBuildNUWAdd⚠
LLVMBuildNUWMul⚠
LLVMBuildNUWSub⚠
LLVMBuildNeg⚠
LLVMBuildNot⚠
LLVMBuildOr⚠
LLVMBuildPhi⚠
LLVMBuildPointerCast⚠
LLVMBuildPtrToInt⚠
LLVMBuildResume⚠
LLVMBuildRet⚠
LLVMBuildRetVoid⚠
LLVMBuildSDiv⚠
LLVMBuildSExt⚠
LLVMBuildSIToFP⚠
LLVMBuildSRem⚠
LLVMBuildSelect⚠
LLVMBuildShl⚠
LLVMBuildShuffleVector⚠
LLVMBuildStore⚠
LLVMBuildStructGEP⚠
LLVMBuildSub⚠
LLVMBuildSwitch⚠
LLVMBuildTrunc⚠
LLVMBuildUDiv⚠
LLVMBuildUIToFP⚠
LLVMBuildURem⚠
LLVMBuildUnreachable⚠
LLVMBuildVAArg⚠
LLVMBuildXor⚠
LLVMBuildZExt⚠
LLVMCloneModule⚠
LLVMConstArray⚠
LLVMConstBitCast⚠
LLVMConstExtractValue⚠
LLVMConstInBoundsGEP⚠
LLVMConstInt⚠
LLVMConstIntGetZExtValue⚠
LLVMConstIntOfArbitraryPrecision⚠
LLVMConstIntToPtr⚠
LLVMConstNull⚠
LLVMConstPointerCast⚠
LLVMConstPtrToInt⚠
LLVMConstReal⚠
LLVMConstStringInContext⚠
LLVMConstStructInContext⚠
LLVMConstVector⚠
LLVMConstZExt⚠
LLVMContextDispose⚠
LLVMContextSetDiagnosticHandler⚠
LLVMCountParamTypes⚠
LLVMCountParams⚠
LLVMCreateBuilderInContext⚠
LLVMCreateFunctionPassManagerForModule⚠

Creates a function-by-function pass manager

LLVMCreateObjectFile⚠

Opens an object file.

LLVMCreatePassManager⚠

Creates a pass manager.

LLVMDeleteBasicBlock⚠
LLVMDeleteGlobal⚠
LLVMDisposeBuilder⚠
LLVMDisposeObjectFile⚠

Closes an object file.

LLVMDisposePassManager⚠

Disposes a pass manager.

LLVMDisposeSectionIterator⚠

Destroys a section iterator.

LLVMDoubleTypeInContext⚠
LLVMFloatTypeInContext⚠
LLVMFunctionType⚠
LLVMGetAlignment⚠
LLVMGetBasicBlockParent⚠
LLVMGetDataLayoutStr⚠

Data layout. See Module::getDataLayout.

LLVMGetElementType⚠
LLVMGetFirstBasicBlock⚠
LLVMGetFirstGlobal⚠
LLVMGetInitializer⚠
LLVMGetInsertBlock⚠
LLVMGetIntTypeWidth⚠
LLVMGetMDKindIDInContext⚠
LLVMGetModuleContext⚠
LLVMGetNamedGlobal⚠
LLVMGetNextGlobal⚠
LLVMGetParam⚠
LLVMGetParamTypes⚠
LLVMGetSectionContents⚠

Returns the current section contents as a string buffer.

LLVMGetSectionSize⚠

Returns the current section size.

LLVMGetSections⚠

Enumerates the sections in an object file.

LLVMGetUndef⚠
LLVMGetValueName2⚠
LLVMGetVectorSize⚠
LLVMInitializePasses⚠
LLVMInt1TypeInContext⚠
LLVMInt8TypeInContext⚠
LLVMInt16TypeInContext⚠
LLVMInt32TypeInContext⚠
LLVMInt64TypeInContext⚠
LLVMIntTypeInContext⚠
LLVMIsAArgument⚠
LLVMIsAConstantInt⚠
LLVMIsAGlobalVariable⚠
LLVMIsAInstruction⚠
LLVMIsDeclaration⚠
LLVMIsGlobalConstant⚠
LLVMIsSectionIteratorAtEnd⚠

Returns true if the section iterator is at the end of the section list:

LLVMMDNodeInContext⚠
LLVMMDStringInContext⚠
LLVMModuleCreateWithNameInContext⚠
LLVMMoveToNextSection⚠

Moves the section iterator to point to the next section.

LLVMPassManagerBuilderCreate⚠
LLVMPassManagerBuilderDispose⚠
LLVMPassManagerBuilderPopulateFunctionPassManager⚠
LLVMPassManagerBuilderPopulateLTOPassManager⚠
LLVMPassManagerBuilderPopulateModulePassManager⚠
LLVMPassManagerBuilderSetDisableUnrollLoops⚠
LLVMPassManagerBuilderSetSizeLevel⚠
LLVMPassManagerBuilderUseInlinerWithThreshold⚠
LLVMPointerType⚠
LLVMPositionBuilderAtEnd⚠
LLVMReplaceAllUsesWith⚠
LLVMRunPassManager⚠

Runs a pass manager on a module.

LLVMRustAddAlignmentAttr⚠
LLVMRustAddAlignmentCallSiteAttr⚠
LLVMRustAddAlwaysInlinePass⚠
LLVMRustAddBuilderLibraryInfo⚠
LLVMRustAddByValAttr⚠
LLVMRustAddByValCallSiteAttr⚠
LLVMRustAddCallSiteAttribute⚠
LLVMRustAddDereferenceableAttr⚠
LLVMRustAddDereferenceableCallSiteAttr⚠
LLVMRustAddDereferenceableOrNullAttr⚠
LLVMRustAddDereferenceableOrNullCallSiteAttr⚠
LLVMRustAddFunctionAttrStringValue⚠
LLVMRustAddFunctionAttribute⚠
LLVMRustAddHandler⚠
LLVMRustAddLastExtensionPasses⚠
LLVMRustAddLibraryInfo⚠
LLVMRustAddModuleFlag⚠
LLVMRustAddPass⚠
LLVMRustAppendModuleInlineAsm⚠
LLVMRustArchiveChildData⚠
LLVMRustArchiveChildFree⚠
LLVMRustArchiveChildName⚠
LLVMRustArchiveIteratorFree⚠
LLVMRustArchiveIteratorNew⚠
LLVMRustArchiveIteratorNext⚠
LLVMRustArchiveMemberFree⚠
LLVMRustArchiveMemberNew⚠
LLVMRustArrayType⚠
LLVMRustBuildAtomicCmpXchg⚠
LLVMRustBuildAtomicFence⚠
LLVMRustBuildAtomicLoad⚠
LLVMRustBuildAtomicStore⚠
LLVMRustBuildCall⚠
LLVMRustBuildCatchPad⚠
LLVMRustBuildCatchRet⚠
LLVMRustBuildCatchSwitch⚠
LLVMRustBuildCleanupPad⚠
LLVMRustBuildCleanupRet⚠
LLVMRustBuildIntCast⚠
LLVMRustBuildInvoke⚠
LLVMRustBuildMaxNum⚠
LLVMRustBuildMemCpy⚠
LLVMRustBuildMemMove⚠
LLVMRustBuildMemSet⚠
LLVMRustBuildMinNum⚠
LLVMRustBuildOperandBundleDef⚠
LLVMRustBuildVectorReduceAdd⚠
LLVMRustBuildVectorReduceAnd⚠
LLVMRustBuildVectorReduceFAdd⚠
LLVMRustBuildVectorReduceFMax⚠
LLVMRustBuildVectorReduceFMin⚠
LLVMRustBuildVectorReduceFMul⚠
LLVMRustBuildVectorReduceMax⚠
LLVMRustBuildVectorReduceMin⚠
LLVMRustBuildVectorReduceMul⚠
LLVMRustBuildVectorReduceOr⚠
LLVMRustBuildVectorReduceXor⚠
LLVMRustComputeLTOCacheKey⚠
LLVMRustConfigurePassManagerBuilder⚠
LLVMRustConstInt128Get⚠
LLVMRustContextCreate⚠
LLVMRustCoverageComputeHash⚠
LLVMRustCoverageCreatePGOFuncNameVar⚠
LLVMRustCoverageMappingVersion⚠
LLVMRustCoverageWriteFilenamesSectionToBuffer⚠
LLVMRustCoverageWriteMappingToBuffer⚠
LLVMRustCoverageWriteMappingVarNameToString⚠
LLVMRustCoverageWriteSectionNameToString⚠
LLVMRustCreateAddressSanitizerFunctionPass⚠
LLVMRustCreateMemoryBufferWithContentsOfFile⚠

Reads the given file and returns it as a memory buffer. Use LLVMDisposeMemoryBuffer() to get rid of it.

LLVMRustCreateMemorySanitizerPass⚠
LLVMRustCreateModuleAddressSanitizerPass⚠
LLVMRustCreateTargetMachine⚠
LLVMRustCreateThinLTOData⚠
LLVMRustCreateThreadSanitizerPass⚠
LLVMRustDIBuilderCreate⚠
LLVMRustDIBuilderCreateArrayType⚠
LLVMRustDIBuilderCreateBasicType⚠
LLVMRustDIBuilderCreateCompileUnit⚠
LLVMRustDIBuilderCreateDebugLocation⚠
LLVMRustDIBuilderCreateEnumerationType⚠
LLVMRustDIBuilderCreateEnumerator⚠
LLVMRustDIBuilderCreateFile⚠
LLVMRustDIBuilderCreateFunction⚠
LLVMRustDIBuilderCreateLexicalBlock⚠
LLVMRustDIBuilderCreateLexicalBlockFile⚠
LLVMRustDIBuilderCreateMemberType⚠
LLVMRustDIBuilderCreateNameSpace⚠
LLVMRustDIBuilderCreateOpDeref⚠
LLVMRustDIBuilderCreateOpPlusUconst⚠
LLVMRustDIBuilderCreatePointerType⚠
LLVMRustDIBuilderCreateStaticVariable⚠
LLVMRustDIBuilderCreateStructType⚠
LLVMRustDIBuilderCreateSubroutineType⚠
LLVMRustDIBuilderCreateTemplateTypeParameter⚠
LLVMRustDIBuilderCreateTypedef⚠
LLVMRustDIBuilderCreateUnionType⚠
LLVMRustDIBuilderCreateVariable⚠
LLVMRustDIBuilderCreateVariantMemberType⚠
LLVMRustDIBuilderCreateVariantPart⚠
LLVMRustDIBuilderDispose⚠
LLVMRustDIBuilderFinalize⚠
LLVMRustDIBuilderGetOrCreateArray⚠
LLVMRustDIBuilderGetOrCreateSubrange⚠
LLVMRustDIBuilderInsertDeclareAtEnd⚠
LLVMRustDICompositeTypeReplaceArrays⚠
LLVMRustDebugMetadataVersion⚠
LLVMRustDestroyArchive⚠
LLVMRustDisposeTargetMachine⚠
LLVMRustFindAndCreatePass⚠
LLVMRustFreeOperandBundleDef⚠
LLVMRustFreeThinLTOData⚠
LLVMRustGetBitcodeSliceFromObjectData⚠
LLVMRustGetDiagInfoKind⚠
LLVMRustGetHostCPUName⚠
LLVMRustGetInstrProfIncrementIntrinsic⚠
LLVMRustGetInstructionCount⚠
LLVMRustGetLastError⚠

Returns a string describing the last error caused by an LLVMRust* call.

LLVMRustGetLinkage⚠
LLVMRustGetNamedValue⚠
LLVMRustGetOrInsertFunction⚠
LLVMRustGetOrInsertGlobal⚠
LLVMRustGetSectionName⚠
LLVMRustGetThinLTOModuleImports⚠
LLVMRustGetTypeKind⚠

See llvm::LLVMTypeKind::getTypeID.

LLVMRustGetVisibility⚠
LLVMRustHasFeature⚠
LLVMRustInlineAsm⚠

Prepares inline assembly.

LLVMRustInlineAsmVerify⚠
LLVMRustInsertPrivateGlobal⚠
LLVMRustInstallFatalErrorHandler⚠
LLVMRustLinkerAdd⚠
LLVMRustLinkerFree⚠
LLVMRustLinkerNew⚠
LLVMRustMarkAllFunctionsNounwind⚠
LLVMRustMetadataAsValue⚠
LLVMRustMetadataTypeInContext⚠
LLVMRustModuleBufferCreate⚠
LLVMRustModuleBufferFree⚠
LLVMRustModuleBufferLen⚠
LLVMRustModuleBufferPtr⚠
LLVMRustModuleCost⚠
LLVMRustOpenArchive⚠
LLVMRustOptimizeWithNewPassManager⚠
LLVMRustParseBitcodeForLTO⚠
LLVMRustPassKind⚠
LLVMRustPassManagerBuilderPopulateThinLTOPassManager⚠
LLVMRustPositionBuilderAtStart⚠
LLVMRustPrepareThinLTOImport⚠
LLVMRustPrepareThinLTOInternalize⚠
LLVMRustPrepareThinLTORename⚠
LLVMRustPrepareThinLTOResolveWeak⚠
LLVMRustPrintModule⚠
LLVMRustPrintPassTimings⚠

Print the pass timings since static dtors aren't picking them up.

LLVMRustPrintPasses⚠
LLVMRustPrintTargetCPUs⚠
LLVMRustPrintTargetFeatures⚠
LLVMRustRemoveFunctionAttributes⚠
LLVMRustRunFunctionPassManager⚠
LLVMRustRunRestrictionPass⚠
LLVMRustSetComdat⚠
LLVMRustSetDataLayoutFromTargetMachine⚠
LLVMRustSetHasUnsafeAlgebra⚠
LLVMRustSetInlineAsmDiagnosticHandler⚠
LLVMRustSetLLVMOptions⚠
LLVMRustSetLinkage⚠
LLVMRustSetModulePICLevel⚠
LLVMRustSetModulePIELevel⚠
LLVMRustSetNormalizedTarget⚠
LLVMRustSetVisibility⚠
LLVMRustThinLTOBufferCreate⚠
LLVMRustThinLTOBufferFree⚠
LLVMRustThinLTOBufferLen⚠
LLVMRustThinLTOBufferPtr⚠
LLVMRustThinLTOGetDICompileUnit⚠
LLVMRustThinLTOPatchDICompileUnit⚠
LLVMRustUnpackInlineAsmDiagnostic⚠
LLVMRustUnpackOptimizationDiagnostic⚠
LLVMRustUnpackSMDiagnostic⚠
LLVMRustUnsetComdat⚠
LLVMRustVersionMajor⚠
LLVMRustVersionMinor⚠
LLVMRustWriteArchive⚠
LLVMRustWriteDiagnosticInfoToString⚠
LLVMRustWriteOutputFile⚠
LLVMRustWriteTwineToString⚠
LLVMRustWriteTypeToString⚠
LLVMRustWriteValueToString⚠
LLVMSetAlignment⚠
LLVMSetCleanup⚠
LLVMSetCurrentDebugLocation⚠
LLVMSetDLLStorageClass⚠
LLVMSetDataLayout⚠
LLVMSetFunctionCallConv⚠
LLVMSetGlobalConstant⚠
LLVMSetInitializer⚠
LLVMSetInstructionCallConv⚠
LLVMSetMetadata⚠
LLVMSetModuleInlineAsm2⚠

See Module::setModuleInlineAsm.

LLVMSetPersonalityFn⚠
LLVMSetSection⚠
LLVMSetTailCall⚠
LLVMSetThreadLocal⚠
LLVMSetThreadLocalMode⚠
LLVMSetUnnamedAddress⚠
LLVMSetValueName2⚠
LLVMSetVolatile⚠
LLVMStartMultithreaded⚠
LLVMStructCreateNamed⚠
LLVMStructSetBody⚠
LLVMStructTypeInContext⚠
LLVMTimeTraceProfilerFinish⚠
LLVMTimeTraceProfilerInitialize⚠
LLVMTypeOf⚠
LLVMVectorType⚠
LLVMVoidTypeInContext⚠
LLVMWriteBitcodeToFile⚠

Writes a module to the specified path. Returns 0 on success.

SetFunctionCallConv
SetInstructionCallConv
SetUniqueComdat
SetUnnamedAddress
UnsetComdat
add_global
build_byte_buffer
build_string
get_param

Safe wrapper around LLVMGetParam, because segfaults are no fun.

get_value_name

Safe wrapper for LLVMGetValueName2 into a byte slice

last_error
mk_section_iter
set_alignment
set_global_constant
set_initializer
set_linkage
set_section
set_thread_local_mode
set_value_name

Safe wrapper for LLVMSetValueName2 from a byte slice

twine_to_string

Type Definitions

Bool
DiagnosticHandler
InlineAsmDiagHandler
SelfProfileAfterPassCallback
SelfProfileBeforePassCallback
ThinLTOModuleNameCallback

Foreign Types

Archive
BasicBlock
ConstantInt
Context
DiagnosticInfo
MemoryBuffer
Metadata
Module
ModuleBuffer
ObjectFile
Pass
PassManagerBuilder
SMDiagnostic
TargetMachine
ThinLTOBuffer
ThinLTOData
Twine
Type
Value