* tree-loop-distribution.c (struct builtin_info): New struct.
commit506fcb4f693feb52a989f64a9870e8611fd869b5
authoramker <amker@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Oct 2017 14:33:30 +0000 (12 14:33 +0000)
committeramker <amker@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Oct 2017 14:33:30 +0000 (12 14:33 +0000)
tree2d52e40fa2837c0e2d43c2dd8dd15d61cf52ba1f
parent883b490562141ee0c69f5754a61ddd604fd384a0
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253680 138bc75d-0d04-0410-961f-82ee72b054a4
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