On Thu, Oct 11, 2012 at 02:44:12PM -0700, Teresa Johnson wrote: > Revised patch to address conservative behavior in redundant extend > elimination that was resulting in redundant extends not being > removed. Now uses a new target hook machine_mode_from_attr_mode > which is currently enabled only for i386.
I still don't like it, the hook still is about how it is implemented instead of what target property it wants to ask (the important thing there is that a {QI,HI} -> SImode zero extension instruction on x86_64 performs {QI,HI} -> DImode extension actually). That isn't the case for any other modes, isn't the case for sign extension etc. Can you please post a testcase first? Given the recent ree.c changes to remember the performed operations and their original modes (struct ext_modified), perhaps the "Second, make sure the reaching definitions don't feed another and"... check could be made less strict or even removed, but for that a testcase is really needed. Jakub