testsuite: Add scan-ltrans-rtl* for use in dg-final [PR116140]
This extends the scan-ltrans-tree* helpers to create RTL variants. This is needed to check the behaviour of an RTL pass under LTO. gcc/ChangeLog: PR libstdc++/116140 * doc/sourcebuild.texi: Document ltrans-rtl value of kind for scan-<kind>-dump*. gcc/testsuite/ChangeLog: PR libstdc++/116140 * lib/scanltranstree.exp (scan-ltrans-rtl-dump): New. (scan-ltrans-rtl-dump-not): New. (scan-ltrans-rtl-dump-dem): New. (scan-ltrans-rtl-dump-dem-not): New. (scan-ltrans-rtl-dump-times): New.
This commit is contained in:
parent
2c0b574ac6
commit
3f51f0dc88
2 changed files with 39 additions and 45 deletions
|
@ -3627,8 +3627,8 @@ stands for zero or more unmatched lines; the whitespace after
|
|||
@subsubsection Scan optimization dump files
|
||||
|
||||
These commands are available for @var{kind} of @code{tree}, @code{ltrans-tree},
|
||||
@code{offload-tree}, @code{rtl}, @code{offload-rtl}, @code{ipa},
|
||||
@code{offload-ipa}, and @code{wpa-ipa}.
|
||||
@code{offload-tree}, @code{rtl}, @code{ltrans-rtl}, @code{offload-rtl},
|
||||
@code{ipa}, @code{offload-ipa}, and @code{wpa-ipa}.
|
||||
|
||||
@table @code
|
||||
@item scan-@var{kind}-dump @var{regex} @var{suffix} [@{ target/xfail @var{selector} @}]
|
||||
|
|
|
@ -19,50 +19,44 @@
|
|||
|
||||
load_lib scandump.exp
|
||||
|
||||
# The first item in the list is an LTO equivalent of the second item
|
||||
# in the list; see the documentation of the second item for details.
|
||||
foreach { name scan type suffix } {
|
||||
scan-ltrans-tree-dump scan-dump ltrans-tree t
|
||||
scan-ltrans-tree-dump-not scan-dump-not ltrans-tree t
|
||||
scan-ltrans-tree-dump-dem scan-dump-dem ltrans-tree t
|
||||
scan-ltrans-tree-dump-dem-not scan-dump-dem-not ltrans-tree t
|
||||
} {
|
||||
eval [string map [list @NAME@ $name \
|
||||
@SCAN@ $scan \
|
||||
@TYPE@ $type \
|
||||
@SUFFIX@ $suffix] {
|
||||
proc @NAME@ { args } {
|
||||
if { [llength $args] < 2 } {
|
||||
error "@NAME@: too few arguments"
|
||||
return
|
||||
# Define scan-ltrans-{tree,rtl}-dump{,-not,-dem,-dem-not}. These are LTO
|
||||
# variants of the corresponding functions without -ltrans in the name.
|
||||
foreach ir { tree rtl } {
|
||||
foreach modifier { {} -not -dem -dem-not } {
|
||||
eval [string map [list @NAME@ scan-ltrans-$ir-dump$modifier \
|
||||
@SCAN@ scan$modifier \
|
||||
@TYPE@ ltrans-$ir \
|
||||
@SUFFIX@ [string index $ir 0]] {
|
||||
proc @NAME@ { args } {
|
||||
if { [llength $args] < 2 } {
|
||||
error "@NAME@: too few arguments"
|
||||
return
|
||||
}
|
||||
if { [llength $args] > 3 } {
|
||||
error "@NAME@: too many arguments"
|
||||
return
|
||||
}
|
||||
if { [llength $args] >= 3 } {
|
||||
@SCAN@ @TYPE@ [lindex $args 0] \
|
||||
"\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
|
||||
".ltrans0.ltrans" \
|
||||
[lindex $args 2]
|
||||
} else {
|
||||
@SCAN@ @TYPE@ [lindex $args 0] \
|
||||
"\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
|
||||
".ltrans0.ltrans"
|
||||
}
|
||||
}
|
||||
if { [llength $args] > 3 } {
|
||||
error "@NAME@: too many arguments"
|
||||
return
|
||||
}
|
||||
if { [llength $args] >= 3 } {
|
||||
@SCAN@ @TYPE@ [lindex $args 0] \
|
||||
"\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
|
||||
".ltrans0.ltrans" \
|
||||
[lindex $args 2]
|
||||
} else {
|
||||
@SCAN@ @TYPE@ [lindex $args 0] \
|
||||
"\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
|
||||
".ltrans0.ltrans"
|
||||
}
|
||||
}
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
||||
|
||||
# The first item in the list is an LTO equivalent of the second item
|
||||
# in the list; see the documentation of the second item for details.
|
||||
foreach { name scan type suffix } {
|
||||
scan-ltrans-tree-dump-times scan-dump-times ltrans-tree t
|
||||
} {
|
||||
eval [string map [list @NAME@ $name \
|
||||
@SCAN@ $scan \
|
||||
@TYPE@ $type \
|
||||
@SUFFIX@ $suffix] {
|
||||
# Define scan-ltrans-{tree,rtl}-dump-times. These are LTO variants of the
|
||||
# corresponding functions without -ltrans in the name.
|
||||
foreach ir { tree rtl } {
|
||||
eval [string map [list @NAME@ scan-ltrans-$ir-dump-times \
|
||||
@TYPE@ ltrans-$ir \
|
||||
@SUFFIX@ [string index $ir 0]] {
|
||||
proc @NAME@ { args } {
|
||||
if { [llength $args] < 3 } {
|
||||
error "@NAME@: too few arguments"
|
||||
|
@ -73,11 +67,11 @@ foreach { name scan type suffix } {
|
|||
return
|
||||
}
|
||||
if { [llength $args] >= 4 } {
|
||||
@SCAN@ "@TYPE@" [lindex $args 0] [lindex $args 1] \
|
||||
scan-dump-times "@TYPE@" [lindex $args 0] [lindex $args 1] \
|
||||
"\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 2]" \
|
||||
".ltrans0.ltrans" [lindex $args 3]
|
||||
} else {
|
||||
@SCAN@ "@TYPE@" [lindex $args 0] [lindex $args 1] \
|
||||
scan-dump-times "@TYPE@" [lindex $args 0] [lindex $args 1] \
|
||||
"\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 2]" \
|
||||
".ltrans0.ltrans"
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue