This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] Add means to split dump file into several files -- Use in lra
- From: Richard Biener <rguenther at suse dot de>
- To: Tom de Vries <Tom_deVries at mentor dot com>
- Cc: vmakarov at redhat dot com, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 8 Dec 2017 13:31:23 +0100 (CET)
- Subject: Re: [RFC] Add means to split dump file into several files -- Use in lra
- Authentication-results: sourceware.org; auth=none
- References: <530e2bd8-5f18-deaf-9188-1c5e8e5b365d@mentor.com>
On Thu, 7 Dec 2017, Tom de Vries wrote:
> Hi,
>
> I'm currently debugging a problem in lra, and got a bit lost in the 20k+ lines
> dump file.
>
> I observed that:
> - the lra dump file is one of the biggest ones
> - lra itself consists of a looping of sub-passes.
>
> So, I've:
> - written a dump infrastructure addition that can be used within a pass
> to mark the end of the current (sub)dump file and start a next
> subdump file.
> - used that infrastructure to instrument lra to dump info from
> different subpasses into separate files.
>
> Using this patch I managed to split the reload dump file into smaller bits:
> ...
> $ wc -l *.reload.*
> 3 no-scevccp-outer-10.c.276r.reload
> 0 no-scevccp-outer-10.c.276r.reload.001.lra_start
> 3 no-scevccp-outer-10.c.276r.reload.002.remove_scratches
> 2335 no-scevccp-outer-10.c.276r.reload.003.lra_constraints
> 1781 no-scevccp-outer-10.c.276r.reload.004.lra_create_live_ranges
> 460 no-scevccp-outer-10.c.276r.reload.005.lra_inheritance
> 920 no-scevccp-outer-10.c.276r.reload.006.lra_create_live_ranges
> 563 no-scevccp-outer-10.c.276r.reload.007.lra_assign
> 184 no-scevccp-outer-10.c.276r.reload.008.lra_undo_inheritance
> 830 no-scevccp-outer-10.c.276r.reload.009.lra_create_live_ranges
> 3 no-scevccp-outer-10.c.276r.reload.010.lra_coalesce
> 165 no-scevccp-outer-10.c.276r.reload.011.lra_constraints
> 844 no-scevccp-outer-10.c.276r.reload.012.lra_create_live_ranges
> 110 no-scevccp-outer-10.c.276r.reload.013.lra_inheritance
> 879 no-scevccp-outer-10.c.276r.reload.014.lra_create_live_ranges
> 22 no-scevccp-outer-10.c.276r.reload.015.lra_assign
> 74 no-scevccp-outer-10.c.276r.reload.016.lra_undo_inheritance
> 19 no-scevccp-outer-10.c.276r.reload.017.lra_constraints
> 845 no-scevccp-outer-10.c.276r.reload.018.lra_create_live_ranges
> 80 no-scevccp-outer-10.c.276r.reload.019.lra_remat
> 27 no-scevccp-outer-10.c.276r.reload.020.lra_spill
> 866 no-scevccp-outer-10.c.276r.reload.021.lra_constraints
> 830 no-scevccp-outer-10.c.276r.reload.022.lra_create_live_ranges
> 0 no-scevccp-outer-10.c.276r.reload.023.lra_inheritance
> 830 no-scevccp-outer-10.c.276r.reload.024.lra_create_live_ranges
> 53 no-scevccp-outer-10.c.276r.reload.025.lra_assign
> 5 no-scevccp-outer-10.c.276r.reload.026.lra_constraints
> 370 no-scevccp-outer-10.c.276r.reload.027.lra_finishing
> 4137 no-scevccp-outer-10.c.276r.reload.028.lra_end
> 0 no-scevccp-outer-10.c.276r.reload.029.lra_start
> 27 no-scevccp-outer-10.c.276r.reload.030.remove_scratches
> 553 no-scevccp-outer-10.c.276r.reload.031.lra_constraints
> 188 no-scevccp-outer-10.c.276r.reload.032.lra_create_live_ranges
> 8 no-scevccp-outer-10.c.276r.reload.033.lra_inheritance
> 188 no-scevccp-outer-10.c.276r.reload.034.lra_create_live_ranges
> 21 no-scevccp-outer-10.c.276r.reload.035.lra_assign
> 3 no-scevccp-outer-10.c.276r.reload.036.lra_undo_inheritance
> 5 no-scevccp-outer-10.c.276r.reload.037.lra_constraints
> 99 no-scevccp-outer-10.c.276r.reload.038.lra_finishing
> 515 no-scevccp-outer-10.c.276r.reload.039.lra_end
> ...
>
> Notes:
> - dump info from different functions is not put together
> - this is on by default atm. We probably want to enable this only
> using a switch fsplit-dump or some such.
> - the lra_end dump files ends with ";; Function ...", which should be in
> the next lra_start dump file. Once we enable this using a switch we
> can probably do better.
>
> Any comments?
Sometimes it's harder to walk through multiple files IMHO. Merging
ira and lra dumps would be nice.
;)
And you can open a file multiple times so what's exactly the benefit
of having multiple files?
Richard.