diff options
author | Bin Cheng <bin.cheng@arm.com> | 2017-02-27 10:20:36 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2017-02-27 10:20:36 +0000 |
commit | 57fa080bf6c0ae01bf1643a87e72ca636bde0454 (patch) | |
tree | f43af4a14ba4560b5196a61c743280e98d08cc5a /gcc/tree-ssa-loop-manip.h | |
parent | 68b948d3ba7cee54ba9f03a5b04f505f9c7538ff (diff) | |
download | gcc-57fa080bf6c0ae01bf1643a87e72ca636bde0454.zip gcc-57fa080bf6c0ae01bf1643a87e72ca636bde0454.tar.gz gcc-57fa080bf6c0ae01bf1643a87e72ca636bde0454.tar.bz2 |
re PR tree-optimization/77536 (Vectorizer not maintaining relationship of relative block frequencies in absence of real profile data)
PR tree-optimization/77536
* tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
(tree_transform_and_unroll_loop): Use above function to compute the
estimated niter of unrolled loop and use it when scaling profile.
Also use count info rather than frequency if it's non-zero.
* tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
* tree-vect-loop.c (scale_profile_for_vect_loop): New function.
(vect_transform_loop): Call above function.
gcc/testsuite
* gcc.dg/vect/pr79347.c: Revise testing string.
From-SVN: r245754
Diffstat (limited to 'gcc/tree-ssa-loop-manip.h')
-rw-r--r-- | gcc/tree-ssa-loop-manip.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-ssa-loop-manip.h b/gcc/tree-ssa-loop-manip.h index 1e7531f..a139050 100644 --- a/gcc/tree-ssa-loop-manip.h +++ b/gcc/tree-ssa-loop-manip.h @@ -48,6 +48,7 @@ extern bool gimple_duplicate_loop_to_header_edge (struct loop *, edge, int); extern bool can_unroll_loop_p (struct loop *loop, unsigned factor, struct tree_niter_desc *niter); +extern gcov_type niter_for_unrolled_loop (struct loop *, unsigned); extern void tree_transform_and_unroll_loop (struct loop *, unsigned, edge, struct tree_niter_desc *, transform_callback, void *); |