Comments

Hello!
Attached patch uses for_each_rtx function to find AVX256 registers in
the RTX. The patch also implements better MODE_AFTER handling: we
already switched to DIRTY state if AVX256 is referenced through
MODE_NEEDED. We just force CLEAN state after vzeroupper/vzero and for
call instructions without AVX256 register returns.
2012-11-10 Uros Bizjak <ubizjak@gmail.com>
PR target/47440
* config/i386/i386.c (check_avx256_stores): Remove.
(ix86_check_avx256_register): New.
(ix86_avx_u128_mode_needed): Use ix86_check_avx256_register.
Check the whole RTX for 256bit registers using for_each_rtx.
(ix86_check_avx_stores): New.
(ix86_avx_u128_mode_after): Change mode of CALL RTX to AVX_U128_CLEAN
if there are no 256bit registers used in the function return register.
(ix86_avx_u128_mode_entry): Use ix86_check_avx256_register.
(ix86_avx_u128_mode_exit): Ditto.
Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu,
tested by Vladimir on SPEC2000/2006 and will be committed to mainline
SVN after a re-bootstrap.
Uros.