This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[tree-ssa] Fix bootstrap failures [patch]


This makes some rudimentary use of the loop discovery code in
cfgloop.c.  When we are in a fully pruned SSA form, some loops may not
have PHI terms at the header block.  This caused the SSA rename pass
optimizers to cause two different versions of the same variable to be
alive at the same time.  We can't allow that for the time being.

This patch extends var_is_live to check for this.  The check is fairly
straightforward, if the original definition of the variable is outside
the loop and there may be another definition for it inside the same
loop, then that definition and the original one may overlap, meaning
that we can't move the outside SSA name into the loop.

This problem was exposed by compile/20030530-1.c.  The patch should fix
all the bootstrapping problems we had on x86 and amd64.  I think it also
fixes ppc, but my ppc box is not cooperating today.


Diego.

Attachment: 20030602-fix-var_is_live.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]