111
|
1 # This checks if -fdump-noaddr dumps are done consistently.
|
|
2 proc dump_compare { src options } {
|
|
3 global srcdir subdir
|
|
4 global tmpdir
|
|
5
|
|
6 global torture_with_loops
|
|
7 set option_list $torture_with_loops
|
|
8 set dumpbase [file tail $src]
|
|
9
|
|
10 # loop through all the options
|
|
11 foreach option $option_list {
|
131
|
12 file delete -force $tmpdir/dump1
|
|
13 file mkdir $tmpdir/dump1
|
|
14 c-torture-compile $src "$option $options -dumpbase dump1/$dumpbase -DMASK=1 -x c --param ggc-min-heapsize=1 -fdump-ipa-all -fdump-rtl-all -fdump-tree-all -fdump-noaddr -gno-record-gcc-switches"
|
|
15 file delete -force $tmpdir/dump2
|
|
16 file mkdir $tmpdir/dump2
|
|
17 c-torture-compile $src "$option $options -dumpbase dump2/$dumpbase -DMASK=2 -x c -fdump-ipa-all -fdump-rtl-all -fdump-tree-all -fdump-noaddr -gno-record-gcc-switches"
|
|
18 foreach dump1 [lsort [glob -nocomplain $tmpdir/dump1/*]] {
|
|
19 set dump2 "$tmpdir/dump2/[file tail $dump1]"
|
111
|
20 set dumptail "gcc.c-torture/unsorted/[file tail $dump1]"
|
|
21 regsub {\.\d+((t|r|i)\.[^.]+)$} $dumptail {.*\1} dumptail
|
|
22 set tmp [ diff "$dump1" "$dump2" ]
|
|
23 if { $tmp == 0 } {
|
|
24 untested "$dumptail, $option comparison"
|
|
25 } elseif { $tmp == 1 } {
|
|
26 pass "$dumptail, $option comparison"
|
|
27 } else {
|
|
28 fail "$dumptail, $option comparison"
|
|
29 }
|
|
30 }
|
|
31 }
|
131
|
32 file delete -force $tmpdir/dump1
|
|
33 file delete -force $tmpdir/dump2
|
111
|
34 }
|
|
35
|
|
36 dump_compare $src $options
|
|
37 return 1
|