aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloop.h
diff options
context:
space:
mode:
authorBin Cheng <bin.cheng@arm.com>2017-07-05 11:49:02 +0000
committerBin Cheng <amker@gcc.gnu.org>2017-07-05 11:49:02 +0000
commit542e7230c0dd16977671486414207ef1a3bd52e4 (patch)
tree9a843c42d270fa10bf2d9124972c10bfcae93081 /gcc/cfgloop.h
parent3d07163dd2eece338feb79bf5e91ac8fd6ac48b7 (diff)
downloadgcc-542e7230c0dd16977671486414207ef1a3bd52e4.zip
gcc-542e7230c0dd16977671486414207ef1a3bd52e4.tar.gz
gcc-542e7230c0dd16977671486414207ef1a3bd52e4.tar.bz2
cfgloop.h (struct loop): Add comment.
* cfgloop.h (struct loop): Add comment. New field orig_loop_num. * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change. * internal-fn.c (expand_LOOP_DIST_ALIAS): New function. * internal-fn.def (LOOP_DIST_ALIAS): New. * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ... (fold_loop_internal_call): ... this. (vect_loop_dist_alias_call): New function. (set_uid_loop_bbs): Call fold_loop_internal_call. (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS internal calls. From-SVN: r249983
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r--gcc/cfgloop.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index a8bec1d..e7ffa23 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -114,7 +114,8 @@ struct GTY ((chain_next ("%h.next"))) control_iv {
/* Structure to hold information for each natural loop. */
struct GTY ((chain_next ("%h.next"))) loop {
- /* Index into loops array. */
+ /* Index into loops array. Note indices will never be reused after loop
+ is destroyed. */
int num;
/* Number of loop insns. */
@@ -225,6 +226,16 @@ struct GTY ((chain_next ("%h.next"))) loop {
builtins. */
tree simduid;
+ /* In loop optimization, it's common to generate loops from the original
+ loop. This field records the index of the original loop which can be
+ used to track the original loop from newly generated loops. This can
+ be done by calling function get_loop (cfun, orig_loop_num). Note the
+ original loop could be destroyed for various reasons thus no longer
+ exists, as a result, function call to get_loop returns NULL pointer.
+ In this case, this field should not be used and needs to be cleared
+ whenever possible. */
+ int orig_loop_num;
+
/* Upper bound on number of iterations of a loop. */
struct nb_iter_bound *bounds;