mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 00:39:39 +08:00
trans.h (struct gfc_loopinfo): New fields nested and next.
* trans.h (struct gfc_loopinfo): New fields nested and next. * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if ss has non-null nested_ss field. From-SVN: r180897
This commit is contained in:
parent
06cd4e1b5a
commit
9d75804367
@ -1,3 +1,9 @@
|
||||
2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
|
||||
|
||||
* trans.h (struct gfc_loopinfo): New fields nested and next.
|
||||
* trans-array.c (gfc_add_ss_to_loop): Update list of nested list if
|
||||
ss has non-null nested_ss field.
|
||||
|
||||
2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
|
||||
|
||||
* trans-array.c (gfc_trans_create_temp_array): Loop over the parents.
|
||||
|
@ -645,6 +645,7 @@ void
|
||||
gfc_add_ss_to_loop (gfc_loopinfo * loop, gfc_ss * head)
|
||||
{
|
||||
gfc_ss *ss;
|
||||
gfc_loopinfo *nested_loop;
|
||||
|
||||
if (head == gfc_ss_terminator)
|
||||
return;
|
||||
@ -654,6 +655,21 @@ gfc_add_ss_to_loop (gfc_loopinfo * loop, gfc_ss * head)
|
||||
ss = head;
|
||||
for (; ss && ss != gfc_ss_terminator; ss = ss->next)
|
||||
{
|
||||
if (ss->nested_ss)
|
||||
{
|
||||
nested_loop = ss->nested_ss->loop;
|
||||
|
||||
/* More than one ss can belong to the same loop. Hence, we add the
|
||||
loop to the chain only if it is different from the previously
|
||||
added one, to avoid duplicate nested loops. */
|
||||
if (nested_loop != loop->nested)
|
||||
{
|
||||
gcc_assert (nested_loop->next == NULL);
|
||||
nested_loop->next = loop->nested;
|
||||
loop->nested = nested_loop;
|
||||
}
|
||||
}
|
||||
|
||||
if (ss->next == gfc_ss_terminator)
|
||||
ss->loop_chain = loop->ss;
|
||||
else
|
||||
|
@ -279,6 +279,9 @@ typedef struct gfc_loopinfo
|
||||
/* The SS describing the temporary used in an assignment. */
|
||||
gfc_ss *temp_ss;
|
||||
|
||||
/* Chain of nested loops. */
|
||||
struct gfc_loopinfo *nested, *next;
|
||||
|
||||
/* The scalarization loop index variables. */
|
||||
tree loopvar[GFC_MAX_DIMENSIONS];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user