diff options
author | Bin Cheng <bin.cheng@arm.com> | 2017-07-05 11:49:02 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2017-07-05 11:49:02 +0000 |
commit | 542e7230c0dd16977671486414207ef1a3bd52e4 (patch) | |
tree | 9a843c42d270fa10bf2d9124972c10bfcae93081 /gcc/cfgloop.h | |
parent | 3d07163dd2eece338feb79bf5e91ac8fd6ac48b7 (diff) | |
download | gcc-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.h | 13 |
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; |