]>
Commit | Line | Data |
---|---|---|
f1717362 | 1 | # Copyright (C) 2001-2016 Free Software Foundation, Inc. |
71f90aa4 | 2 | |
3 | # This program is free software; you can redistribute it and/or modify | |
4 | # it under the terms of the GNU General Public License as published by | |
f63ff66b | 5 | # the Free Software Foundation; either version 3 of the License, or |
71f90aa4 | 6 | # (at your option) any later version. |
7 | # | |
8 | # This program is distributed in the hope that it will be useful, | |
9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | # GNU General Public License for more details. | |
12 | # | |
13 | # You should have received a copy of the GNU General Public License | |
f63ff66b | 14 | # along with GCC; see the file COPYING3. If not see |
15 | # <http://www.gnu.org/licenses/>. | |
71f90aa4 | 16 | # |
17 | # Test the functionality of programs compiled with profile-directed block | |
18 | # ordering using -fprofile-arcs followed by -fbranch-probabilities. | |
19 | ||
9a82df26 | 20 | load_lib target-supports.exp |
21 | ||
df40bb17 | 22 | # Some targets don't have any implementation of __bb_init_func or are |
23 | # missing other needed machinery. | |
9bd65cc1 | 24 | if { ![check_profiling_available "-fprofile-arcs"] } { |
df40bb17 | 25 | return |
26 | } | |
27 | ||
71f90aa4 | 28 | # The procedures in profopt.exp need these parameters. |
29 | set tool g++ | |
3e3a0e9c | 30 | set prof_ext "gcda" |
71f90aa4 | 31 | |
32 | if $tracelevel then { | |
33 | strace $tracelevel | |
34 | } | |
35 | ||
5d1859c8 | 36 | # Load support procs. |
37 | load_lib profopt.exp | |
38 | ||
39 | # Save and override the default list defined in profopt.exp. | |
40 | set bprob_save_profopt_options $PROFOPT_OPTIONS | |
71f90aa4 | 41 | set PROFOPT_OPTIONS [list \ |
42 | { -g } \ | |
43 | { -O0 } \ | |
44 | { -O1 } \ | |
45 | { -O2 } \ | |
46 | { -O3 } \ | |
47 | { -O3 -g } \ | |
48 | { -Os } ] | |
49 | ||
50 | if $tracelevel then { | |
51 | strace $tracelevel | |
52 | } | |
53 | ||
6ab3444b | 54 | set profile_options "-fprofile-arcs" |
a30bbccf | 55 | set feedback_options "-fbranch-probabilities" |
6ab3444b | 56 | |
71f90aa4 | 57 | # Main loop. |
6ab3444b | 58 | foreach profile_option $profile_options feedback_option $feedback_options { |
59 | foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.C]] { | |
60 | # If we're only testing specific files and this isn't one of them, skip it. | |
61 | if ![runtest_file_p $runtests $src] then { | |
62 | continue | |
63 | } | |
64 | profopt-execute $src | |
71f90aa4 | 65 | } |
71f90aa4 | 66 | } |
5d1859c8 | 67 | |
68 | set PROFOPT_OPTIONS $bprob_save_profopt_options |