Module llvm

Source
Expand description

Compilation of native dependencies like LLVM.

Native projects like LLVM unfortunately aren’t suited just yet for compilation in build scripts that Cargo has. This is because the compilation takes a very long time but also because we don’t want to compile LLVM 3 times as part of a normal bootstrap (we want it cached).

LLVM and compiler-rt are essentially just wired up to everything else to ensure that they’re always in place if needed.

Structs§

CrtBeginEnd
Enzyme
LdFlags 🔒
Linker flags to pass to LLVM’s CMake invocation.
Libunwind
Lld
Llvm
LlvmResult
Meta
SanitizerRuntime
Sanitizers

Enums§

LlvmBuildStatus

Functions§

check_llvm_version 🔒
configure_cmake 🔒
configure_llvm 🔒
detect_llvm_sha 🔒
This retrieves the LLVM sha we want to use, according to git history.
get_llvm_version
get_llvm_version_major
get_var 🔒
is_ci_llvm_available 🔒
Returns whether the CI-found LLVM is currently usable.
is_ci_llvm_modified 🔒
Returns true if we’re running in CI with modified LLVM (and thus can’t download it)
prebuilt_llvm_config
This returns whether we’ve already previously built LLVM.
supported_sanitizers 🔒
Returns sanitizers available on a given target.