diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2005-11-03 16:28:09 +0000 |
---|---|---|
committer | Zdenek Dvorak <dvorakz@suse.cz> | 2005-11-03 16:28:09 +0000 |
commit | 97725bcde2236d163655a4999232cbbd07246cdd (patch) | |
tree | 033cdae83cc749fc9515c5b7930d80638b1929b3 /gcc/tree-ssa-loop-ivopts.c | |
parent | 0921df65ca0b9a8a06dc7d1d005277a23bd17aa8 (diff) |
PR tree-optimization/24483
* tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
field to elts if possible.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@106440 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-loop-ivopts.c')
-rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index 8bfbf7f8424..1235379aa43 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -2761,6 +2761,15 @@ aff_combination_add_elt (struct affine_tree_combination *comb, tree elt, comb->n--; comb->coefs[i] = comb->coefs[comb->n]; comb->elts[i] = comb->elts[comb->n]; + + if (comb->rest) + { + gcc_assert (comb->n == MAX_AFF_ELTS - 1); + comb->coefs[comb->n] = 1; + comb->elts[comb->n] = comb->rest; + comb->rest = NULL_TREE; + comb->n++; + } return; } if (comb->n < MAX_AFF_ELTS) @@ -2793,7 +2802,7 @@ aff_combination_add (struct affine_tree_combination *comb1, unsigned i; comb1->offset = (comb1->offset + comb2->offset) & comb1->mask; - for (i = 0; i < comb2-> n; i++) + for (i = 0; i < comb2->n; i++) aff_combination_add_elt (comb1, comb2->elts[i], comb2->coefs[i]); if (comb2->rest) aff_combination_add_elt (comb1, comb2->rest, 1); |