From d42c10563e23d846b61c9c4a4abe75da70f7838d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 18 May 2021 17:30:34 +0200 Subject: [PATCH] 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. --- gcc/doc/sourcebuild.texi | 4 ++++ .../gcc.c-torture/compile/ssa-unused-1.c | 15 +++++++++++++++ gcc/testsuite/lib/target-supports.exp | 10 ++++++++++ 3 files changed, 29 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/ssa-unused-1.c diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index ed811d103a5..cf3098749c0 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 00000000000..e8fb93c74c2 --- /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 8192da5ec9f..849f1bbeda5 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]] +}