> Combine (rightfully) knows that i becomes the constant 0xf and
> replaces the two constant shifts with it.  However, it doesn't update
> the life information.  So, we have a basic block (#3 below) which has
> register 28 live, but being assigned (i.e. it's really dead).  GCC
> notices this later, and dies.

See PR rtl-optimization/29329 for a variant.

> Ideas?

The combiner already knows how to update liveness information in some cases 
(lost REG_NOTEs) so I think that we probably need to extend this mechanism.

-- 
Eric Botcazou

Reply via email to