[PATCH] Fix PR58626, compute proper partition dependences in loop distribution

H.J. Lu hjl.tools@gmail.com
Tue Dec 24 18:38:00 GMT 2013


On Thu, Oct 24, 2013 at 7:33 AM, Richard Biener <rguenther@suse.de> wrote:
>
> This finally computes a valid partition ordering (or if not possible
> merge partitions again) in loop distribution.  This is the only
> place where data dependences are relevant, so we delay computing them
> (and also do not compute all N^2 dependences).
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu with BOOT_CFLAGS
> -O2 -ftree-loop-distribution, BOOT_CFLAGS -O3 still running.
>
> Richard.
>
> 2013-10-24  Richard Biener  <rguenther@suse.de>
>
>         PR tree-optimization/58626
>         * tree-loop-distribution.c (enum rdg_dep_type): Remove
>         anti_dd, output_dd and input_dd.
>         (struct rdg_edge): Remove level and relation members.
>         (RDGE_LEVEL, RDGE_RELATION): Remove.
>         (dot_rdg_1): Adjust.
>         (create_rdg_edge_for_ddr): Remove.
>         (create_rdg_edges_for_scalar): Adjust.
>         (create_edge_for_control_dependence): Likewise.
>         (create_rdg_edges): Split into ...
>         (create_rdg_flow_edges): ... this
>         (create_rdg_cd_edges): ... and this.
>         (free_rdg): Adjust.
>         (build_rdg): Likewise, do not compute data dependences or
>         add edges for them.
>         (pg_add_dependence_edges): New function.
>         (pgcmp): Likewise.
>         (distribute_loop): First apply all non-dependence based
>         partition mergings.  Then compute dependences between partitions
>         and merge and order partitions according to them.
>

This caused:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59594

-- 
H.J.



More information about the Gcc-patches mailing list