[dataflow]:PATCH COMMITTED to speed up compilation of functions with many small loops.
Kenneth Zadeck
zadeck@naturalbridge.com
Mon Apr 16 22:59:00 GMT 2007
from stevenb
> >
> >Timings of compilation time of fma1.f90 at -O2:
> >Dataflow branch without patch: ~72.5s
> >Dataflow branch after applying patch: ~49.5s
> >
> >That's a 32% compile time improvement!
> >
> >For reference, trunk as of r123653: ~43.5
> >
> >So the dataflow branch is still slower, but not nearly as much as
> >before: 67% before, 14% after.
>
This removes a issue where the entire function was being examined to
build the table of defs for a subset (an inner loop) of the program.
I bootstrapped and regression tested this on x86-32, x86-64, ia-64 and ppc.
kenny
2007-04-15 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-scan.c (df_ref_create, df_reg_chain_unlink,
df_install_refs): Use df->analyze_subset.
(df_reorganize_refs_by_reg_by_reg, df_reorganize_refs_by_reg_by_insn):
New functions.
(df_reorganize_refs_by_reg): Split into
df_reorganize_refs_by_reg_by_reg,
df_reorganize_refs_by_reg_by_insn.
(df_add_refs_to_table): Do not add hardware_regs if not asked for.
(df_reorganize_refs_by_insn): Move call to count_refs.
(df_maybe_reorganize_def_refs, df_maybe_reorganize_use_refs):
Remove code to modify df->total_size.
* df-core.c (df_set_blocks): Set df->analyze_subset.
(df_finish_pass): Clear df->analyze->subset.
(df_analyze): Use df->analyze_subset.
(df_dump_start): Remove total_size from dump.
* df.h (DF_RI_NO_UPDATE, DF_DEFS_TOTAL_SIZE, DF_USES_TOTAL_SIZE):
Removed.
(df.analyze_subset): New field. * df-problems.c (df_ri_alloc,
df_ri_compute): Removed DF_RI_NO_UPDATE.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: reg-reorg.diff
Type: text/x-patch
Size: 21943 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070416/5364698b/attachment.bin>
More information about the Gcc-patches
mailing list