On Wed, 2 May 2018, Tom de Vries wrote: > On 03/29/2018 11:16 AM, Tom de Vries wrote: > > On 03/29/2018 11:11 AM, Tom de Vries wrote: > > > Hi, > > > > > > Consider an lto multi-source test-case main.c and foo.c: > > > .. > > > $ cat main.c > > > extern int foo (void); > > > > > > int > > > main () > > > { > > > return foo () + 1; > > > } > > > > > > $ cat foo.c > > > int __attribute__((noinline, noclone)) > > > foo (void) > > > { > > > return 2; > > > } > > > ... > > > > > > When compiling the test-case like this: > > > ... > > > $ gcc main.c foo.c -O2 -flto -save-temps -flto-partition=1to1 -o a.out > > > ... > > > > > > the following happens: > > > 1. main.s (containing gimple) is produced > > > (and then assembled to main.o) > > > 2. foo.s (containing gimple) is produced > > > (and then assembled to main.o) > > > 3. lto1 is called in wpa mode, generating a.out.ltrans0.o and > > > a.out.ltrans1.o > > > 4. lto1 is called in ltrans mode, generating a.out.ltrans0.s > > > (which is then assembled to a.out.ltrans0.ltrans.o) > > > 5. lto1 is called in ltrans mode, generating a.out.ltrans1.s > > > (which is then assembled to a.out.ltrans1.ltrans.o) > > > 6. a.out is produced from a.out.ltrans0.ltrans.o and > > > a.out.ltrans1.ltrans.o > > > > > > When adding dump flags "-fdump-tree-all -fdump-rtl-all -fdump-ipa-all" to > > > the command line, we get the following dump files. > > > > > > For 1, we generate (ignoring the 000i.* and statistics dumps from here > > > on): > > > - main.c.003t.original - main.c.050t.local-fnsummary2 > > > - main.c.062i.targetclone - main.c.080i.pure-const > > > > > > For 2, we generate: > > > - foo.c.003t.original - foo.c.050t.local-fnsummary2 > > > - foo.c.062i.targetclone - foo.c.080i.pure-const > > > > > > For 3, we generate: > > > - a.out.wpa.046t.profile_estimate > > > - a.out.wpa.071i.whole-program - a.out.wpa.084i.comdats > > > > > > For 4, we generate: > > > - a.out.ltrans0.046t.profile_estimate > > > - a.out.ltrans0.075i.cp - a.out.ltrans0.087i.simdclone > > > - a.out.ltrans0.088t.fixup_cfg4 - a.out.ltrans0.232t.optimized > > > - a.out.ltrans0.234r.expand - a.out.ltrans0.317r.dfinish > > > > > > For 5, we generate: > > > - a.out.ltrans1.046t.profile_estimate > > > - a.out.ltrans1.075i.cp - a.out.ltrans1.087i.simdclone > > > - a.out.ltrans1.088t.fixup_cfg4 - a.out.ltrans1.232t.optimized > > > - a.out.ltrans1.234r.expand - a.out.ltrans1.317r.dfinish > > > > > > With the current set of dg-final commands scan-tree-dump, scan-rtl-dump > > > and scan-ipa-dump, we are able to scan dump files for 1 and 2, but not for > > > 3, 4 and 5. > > > > > > > > > This patch series adds: > > > - scan-wpa-ipa-dump, which allows us to scan the ipa dump files for 3 > > > - scan-ltrans-tree-dump, which: > > > - allows us to scan the tree dump files for 4, and > > > - adds the option -flto-partition=one which forces wpa to combine > > > all functions into a single partition ltrans0 (so that we don't have > > > to worry about ltrans1 in 5). > > > > This patch adds scan-wpa-ipa-dump. > > > > Bootstrapped and reg-tested on x86_64. > > > > OK for stage4/stage1 trunk? > > > > > > +proc scan-wpa-ipa-dump-times { args } { > > + > > + if { [llength $args] < 3 } { > > + error "scan-wpa-ipa-dump: too few arguments" > > + return > > + } > > + if { [llength $args] > 4 } { > > + error "scan-wpa-ipa-dump: too many arguments" > > + return > > + } > > As Bernhard found, the error message does not match the proc name. > > Fixed in this updated patch. > > OK for trunk?
OK and thanks for working on this! Richard.