summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMuhammad Mominul Huque <mominul2082@gmail.com>2021-04-23 17:04:45 +0600
committerMuhammad Mominul Huque <mominul2082@gmail.com>2021-04-23 17:04:45 +0600
commite16ccba3945e06a9e687dd13de9053d981cc4fad (patch)
tree72a11a36015b4f777a0550a42c83fa63c5c2c939
parentcdc0aa188e72ee100bd61943cf7c81ac28be9a81 (diff)
downloadrust-e16ccba3945e06a9e687dd13de9053d981cc4fad.tar.gz
Support -Ctarget-cpu
-rw-r--r--src/lib.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 5a75b9be0cb..02518cc0b19 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -273,9 +273,14 @@ fn build_isa(sess: &Session, backend_config: &BackendConfig) -> Box<dyn isa::Tar
let variant = cranelift_codegen::isa::BackendVariant::MachInst;
let mut isa_builder = cranelift_codegen::isa::lookup_variant(target_triple, variant).unwrap();
- // Don't use "haswell", as it implies `has_lzcnt`.macOS CI is still at Ivy Bridge EP, so `lzcnt`
- // is interpreted as `bsr`.
- isa_builder.enable("nehalem").unwrap();
+
+ if let Some(target_cpu) = sess.opts.cg.target_cpu.as_ref() {
+ isa_builder.enable(target_cpu).unwrap();
+ } else {
+ // Don't use "haswell" as the default, as it implies `has_lzcnt`.
+ // macOS CI is still at Ivy Bridge EP, so `lzcnt` is interpreted as `bsr`.
+ isa_builder.enable("nehalem").unwrap();
+ }
isa_builder.finish(flags)
}