From dcf5482cdacd166268f9672f34697dd1da05ceea Mon Sep 17 00:00:00 2001 From: Simonas Kazlauskas Date: Sat, 3 Nov 2018 11:13:10 +0200 Subject: [PATCH] Add an idealistic test for optimize attribute MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Alas it does not currently work, because of limitations in compiletest… --- src/test/codegen/optimize-attr-1.rs | 49 +++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/test/codegen/optimize-attr-1.rs diff --git a/src/test/codegen/optimize-attr-1.rs b/src/test/codegen/optimize-attr-1.rs new file mode 100644 index 00000000000..b742a361da9 --- /dev/null +++ b/src/test/codegen/optimize-attr-1.rs @@ -0,0 +1,49 @@ +// revisions: NO-OPT SIZE-OPT SPEED-OPT +// [NO-OPT]compile-flags: -Copt-level=0 +// [SIZE-OPT]compile-flags: -Copt-level=s +// [SPEED-OPT]compile-flags: -Copt-level=3 + +#![feature(optimize_attribute)] +#![crate_type="rlib"] + +// NO-OPT: Function Attrs:{{.*}}optnone +// NO-OPT-NOT: {{optsize|minsize}} +// NO-OPT-NEXT: @nothing +// NO-OPT: ret i32 %1 +// +// SIZE-OPT: Function Attrs:{{.*}}optsize +// SIZE-OPT-NOT: {{minsize|optnone}} +// SIZE-OPT-NEXT: @nothing +// SIZE-OPT-NEXT: start +// SIZE-OPT-NEXT: ret i32 4 +// +// SPEED-OPT: Function Attrs: +// SPEED-OPT-NOT: {{minsize|optnone|optsize}} +// SPEED-OPT-NEXT: @nothing +// SPEED-OPT-NEXT: start +// SPEED-OPT-NEXT: ret i32 4 +#[no_mangle] +pub fn nothing() -> i32 { + 2 + 2 +} + +// CHECK: Function Attrs:{{.*}} minsize{{.*}}optsize +// CHECK-NEXT: @size +// CHECK-NEXT: start +// CHECK-NEXT: ret i32 4 +#[optimize(size)] +#[no_mangle] +pub fn size() -> i32 { + 2 + 2 +} + +// CHECK: Function Attrs: +// CHECK-NOT: {{minsize|optsize|optnone}} +// CHECK-NEXT: @speed +// CHECK-NEXT: start +// CHECK-NEXT: ret i32 4 +#[optimize(speed)] +#[no_mangle] +pub fn speed() -> i32 { + 2 + 2 +} -- 2.44.0