------- Comment #2 from rguenth at gcc dot gnu dot org  2007-09-20 11:50 -------
At least the unmodifiable_var_p (alias) call looks suspicious (but probably
unrelated to the problem):

Index: tree-ssa-alias.c
===================================================================
--- tree-ssa-alias.c    (revision 128618)
+++ tree-ssa-alias.c    (working copy)
@@ -561,7 +561,7 @@ set_initial_properties (struct alias_inf
                      subvar_t svars;
                      svars = get_subvars_for_var (SFT_PARENT_VAR (alias));
                      for (; svars; svars = svars->next)
-                       if (!unmodifiable_var_p (alias))
+                       if (!unmodifiable_var_p (svars->var))
                          mark_call_clobbered (svars->var, pi->escape_mask);
                    }
                  else if (!unmodifiable_var_p (alias))

what we have is that SFT_PARENT_VAR is of type 'union Meep' which has
quite a lot of fields and the above loop is quadratic in the number of
fields.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org
           Keywords|                            |alias
            Summary|tree struct aliasing goes   |tree struct aliasing goes
                   |into a loop marking call    |into a loop marking call
                   |clobbers.                   |clobbers.


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33508

Reply via email to