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]

Re: [patch] Lno branch merge part 3 -- ssa form updatingimprovements


On Wed, 2004-06-16 at 11:40, Zdenek Dvorak wrote:

> Do you have a saner way how to do it for general code copying (like in
> the jump forwarding algorithm presented by Kenneth on the gcc summit,
> or in the trace formation)? Or do you want to solve each such case
> specially, so that we have even more code duplication in the compiler
> and even more places where we need to fix bugs?
> 
Yes.  The mental model is to not have passes that blindly move code
around, hoping that a smart SSA patcher fixes things up afterward.  The
idea is to make localized changes that each pass understands and can
fix.

Otherwise, you need to start worrying about global effects on your SSA
web and soon you start adding code to handle things like inserting
control flow statements on an edge, needing to recompute the dominator
tree for the whole CFG, having to throw up your hands and take whole
subsections out-of-ssa and back in, etc.

One thing we could do is fix this after the LNO branch has merged (after
all, it wouldn't be the first thing we fix post-merge).  The alternative
header copy algorithm I suggested should be really easy to implement
and, as it turns out, it doesn't even need to do a DOM walk.  Just using
the DU edges from the original defs is enough.


Diego.


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