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: Preliminary patch for PR23820 and PR24309


On 10/13/07, Richard Guenther <richard.guenther@gmail.com> wrote:
> On 10/13/07, Sebastian Pop <sebpop@gmail.com> wrote:
> > On 10/13/07, Richard Guenther <richard.guenther@gmail.com> wrote:
> > > Huh?  That patch should make zero difference.
> > >
> >
> > However, it does.  I double checked that without that patch ltrans-3
> > fails, and with the patch it passes.  Another sequence that works for
> > ltrans-3 is duplicating DCE before VRP.
>
> I checked as well and the dumps after these both passes are the same.
> Also both passes are before loop-header copying.  The difference it
> seems to make is that DCE removes a forwarder block which it doesn't
> do if it runs after VRP.  For some reason.

Nope.  VRP inserts loop preheaders.  So, does

Index: tree-vrp.c
===================================================================
--- tree-vrp.c  (revision 129282)
+++ tree-vrp.c  (working copy)
@@ -6089,7 +6089,7 @@ vrp_finalize (void)
 static unsigned int
 execute_vrp (void)
 {
-  loop_optimizer_init (LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS);
+  loop_optimizer_init (AVOID_CFG_MODIFICATIONS);
   rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa);
   scev_initialize ();

fix it as well?

Richard.


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