diff options
author | Andi Kleen <ak@linux.intel.com> | 2016-07-14 02:14:13 +0000 |
---|---|---|
committer | Andi Kleen <ak@gcc.gnu.org> | 2016-07-14 02:14:13 +0000 |
commit | e97bd4f5408964f3bd16b57e0369916683d5e8cd (patch) | |
tree | 641627df63d991ebe5124bea1f56d0947e7c59c2 /gcc | |
parent | 038ec4b7b90f6278e686d61634cb046cd09d3b8f (diff) | |
download | gcc-e97bd4f5408964f3bd16b57e0369916683d5e8cd.zip gcc-e97bd4f5408964f3bd16b57e0369916683d5e8cd.tar.gz gcc-e97bd4f5408964f3bd16b57e0369916683d5e8cd.tar.bz2 |
Add dg-final-scan-autofdo and dg-final-scan-not-autofdo
Autofdo outputs to different dump files and doesn't support some
transformation that normal profiling. Add dg-final-scan-autofdo
and dg-final-scan-not-autofdo statements to the test suite
so that the test cases can hande those cases separately.
gcc/testsuite/:
2016-07-13 Andi Kleen <ak@linux.intel.com>
* lib/profopt.exp (dg-final-scan-autofdo,
dg-final-scan-not-autofdo): New functions.
From-SVN: r238322
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/lib/profopt.exp | 43 |
2 files changed, 48 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f868af3..8714756 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-07-13 Andi Kleen <ak@linux.intel.com> + + * lib/profopt.exp (dg-final-scan-autofdo, + dg-final-scan-not-autofdo): New functions. + 2016-07-13 Bin Cheng <bin.cheng@arm.com> * gcc.dg/vect/vect-35-big-array.c: Refine comment and test. diff --git a/gcc/testsuite/lib/profopt.exp b/gcc/testsuite/lib/profopt.exp index b3e2b2e..3cce2ee 100644 --- a/gcc/testsuite/lib/profopt.exp +++ b/gcc/testsuite/lib/profopt.exp @@ -171,6 +171,47 @@ proc dg-final-use { args } { } # +# dg-final-use-not-autofdo -- process code to run after the profile-use step +# but only if not running autofdo +# ARGS is the line number of the directive followed by the commands. +# +proc dg-final-use-not-autofdo { args } { + global use_final_code + global run_autofdo + + if { [llength $args] > 2 } { + error "[lindex $args 0]: too many arguments" + return + } + + if { $run_autofdo == 1 } { + return + } + append use_final_code "[lindex $args 1]\n" +} + +# +# dg-final-use-autofdo -- process code to run after the profile-use step +# but only if running autofdo +# ARGS is the line number of the directive followed by the commands. +# + +proc dg-final-use-autofdo { args } { + global use_final_code + global run_autofdo + + if { [llength $args] > 2 } { + error "[lindex $args 0]: too many arguments" + return + } + + if { $run_autofdo != 1 } { + return + } + append use_final_code "[lindex $args 1]\n" +} + +# # profopt-final-code -- run final code # # WHICH is "generate" or "use". @@ -210,6 +251,8 @@ proc profopt-get-options { src } { || ![string compare "dg-skip-if" $cmd] \ || ![string compare "dg-final-generate" $cmd] \ || ![string compare "dg-final-use" $cmd] \ + || ![string compare "dg-final-use-not-autofdo" $cmd] \ + || ![string compare "dg-final-use-autofdo" $cmd] \ || ![string compare "dg-additional-sources" $cmd] \ || [string match "dg-require-*" $cmd] } { set status [catch "$op" errmsg] |