diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-03 16:28:09 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-03 16:28:09 +0000 |
commit | d2e4b59649e961eac4b1db7b96f3127a20b9c106 (patch) | |
tree | 033cdae83cc749fc9515c5b7930d80638b1929b3 /gcc/tree-ssa-loop-ivopts.c | |
parent | 49299ed69a0bc20fe1e58148918ec55df9735702 (diff) | |
download | gcc-d2e4b59649e961eac4b1db7b96f3127a20b9c106.tar.gz |
PR tree-optimization/24483
* tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
field to elts if possible.
git-svn-id: svn+ssh://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); |