aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-manip.h
diff options
context:
space:
mode:
authorBin Cheng <bin.cheng@arm.com>2017-02-27 10:20:36 +0000
committerBin Cheng <amker@gcc.gnu.org>2017-02-27 10:20:36 +0000
commit57fa080bf6c0ae01bf1643a87e72ca636bde0454 (patch)
treef43af4a14ba4560b5196a61c743280e98d08cc5a /gcc/tree-ssa-loop-manip.h
parent68b948d3ba7cee54ba9f03a5b04f505f9c7538ff (diff)
downloadgcc-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.h1
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 *);