tree-loop-distribution.c (struct builtin_info): New struct.
authorBin Cheng <bin.cheng@arm.com>
Thu, 12 Oct 2017 14:33:30 +0000 (14:33 +0000)
committerBin Cheng <amker@gcc.gnu.org>
Thu, 12 Oct 2017 14:33:30 +0000 (14:33 +0000)
commit939cf90f620b91441180aacb7a3c290f1a53aa10
tree2d52e40fa2837c0e2d43c2dd8dd15d61cf52ba1f
parent163aa51b706a50c86b639d7827803550706bef78
tree-loop-distribution.c (struct builtin_info): New struct.

* tree-loop-distribution.c (struct builtin_info): New struct.
(struct partition): Refactor fields into struct builtin_info.
(partition_free): Free struct builtin_info.
(build_size_arg_loc, build_addr_arg_loc): Delete.
(generate_memset_builtin, generate_memcpy_builtin): Get memory range
information from struct builtin_info.
(find_single_drs): New function refactored from classify_partition.
Also moved builtin validity checks to this function.
(compute_access_range, alloc_builtin): New functions.
(classify_builtin_st, classify_builtin_ldst): New functions.
(classify_partition): Refactor code into functions find_single_drs,
classify_builtin_st and classify_builtin_ldst.
(distribute_loop): Don't do runtime alias check when distributing
loop nest.
(find_seed_stmts_for_distribution): New function.
(pass_loop_distribution::execute): Refactor code finding seed
stmts into above function.  Support distribution for the innermost
two-level loop nest.  Adjust dump information.

gcc/testsuite
* gcc.dg/tree-ssa/ldist-28.c: New test.
* gcc.dg/tree-ssa/ldist-29.c: New test.
* gcc.dg/tree-ssa/ldist-30.c: New test.
* gcc.dg/tree-ssa/ldist-31.c: New test.

From-SVN: r253680
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/ldist-28.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/ldist-29.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/ldist-30.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/ldist-31.c [new file with mode: 0644]
gcc/tree-loop-distribution.c