Re-exportsΒ§
use std::ffi::CStr;πuse std::ffi::CString;πuse std::num::NonZero;πuse std::ptr;πuse std::string::FromUtf8Error;πuse libc::c_uint;πuse rustc_abi::AddressSpace;πuse rustc_abi::Align;πuse rustc_abi::Size;πuse rustc_abi::WrappingRange;πuse rustc_llvm::RustString;πpub(crate) use self::branded::Context;πpub(crate) use self::branded::ContextRaw;πpub(crate) use self::branded::Module;πpub(crate) use self::branded::ModuleRaw;πpub(crate) use self::branded::Type;πpub(crate) use self::branded::Value;πpub(crate) use self::branded::wrap_llcx;πpub(crate) use self::branded::wrap_llmod;πpub(crate) use self::CallConv::*;π
ModulesΒ§
- Enzyme_
AD π - branded π
- Lifetime-branded references to things manipulated by the LLVM bindings.
- conversions π
- Conversions from backend-independent data types to/from LLVM FFI types.
- debuginfo π
- diagnostic π
- LLVM diagnostic reports.
- enzyme_
ffi π - ffi π
- Bindings to the LLVM-C API (
LLVM*), and to our ownextern "C"wrapper functions around the unstable LLVM C++ API (LLVMRust*). - fixed_
kinds π - metadata_
kind π - offload_
ffi π - tpde_
ffi π
MacrosΒ§
StructsΒ§
- Alloc
Kind πFlags - Bool π
- In the LLVM-C API, boolean values are passed as
typedef int LLVMBool, which has a different ABI from Rust or C++bool. - Builder π
- Enzyme
Type πTree - Enzyme
Wrapper π - GEPNo
Wrap πFlags - Intrinsic π
- Invariant
Opaque π - LLVM
Rust πTpde Options - LLVMRustTpdeOptions
- Linker π
- Metadata
Kind πId - Operand
Bundle π - Opaque pointee of
LLVMOperandBundleRef. - Operand
Bundle πBox - Owning pointer to an
OperandBundlethat will dispose of the bundle when dropped. - RawEnum π
- Wrapper for a raw enum value returned from LLVMβs C APIs.
- Rust
Offload πWrapper - Sanitizer
Options π - LLVMRustSanitizerOptions
- ThinLTO
Module π - LLVMRustThinLTOModule
- Tpde
Wrapper π - Type
Tree π
EnumsΒ§
- AsmDialect π
- Must match the layout of
LLVMInlineAsmDialect. - Atomic
Ordering π - LLVMAtomicOrdering
- Atomic
RmwBin πOp - LLVMAtomicRmwBinOp
- Attribute
Kind π - 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) - Attribute
Place π - CConcrete
Type π - Call
Conv π - LLVM CallingConv::ID. Should we wrap this?
- Checksum
Kind π - LLVMRustChecksumKind
- Code
GenOpt πLevel - LLVMRustCodeGenOptLevel
- Code
Model π - LLVMRustCodeModel
- Compression
Kind π - Must match the layout of
LLVMRustCompressionKind. - DLLStorage
Class π - LLVMDLLStorageClass
- Diagnostic
Kind π - LLVMRustDiagnosticKind
- Diagnostic
Severity π - LLVMDiagnosticSeverity
- Enzyme
Library πError - File
Type π - LLVMRustFileType
- Float
Abi π - LLVMRustFloatABI
- Frame
Pointer πKind - Must match the layout of
llvm::FramePointerKind. - IntPredicate π
- LLVMIntPredicate
- LLVM
Rust πResult - LLVM
Rust πTpde Mode - LLVMRustTpdeMode
- LLVM
Rust πVerifier Failure Action - Linkage π
- Must match the layout of
LLVMLinkage. - Memory
Effects π - LLVMRustMemoryEffects
- Module
Flag πMerge Behavior - Must match the layout of
LLVMRustModuleFlagMergeBehavior. - Opcode π
- LLVMOpcode
- OptStage π
- LLVMRustOptStage
- Pass
Builder πOptLevel - LLVMRustPassBuilderOptLevel
- Real
Predicate π - LLVMRealPredicate
- Reloc
Model π - LLVMRustRelocModel
- Rust
Offload πLibrary Error - Tail
Call πKind - Must match the layout of
LLVMTailCallKind. - Thread
Local πMode - LLVMThreadLocalMode
- Tpde
Library πError - Type
Kind π - Must match the layout of
LLVMTypeKind. - UWTable
Kind π - Must match the layout of
llvm::UWTableKind. - Unnamed
Addr π - LLVMUnnamedAddr
- Visibility π
- Must match the layout of
LLVMVisibility.
ConstantsΒ§
- FALSE π
- MD_
DIAssignID π - MD_
absolute_ πsymbol - MD_
access_ πgroup - MD_
alias_ πscope - MD_
align π - MD_
annotation π - MD_
associated π - MD_
callback π - MD_
callees π - MD_
callsite π - MD_
coro_ πoutside_ frame - MD_dbg π
- MD_
dereferenceable π - MD_
dereferenceable_ πor_ null - MD_
exclude π - MD_
fpmath π - MD_
func_ πsanitize - MD_
invariant_ πgroup - MD_
invariant_ πload - MD_
irr_ πloop - MD_
kcfi_ πtype - MD_loop π
- MD_
make_ πimplicit - MD_
mem_ πparallel_ loop_ access - MD_
memprof π - MD_mmra π
- MD_
noalias π - MD_
noalias_ πaddrspace - MD_
nonnull π - MD_
nontemporal π - MD_
nosanitize π - MD_
noundef π - MD_
pcsections π - MD_
preserve_ πaccess_ index - MD_prof π
- MD_
range π - MD_
section_ πprefix - MD_tbaa π
- MD_
tbaa_ πstruct - MD_type π
- MD_
unpredictable π - MD_
vcall_ πvisibility - TRUE π
StaticsΒ§
- ENZYME_
INSTANCE π - OFFLOAD_
INSTANCE π - TPDE_
INSTANCE π
TraitsΒ§
- From
Generic π - Helper trait for converting backend-independent types to LLVM-specific types, for FFI purposes.
- ToLlvm
Bool π - Convenience trait to convert
booltollvm::Boolwith an explicit method call.
FunctionsΒ§
- AddCall
Site πAttributes - AddFunction
Attributes π - Create
Alignment πAttr - Create
Alloc πKind Attr - Create
Alloc πSize Attr - Create
Attr πString - Create
Attr πString Value - Create
Attr πString Value FromC Str - Create
ByRef πAttr - Create
ByVal πAttr - Create
Dereferenceable πAttr - Create
Dereferenceable πOrNull Attr - Create
Range πAttr - Create
Struct πRetAttr - CreateUW
Table πAttr - HasString
Attribute π - Remove
String πAttr From Fn - SetFunction
Call πConv - SetInstruction
Call πConv - SetUnique
Comdat π - add_
alias π - Safe wrapper for
LLVMAddAlias2 - add_
global π - add_
module_ πflag_ str - add_
module_ πflag_ u32 - append_
module_ πinline_ asm - Safe wrapper for
LLVMRustAppendModuleInlineAsm, which delegates toModule::appendModuleInlineAsm. - build_
byte_ πbuffer - build_
string π - const_
ptr_ πauth - Safe wrapper for
LLVMRustConstPtrAuth. - count_
params π - get_
linkage π - get_
param π - Safe wrapper around
LLVMGetParam, because segfaults are no fun. - get_
value_ πname - Safe wrapper for
LLVMGetValueName2Needs to allocate the value, becauseset_value_namewill invalidate the pointer. - get_
visibility π - is_
declaration π - last_
error π - load_
ptr_ πby_ symbol_ mut_ void - set_
alignment π - set_
comdat π - Get the
named comdat fromllmodand assign it tollglobal. - set_
dllimport_ πstorage_ class - set_
dso_ πlocal - set_
externally_ πinitialized - set_
global_ πconstant - set_
initializer π - set_
linkage π - set_
section π - set_
thread_ πlocal_ mode - set_
unnamed_ πaddress - set_
value_ πname - Safe wrapper for
LLVMSetValueName2from a byte slice - set_
visibility π - twine_
to_ πstring
Type AliasesΒ§
- CType
Tree πRef - Diagnostic
Handler πCallback - Must match the declaration of
LLVMRustDiagnosticHandlerCallback. - Enzyme
Free πType Tree Fn - Enzyme
Merge πType Tree Fn - Enzyme
NewType πTreeCT Fn - Enzyme
NewType πTree Fn - Enzyme
NewType πTreeTR Fn - Enzyme
SetCL πBool Fn - Enzyme
SetCL πString Fn - Enzyme
Type πTree Data0 EqFn - Enzyme
Type πTree Insert EqFn - Enzyme
Type πTree Only EqFn - Enzyme
Type πTree Shift Indicies EqFn - Enzyme
Type πTree ToString Fn - Enzyme
Type πTree ToString Free Fn - GetSymbols
Callback π - GetSymbols
Error πCallback - LLVM
GetPass πPlugin Info Fn - LLVM
Rust πOffload Mapper Fn - LLVM
Rust πOffload Wrap Images Fn - Self
Profile πAfter Pass Callback - Self
Profile πBefore Pass Callback