diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8fec8b268f9..a8416dce099 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2012-06-25 Janis Johnson + + * lib/profopt.exp: Make prof_option_list local to profopt-execute. + * g++.dg/tree-prof/tree-prof.exp (PROFOPT_OPTIONS): Define after + including profopt.opt; save and restore existing value. + * g++.dg/bprob/bprob.exp: Likewise. + * gcc.dg/matrix/matrix.exp: Likewise. + * gcc.dg/tree-prof/tree-prof.exp: Likewise. + * gcc.misc-tests/bprob.exp: Likewise; also replace formerly-ignored + PROFOPT_OPTIONS. + 2012-06-25 Richard Henderson * gcc.dg/pr53749.c: New. diff --git a/gcc/testsuite/g++.dg/bprob/bprob.exp b/gcc/testsuite/g++.dg/bprob/bprob.exp index 3f75a2e647d..bb0d4643ac9 100644 --- a/gcc/testsuite/g++.dg/bprob/bprob.exp +++ b/gcc/testsuite/g++.dg/bprob/bprob.exp @@ -33,7 +33,11 @@ if $tracelevel then { strace $tracelevel } -# Override the list defined in profopt.exp. +# Load support procs. +load_lib profopt.exp + +# Save and override the default list defined in profopt.exp. +set bprob_save_profopt_options $PROFOPT_OPTIONS set PROFOPT_OPTIONS [list \ { -g } \ { -O0 } \ @@ -47,9 +51,6 @@ if $tracelevel then { strace $tracelevel } -# Load support procs. -load_lib profopt.exp - set profile_options "-fprofile-arcs" set feedback_options "-fbranch-probabilities" @@ -63,3 +64,5 @@ foreach profile_option $profile_options feedback_option $feedback_options { profopt-execute $src } } + +set PROFOPT_OPTIONS $bprob_save_profopt_options diff --git a/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp b/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp index 0f69a16c902..b4aa22dc465 100644 --- a/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp +++ b/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp @@ -29,9 +29,6 @@ if { ![check_profiling_available "-fprofile-generate"] } { set tool g++ set prof_ext "gcda" -# Override the list defined in profopt.exp. -set PROFOPT_OPTIONS [list {}] - if $tracelevel then { strace $tracelevel } @@ -39,6 +36,10 @@ if $tracelevel then { # Load support procs. load_lib profopt.exp +# Save and override the default list defined in profopt.exp. +set treeprof_save_profopt_options $PROFOPT_OPTIONS +set PROFOPT_OPTIONS [list {}] + # These are globals used by profopt-execute. The first is options # needed to generate profile data, the second is options to use the # profile data. @@ -52,3 +53,5 @@ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.C]] { } profopt-execute $src } + +set PROFOPT_OPTIONS $treeprof_save_profopt_options diff --git a/gcc/testsuite/gcc.dg/matrix/matrix.exp b/gcc/testsuite/gcc.dg/matrix/matrix.exp index c1bf2713acc..d2e13449ba4 100644 --- a/gcc/testsuite/gcc.dg/matrix/matrix.exp +++ b/gcc/testsuite/gcc.dg/matrix/matrix.exp @@ -39,9 +39,6 @@ if { ![check_profiling_available "-fprofile-generate"] } { set tool gcc set prof_ext "gcda" -# Override the list defined in profopt.exp. -set PROFOPT_OPTIONS [list {}] - if $tracelevel then { strace $tracelevel } @@ -49,6 +46,10 @@ if $tracelevel then { # Load support procs. load_lib profopt.exp +# Save and override the default list defined in profopt.exp. +set matrix_save_profopt_options $PROFOPT_OPTIONS +set PROFOPT_OPTIONS [list {}] + # These are globals used by profopt-execute. The first is options # needed to generate profile data, the second is options to use the # profile data. @@ -63,3 +64,4 @@ foreach src [lsort [glob -nocomplain $srcdir/$subdir/transpose-*.c]] { profopt-execute $src } +set PROFOPT_OPTIONS $matrix_save_profopt_options diff --git a/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp b/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp index 2d054d23366..e3c5e3d0486 100644 --- a/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp +++ b/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp @@ -29,9 +29,6 @@ if { ![check_profiling_available "-fprofile-generate"] } { set tool gcc set prof_ext "gcda" -# Override the list defined in profopt.exp. -set PROFOPT_OPTIONS [list {}] - if $tracelevel then { strace $tracelevel } @@ -39,6 +36,10 @@ if $tracelevel then { # Load support procs. load_lib profopt.exp +# Save and override the default list defined in profopt.exp. +set treeprof_save_profopt_options $PROFOPT_OPTIONS +set PROFOPT_OPTIONS [list {}] + # These are globals used by profopt-execute. The first is options # needed to generate profile data, the second is options to use the # profile data. @@ -52,3 +53,5 @@ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] { } profopt-execute $src } + +set PROFOPT_OPTIONS $treeprof_save_profopt_options diff --git a/gcc/testsuite/gcc.misc-tests/bprob.exp b/gcc/testsuite/gcc.misc-tests/bprob.exp index e579b36bed0..6f520ec729c 100644 --- a/gcc/testsuite/gcc.misc-tests/bprob.exp +++ b/gcc/testsuite/gcc.misc-tests/bprob.exp @@ -30,16 +30,6 @@ set tool gcc set prof_ext "gcda" set perf_ext tim -# Override the list defined in profopt.exp. -set PROFOPT_OPTIONS [list \ - { -g } \ - { -O0 } \ - { -O1 } \ - { -O2 -DPERFTIME } \ - { -O3 -DPERFTIME } \ - { -O3 -g -DPERFTIME } \ - { -Os } ] - if $tracelevel then { strace $tracelevel } @@ -47,6 +37,10 @@ if $tracelevel then { # Load support procs. load_lib profopt.exp +# Save and override the default list defined in profopt.exp. +set bprob_save_profopt_options $PROFOPT_OPTIONS +set PROFOPT_OPTIONS [list { -O2 } { -O3 }] + set profile_options "-fprofile-arcs" set feedback_options "-fbranch-probabilities" @@ -59,3 +53,5 @@ foreach profile_option $profile_options feedback_option $feedback_options { profopt-execute $src } } + +set PROFOPT_OPTIONS $bprob_save_profopt_options diff --git a/gcc/testsuite/lib/profopt.exp b/gcc/testsuite/lib/profopt.exp index 5e0f9a28ee1..f0dbee720e5 100644 --- a/gcc/testsuite/lib/profopt.exp +++ b/gcc/testsuite/lib/profopt.exp @@ -64,8 +64,6 @@ if ![info exists PROFOPT_OPTIONS] { { -Os } ] } -set prof_option_list $PROFOPT_OPTIONS - # # profopt-cleanup -- remove profiling or performance results files. # @@ -215,7 +213,7 @@ proc profopt-get-options { src } { # proc profopt-execute { src } { global srcdir tmpdir - global prof_option_list + global PROFOPT_OPTIONS global tool profile_option feedback_option prof_ext perf_ext perf_delta global generate_final_code use_final_code global verbose @@ -227,6 +225,12 @@ proc profopt-execute { src } { error "No feedback option specified for second compile." } + # Use the default option list or one defined for a set of tests. + if ![info exists PROFOPT_OPTIONS] { + error "PROFOPT_OPTIONS is not defined" + } + set prof_option_list $PROFOPT_OPTIONS + regsub "(?q)$srcdir/" $src "" testcase # If we couldn't rip $srcdir out of `src' then just do the best we can. # The point is to reduce the unnecessary noise in the logs. Don't strip