From e97bd4f5408964f3bd16b57e0369916683d5e8cd Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Thu, 14 Jul 2016 02:14:13 +0000 Subject: [PATCH] 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 * lib/profopt.exp (dg-final-scan-autofdo, dg-final-scan-not-autofdo): New functions. From-SVN: r238322 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/lib/profopt.exp | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) 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 + + * lib/profopt.exp (dg-final-scan-autofdo, + dg-final-scan-not-autofdo): New functions. + 2016-07-13 Bin Cheng * 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] -- 2.7.4