aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2016-07-14 02:14:13 +0000
committerAndi Kleen <ak@gcc.gnu.org>2016-07-14 02:14:13 +0000
commite97bd4f5408964f3bd16b57e0369916683d5e8cd (patch)
tree641627df63d991ebe5124bea1f56d0947e7c59c2 /gcc
parent038ec4b7b90f6278e686d61634cb046cd09d3b8f (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/lib/profopt.exp43
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]