This is the mail archive of the gcc-bugs@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: optimization/8492: [3.3 regression] GCC spins forever compiling loop


> > I think deleting unreachable blocks is cheap enought to do in the case
> > conditional jump was eliminated.
> 
> Ok. But then the GCSE code needs to be (at least partially) re-initialized 
> because the number of basic blocks may change. I've attached a naive patch I 
> wrote some time ago: while fixing the PR (and doing some housekeeping work), 
> it introduces many regressions because of this problem.
> 
> > Alternatively we may prevent first local cprop pass from modifying CFG.
> 
> I don't know enough of the global organization of optimization passes to 
> comment. Will the optimizations missed at that point be caught elsewhere ?

Yes, there are examples where removing the conditional would allow more
PRE to happen, but I guess it is not that common.  We already disable
the transformation for global CPROP and in fact I am quite surprised
that I didn't the same for local pass.  I guess I just forgot about
that.

Honza
> 
> -- 
> Eric Botcazou


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