Cargo Features
llvm-ir has no features set by default.
[dependencies]
llvm-ir = { version = "0.11.1", features = ["llvm-9", "llvm-10", "llvm-11", "llvm-12", "llvm-13", "llvm-14", "llvm-15", "llvm-16", "llvm-17", "llvm-18", "llvm-9-or-greater", "llvm-10-or-greater", "llvm-11-or-greater", "llvm-12-or-greater", "llvm-13-or-greater", "llvm-14-or-greater", "llvm-15-or-greater", "llvm-16-or-greater", "llvm-17-or-greater", "llvm-18-or-greater", "llvm-9-or-lower", "llvm-10-or-lower", "llvm-11-or-lower", "llvm-12-or-lower", "llvm-13-or-lower", "llvm-14-or-lower", "llvm-15-or-lower", "llvm-16-or-lower", "llvm-17-or-lower", "llvm-18-or-lower", "strict-versioning", "prefer-dynamic"] }
- llvm-9 = llvm-9-or-greater, llvm-9-or-lower, llvm-sys-90
-
Select the LLVM version to be compatible with.
You _must_ enable exactly one of the following features. - llvm-10 = llvm-10-or-greater, llvm-10-or-lower, llvm-sys-100
- llvm-11 = llvm-11-or-greater, llvm-11-or-lower, llvm-sys-110
- llvm-12 = llvm-12-or-greater, llvm-12-or-lower, llvm-sys-120
- llvm-13 = llvm-13-or-greater, llvm-13-or-lower, llvm-sys-130
- llvm-14 = llvm-14-or-greater, llvm-14-or-lower, llvm-sys-140
- llvm-15 = llvm-15-or-greater, llvm-15-or-lower, llvm-sys-150
- llvm-16 = llvm-16-or-greater, llvm-16-or-lower, llvm-sys-160
- llvm-17 = llvm-17-or-greater, llvm-17-or-lower, llvm-sys-170
- llvm-18 = llvm-18-or-greater, llvm-18-or-lower, llvm-sys-181
- llvm-9-or-greater llvm-10-or-greater? llvm-9?
-
For convenience, these automatically-enabled features allow us to avoid checking complex combinations of features all the time. They are not meant to be manually enabled; use the above llvm-x features instead
- llvm-10-or-greater llvm-10? llvm-11-or-greater? = llvm-9-or-greater
-
Affects
instruction::CmpXchg.weak
,instruction::AtomicRMW.operation
,instruction::Freeze
… - llvm-11-or-greater llvm-11? llvm-12-or-greater? = llvm-10-or-greater
- llvm-12-or-greater llvm-12? llvm-13-or-greater? = llvm-11-or-greater
- llvm-13-or-greater llvm-13? llvm-14-or-greater? = llvm-12-or-greater
- llvm-14-or-greater llvm-14? llvm-15-or-greater? = llvm-13-or-greater
-
Affects
instruction::GetElementPtr.source_element_type
… - llvm-15-or-greater llvm-15? llvm-16-or-greater? = llvm-14-or-greater
-
Affects
instruction::Load.loaded_ty
,instruction::Call.function_ty
,terminator::Invoke.function_ty
… - llvm-16-or-greater llvm-16? llvm-17-or-greater? = llvm-15-or-greater
- llvm-17-or-greater llvm-17? llvm-18-or-greater? = llvm-16-or-greater
-
Affects
instruction::Add.nuw
,instruction::Add.nsw
,instruction::Sub.nuw
,instruction::Sub.nsw
,instruction::Mul.nuw
,instruction::Mul.nsw
,instruction::UDiv.exact
,instruction::SDiv.exact
,instruction::Shl.nuw
,instruction::Shl.nsw
,instruction::LShr.exact
,instruction::AShr.exact
… - llvm-18-or-greater llvm-18? = llvm-17-or-greater
- llvm-9-or-lower llvm-9? = llvm-10-or-lower
- llvm-10-or-lower llvm-10? llvm-9-or-lower? = llvm-11-or-lower
- llvm-11-or-lower llvm-10-or-lower? llvm-11? = llvm-12-or-lower
- llvm-12-or-lower llvm-11-or-lower? llvm-12? = llvm-13-or-lower
- llvm-13-or-lower llvm-12-or-lower? llvm-13? = llvm-14-or-lower
- llvm-14-or-lower llvm-13-or-lower? llvm-14? = llvm-15-or-lower
-
Affects
constant::UDiv
,constant::SDiv
,constant::URem
,constant::SRem
,constant::FAdd
,constant::FSub
,constant::FMul
,constant::FDiv
,constant::FRem
,constant::ExtractValue
,constant::InsertValue
… - llvm-15-or-lower llvm-14-or-lower? llvm-15? = llvm-16-or-lower
- llvm-16-or-lower llvm-15-or-lower? llvm-16? = llvm-17-or-lower
-
Affects
constant::Select
… - llvm-17-or-lower llvm-16-or-lower? llvm-17? = llvm-18-or-lower
-
Affects
constant::And
,constant::Or
,constant::LShr
,constant::AShr
,constant::ZExt
,constant::SExt
,constant::FPTrunc
,constant::FPExt
,constant::FPToUI
,constant::FPToSI
,constant::UIToFP
,constant::SIToFP
… - llvm-18-or-lower llvm-17-or-lower? llvm-18?
- strict-versioning
-
The
strict-versioning
feature requires an exact match between the system LLVM version and the version selected with the above features.The
?
in the below ensures that we only enable the feature if the dependency is already present. This avoids activating all the optional dependencies whenstrict-versioning
is activated.Enables strict-versioning of optional llvm-sys ^100.2.0, optional llvm-sys ^110.0.0, optional llvm-sys ^120.2.0, optional llvm-sys ^130.0.0, optional llvm-sys ^140.0.0, optional llvm-sys ^150.1.0, optional llvm-sys ^160.1.2, optional llvm-sys ^170.0.1, optional llvm-sys ^181.0.0, and optional llvm-sys ^90.2.0
- prefer-dynamic
-
The
prefer-dynamic
feature is only available on llvm-sys versions >= 120.Enables prefer-dynamic of optional llvm-sys ^120.2.0, optional llvm-sys ^130.0.0, optional llvm-sys ^140.0.0, optional llvm-sys ^150.1.0, optional llvm-sys ^160.1.2, optional llvm-sys ^170.0.1, and optional llvm-sys ^181.0.0
Features from optional dependencies
In crates that don't use the dep:
syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.
- llvm-sys-90 llvm-9?
-
Enables llvm-sys ^90.2.0
- llvm-sys-100 llvm-10?
-
Enables llvm-sys ^100.2.0
- llvm-sys-110 llvm-11?
-
Enables llvm-sys ^110.0.0
- llvm-sys-120 llvm-12?
-
Enables llvm-sys ^120.2.0
- llvm-sys-130 llvm-13?
-
Enables llvm-sys ^130.0.0
- llvm-sys-140 llvm-14?
-
Enables llvm-sys ^140.0.0
- llvm-sys-150 llvm-15?
-
Enables llvm-sys ^150.1.0
- llvm-sys-160 llvm-16?
-
Enables llvm-sys ^160.1.2
- llvm-sys-170 llvm-17?
-
Enables llvm-sys ^170.0.1
- llvm-sys-181 llvm-18?
-
Enables llvm-sys ^181.0.0