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] Decompose gimplify_expr


Hello,

> > In any case, I don't intend to implement any complicated optimizations.
> > I definitely will avoid any "special case handling";
> > if the optimization is too complicated, it is hardly worth doing
> > at the expansion time.  I will be considering only simple optimizations
> > like unreachable code removal and constant propagation that have
> > a good chance to be very useful and save significant amount of memory
> > and compile time (especially on code that uses macros a lot).\
> 
> I will simply note that we have *already* run into issues because things
> like "constant propagation" were added to cleanup_cfg.  (It ends up
> causing us to need to update ssa in some cases that it doesn't do, and
> shouldn't have to, since it's a fricking cfg cleanup pass)

constant propagation is not performed anywhere in cfg cleanup.  The
reason why ssa form needs to be updated after cfg cleanup is not because
of constant propagation, but because cfg cleanup may delete edges (and
you must delete the edges that cannot be taken somewhere, cfg
cleanup is just the practical place where to do it so that dozen
of other passes does not need to care about it).

Zdenek

> There are always corner cases in simple optimizations that nobody thinks
> about that bite us in the ass later.
> 


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