[PATCH, i386]: Generate addr32 prefixed addresses
Paolo Bonzini
bonzini@gnu.org
Mon Aug 8 15:51:00 GMT 2011
On 08/08/2011 05:16 PM, Uros Bizjak wrote:
> BTW: There is a strange optimization in combine pass, where
> zero-extended address is converted on-the-fly to:
>
> Trying 9 -> 10:
> Failed to match this instruction:
> (... (and:DI (subreg:DI (plus:SI (ashift:SI (reg/v:SI 63 [ i ])
> (const_int 2 [0x2]))
> (subreg:SI (reg/v/f:DI 62 [ a ]) 0)) 0)
> (const_int 4294967295 [0xffffffff]))
> ...)
>
> While it is easy to add a pattern recognizer for this RTX to
> ix86_decompose_address/ix86_legitimate_address_p, I would like to
> understand the purpose of the conversion better and eventually fix it
> in combine pass.
Combine tries to expand and recreate extend and extract operations,
hoping to merge it with other bitwise operations.
Paolo
More information about the Gcc-patches
mailing list