OSDN Git Service

2004-09-16 Frank Ch. Eigler <fche@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / bprob / bprob.exp
index 357ed29..90cb99a 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+#   Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # Test the functionality of programs compiled with profile-directed block
 # ordering using -fprofile-arcs followed by -fbranch-probabilities.
 
+load_lib target-supports.exp
+
+# Some targets don't have any implementation of __bb_init_func or are
+# missing other needed machinery.
+if { ![check_profiling_available "-fprofile-arcs"] } {
+    return
+}
+
 # The procedures in profopt.exp need these parameters.
 set tool g++
-set profile_option -fprofile-arcs
-set feedback_option -fbranch-probabilities
-set prof_ext da
+set prof_ext gcda
 
 if $tracelevel then {
     strace $tracelevel
@@ -44,15 +50,20 @@ if $tracelevel then {
 # Load support procs.
 load_lib profopt.exp
 
-# Clean up existing .da files.
-profopt-cleanup da
+set profile_options "-fprofile-arcs"
+set feedback_options "-fbranch-probabilities"
+if {[check_profiling_available "-ftree-based-profiling"]} {
+    lappend profile_options "-ftree-based-profiling -fprofile-arcs"
+    lappend feedback_options "-ftree-based-profiling -fbranch-probabilities"
+}
 
 # Main loop.
-foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.C]] {
-    # If we're only testing specific files and this isn't one of them, skip it.
-    if ![runtest_file_p $runtests $src] then {
-       continue
+foreach profile_option $profile_options feedback_option $feedback_options {
+    foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.C]] {
+        # If we're only testing specific files and this isn't one of them, skip it.
+        if ![runtest_file_p $runtests $src] then {
+            continue
+        }
+        profopt-execute $src
     }
-
-    profopt-execute $src
 }