diff options
| author | bors <bors@rust-lang.org> | 2020-10-13 02:49:00 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-10-13 02:49:00 +0000 |
| commit | f54072bb815e2bbaec40eed18c7618904a184470 (patch) | |
| tree | c8ef9069de929a2e7c2fd3a93363890bf5739cc6 /compiler/rustc_codegen_llvm/src/llvm_util.rs | |
| parent | afb4514c099fde6e3102373602bea9e6dacd4f88 (diff) | |
| parent | a35a93f09cc111a53d00efc567ad678583dd5ac7 (diff) | |
| download | rust-f54072bb815e2bbaec40eed18c7618904a184470.tar.gz rust-f54072bb815e2bbaec40eed18c7618904a184470.zip | |
Auto merge of #76830 - Artoria2e5:tune, r=nagisa
Pass tune-cpu to LLVM I think this is how it should work... See https://internals.rust-lang.org/t/expose-tune-cpu-from-llvm/13088 for the background. Or the documentation diff.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm_util.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/llvm_util.rs | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs index d42020047fd..a4605f46309 100644 --- a/compiler/rustc_codegen_llvm/src/llvm_util.rs +++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs @@ -202,11 +202,7 @@ pub(crate) fn print(req: PrintRequest, sess: &Session) { } } -pub fn target_cpu(sess: &Session) -> &str { - let name = match sess.opts.cg.target_cpu { - Some(ref s) => &**s, - None => &*sess.target.target.options.cpu, - }; +fn handle_native(name: &str) -> &str { if name != "native" { return name; } @@ -217,3 +213,19 @@ pub fn target_cpu(sess: &Session) -> &str { str::from_utf8(slice::from_raw_parts(ptr as *const u8, len)).unwrap() } } + +pub fn target_cpu(sess: &Session) -> &str { + let name = match sess.opts.cg.target_cpu { + Some(ref s) => &**s, + None => &*sess.target.target.options.cpu, + }; + + handle_native(name) +} + +pub fn tune_cpu(sess: &Session) -> Option<&str> { + match sess.opts.debugging_opts.tune_cpu { + Some(ref s) => Some(handle_native(&**s)), + None => None, + } +} |
