# This checks if -fdump-noaddr dumps are done consistently.
|
# This checks if -fdump-noaddr dumps are done consistently.
|
proc dump_compare { src options } {
|
proc dump_compare { src options } {
|
global srcdir subdir
|
global srcdir subdir
|
global tmpdir
|
global tmpdir
|
|
|
global torture_with_loops
|
global torture_with_loops
|
set option_list $torture_with_loops
|
set option_list $torture_with_loops
|
set dumpbase [file tail $src]
|
set dumpbase [file tail $src]
|
|
|
# loop through all the options
|
# loop through all the options
|
foreach option $option_list {
|
foreach option $option_list {
|
file delete -force dump1
|
file delete -force dump1
|
file mkdir dump1
|
file mkdir dump1
|
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"
|
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"
|
file delete -force dump2
|
file delete -force dump2
|
file mkdir dump2
|
file mkdir dump2
|
c-torture-compile $src "$option $options -dumpbase dump2/$dumpbase -DMASK=2 -x c -fdump-ipa-all -fdump-rtl-all -fdump-tree-all -fdump-noaddr"
|
c-torture-compile $src "$option $options -dumpbase dump2/$dumpbase -DMASK=2 -x c -fdump-ipa-all -fdump-rtl-all -fdump-tree-all -fdump-noaddr"
|
foreach dump1 [lsort [glob -nocomplain dump1/*]] {
|
foreach dump1 [lsort [glob -nocomplain dump1/*]] {
|
regsub dump1/ $dump1 dump2/ dump2
|
regsub dump1/ $dump1 dump2/ dump2
|
set dumptail "gcc.c-torture/unsorted/[file tail $dump1]"
|
set dumptail "gcc.c-torture/unsorted/[file tail $dump1]"
|
#puts "$option $dump1"
|
#puts "$option $dump1"
|
set tmp [ diff "$dump1" "$dump2" ]
|
set tmp [ diff "$dump1" "$dump2" ]
|
if { $tmp == 0 } {
|
if { $tmp == 0 } {
|
untested "$dumptail, $option comparison"
|
untested "$dumptail, $option comparison"
|
} elseif { $tmp == 1 } {
|
} elseif { $tmp == 1 } {
|
pass "$dumptail, $option comparison"
|
pass "$dumptail, $option comparison"
|
} else {
|
} else {
|
fail "$dumptail, $option comparison"
|
fail "$dumptail, $option comparison"
|
}
|
}
|
#exec diff $dump1 $dump2
|
#exec diff $dump1 $dump2
|
}
|
}
|
}
|
}
|
file delete -force dump1
|
file delete -force dump1
|
file delete -force dump2
|
file delete -force dump2
|
}
|
}
|
|
|
catch {dump_compare $src $options} result
|
catch {dump_compare $src $options} result
|
puts $result
|
puts $result
|
verbose result
|
verbose result
|
return 1
|
return 1
|
|
|