Diego Novillo writes:
 > On Saturday 12 November 2005 12:19, Andrew Haley wrote:
 > 
 > > Couldn't we attach an assertion to the tree?  That way we could just
 > > use the inference logic we already have.
 > >
 > We already do that.  In Per's test case, 
 > 
 > String x = shared ? "x" : new String("x");
 > 
 > we get into VRP with an SSA form along these lines:
 > 
 > if (shared_1)
 >    x_4 = "x"
 > else
 >   {
 >     x_5 = new String("x");
 >     x_6 = ASSERT_EXPR <x_5, x_5 != 0>
 >   }
 > x_7 = PHI <x_4, x_6>
 > 
 > VRP already knows that "x" is non-NULL.  The new function attribute will 
 > cause VRP to insert the ASSERT_EXPR for x_5.  VRP will detetermine that 
 > x_7 is non-NULL.

OK, so what's to stop the front-end from generating the assertion at
gimplification time?  Then we don't need any new attributes in the
middle-end.

Andrew.

Reply via email to