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.
This commit is contained in:
Thomas Schwinge 2021-05-18 17:30:34 +02:00
parent 5a0fe1f6c4
commit d42c10563e
3 changed files with 29 additions and 0 deletions

View File

@ -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}

View File

@ -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__ } } } */

View File

@ -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]]
}