> 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