aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2021-05-18 17:30:34 +0200
committerThomas Schwinge <thomas@codesourcery.com>2021-05-21 20:09:16 +0200
commitd42c10563e23d846b61c9c4a4abe75da70f7838d (patch)
treeb1f88a2b983355b32bd25eca917f1ae10f2b56ac
parent5a0fe1f6c4ad0e50bf4684e723ae2ba17d94c9e4 (diff)
downloadgcc-d42c10563e23d846b61c9c4a4abe75da70f7838d.zip
gcc-d42c10563e23d846b61c9c4a4abe75da70f7838d.tar.gz
gcc-d42c10563e23d846b61c9c4a4abe75da70f7838d.tar.bz2
Add '__OPTIMIZE__' DejaGnu selector
gcc/testsuite/ * lib/target-supports.exp (check_effective_target___OPTIMIZE__): New proc. * gcc.c-torture/compile/ssa-unused-1.c: New file. gcc/ * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__' DejaGnu selector.
-rw-r--r--gcc/doc/sourcebuild.texi4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/ssa-unused-1.c15
-rw-r--r--gcc/testsuite/lib/target-supports.exp10
3 files changed, 29 insertions, 0 deletions
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index ed811d1..cf309874 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2755,6 +2755,10 @@ constant.
@item lgccjit
Target supports -lgccjit, i.e. libgccjit.so can be linked into jit tests.
+
+@item __OPTIMIZE__
+Optimizations are enabled (@code{__OPTIMIZE__}) per the current
+compiler flags.
@end table
@subsubsection Local to tests in @code{gcc.target/i386}
diff --git a/gcc/testsuite/gcc.c-torture/compile/ssa-unused-1.c b/gcc/testsuite/gcc.c-torture/compile/ssa-unused-1.c
new file mode 100644
index 0000000..e8fb93c7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/ssa-unused-1.c
@@ -0,0 +1,15 @@
+/* This is just to exercise the '__OPTIMIZE__' DejaGnu selector. */
+
+/* { dg-do "assemble" } */
+/* { dg-additional-options "-fdump-tree-ssa" } */
+
+void f()
+{
+ int unused = 3;
+ (void) &unused;
+}
+
+/* { dg-final { scan-tree-dump-not {No longer having address taken: unused} ssa { target { ! __OPTIMIZE__ } } } }
+ { dg-final { scan-tree-dump-times {No longer having address taken: unused} 1 ssa { target __OPTIMIZE__ } } } */
+/* { dg-final { scan-tree-dump-not {Now a gimple register: unused} ssa { target { ! __OPTIMIZE__ } } } }
+ { dg-final { scan-tree-dump-times {Now a gimple register: unused} 1 ssa { target __OPTIMIZE__ } } } */
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 8192da5..849f1bb 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -11103,3 +11103,13 @@ proc check_effective_target_lra { } {
return 1
}
+# Test whether optimizations are enabled ('__OPTIMIZE__') per the
+# 'current_compiler_flags' (thus don't cache).
+
+proc check_effective_target___OPTIMIZE__ {} {
+ return [check_no_compiler_messages_nocache __OPTIMIZE__ assembly {
+ #ifndef __OPTIMIZE__
+ # error nein
+ #endif
+ } [current_compiler_flags]]
+}