about summary refs log tree commit diff
path: root/src/test/codegen/tune-cpu-on-functions.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-10-13 02:49:00 +0000
committerbors <bors@rust-lang.org>2020-10-13 02:49:00 +0000
commitf54072bb815e2bbaec40eed18c7618904a184470 (patch)
treec8ef9069de929a2e7c2fd3a93363890bf5739cc6 /src/test/codegen/tune-cpu-on-functions.rs
parentafb4514c099fde6e3102373602bea9e6dacd4f88 (diff)
parenta35a93f09cc111a53d00efc567ad678583dd5ac7 (diff)
downloadrust-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 'src/test/codegen/tune-cpu-on-functions.rs')
-rw-r--r--src/test/codegen/tune-cpu-on-functions.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/codegen/tune-cpu-on-functions.rs b/src/test/codegen/tune-cpu-on-functions.rs
new file mode 100644
index 00000000000..9121799cdbf
--- /dev/null
+++ b/src/test/codegen/tune-cpu-on-functions.rs
@@ -0,0 +1,21 @@
+// This test makes sure that functions get annotated with the proper
+// "tune-cpu" attribute in LLVM.
+
+// no-prefer-dynamic
+// ignore-tidy-linelength
+// compile-flags: -C no-prepopulate-passes -C panic=abort -C linker-plugin-lto -Cpasses=name-anon-globals -Z tune-cpu=generic
+
+#![crate_type = "staticlib"]
+
+// CHECK-LABEL: define {{.*}} @exported() {{.*}} #0
+#[no_mangle]
+pub extern fn exported() {
+    not_exported();
+}
+
+// CHECK-LABEL: ; tune_cpu_on_functions::not_exported
+// CHECK-NEXT: ; Function Attrs:
+// CHECK-NEXT: define {{.*}}() {{.*}} #0
+fn not_exported() {}
+
+// CHECK: attributes #0 = {{.*}} "tune-cpu"="{{.*}}"