This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, For now distribution pass only handles the innermost loop. This patch extends the pass to cover two-level innermost loop nest. It also refactors code in pass_loop_distribution::execute for better reading. Note I restrict it to 2-level loop nest on purpose because of high cost in data dependence computation. Some compilation time optimizations like reusing the data reference finding, data dependence computing, would require a rewrite of this pass like the proposed loop interchange implementation. But that's another task. This patch introduces a temporary TODO for loop nest builtin partition which is covered by next two patches. With this patch, kernel loop in bwaves now can be distributed, thus exposed for further interchange. This patch adds new test for matrix multiplication, as well as adjusts test strings of existing tests. Bootstrap and test in patch set on x86_64 and AArch64, is it OK? Thanks, bin 2017-10-04 Bin Cheng <bin.cheng@arm.com> * tree-loop-distribution.c: Adjust the general comment. (NUM_PARTITION_THRESHOLD): New macro. (ssa_name_has_uses_outside_loop_p): Support loop nest distribution. (classify_partition): Skip builtin pattern of loop nest's inner loop. (merge_dep_scc_partitions): New parameter ignore_alias_p and use it in call to build_partition_graph. (finalize_partitions): New parameter. Make loop distribution more conservative by fusing more partitions. (distribute_loop): Don't do runtime alias check in case of loop nest distribution. (find_seed_stmts_for_distribution): New function. (pass_loop_distribution::execute): Refactor code finding seed stmts into above function. Support loop nest distribution for two-level innermost loop nest. Adjust dump information. gcc/testsuite/ChangeLog 2017-10-04 Bin Cheng <bin.cheng@arm.com> * gcc.dg/tree-ssa/ldist-7.c: Adjust test string. * gcc.dg/tree-ssa/ldist-16.c: Ditto. * gcc.dg/tree-ssa/ldist-25.c: Ditto. * gcc.dg/tree-ssa/ldist-33.c: Ditto.
Attachment:
0005-loop-nest-distribution-20171002.txt
Description: 0005-loop-nest-distribution-20171002.txt
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |