On Wed, Aug 19, 2015 at 02:41:35PM +0100, Kyrill Tkachov wrote: > Hi all, > > This fixes the ICE exposed by Alexandre's patch > (https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00873.html) > The solution I came up with is to re-layout the parameter decls not during > expansion time (when RTL has already > been allocated to SSA names) but in TARGET_SET_CURRENT_FUNCTION which is > called much earlier before that and is > used when setting cfun. This way we reach expand with the proper vector modes > registered for the param decls > and all seems to work ok. > > The aarch64-builtins.c workaround that I initially introduced in > https://gcc.gnu.org/ml/gcc-patches/2015-07/msg02012.html > are partially reverted (at least the re-laying out parts). > > The patch fixes the target_attr_crypto_ice_1.c ICE but I'd like to add a > second derived testcase that > tests a different expansion path and it has proved useful in writing this > patch. > > Bootstrapped and tested on aarch64. > > Ok for trunk?
OK. Thanks, James > 2015-08-19 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > * config/aarch64/aarch64.c (aarch64_set_current_function): > Re-layout any vector parameters have non-simd layout. > * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param): > Delete. > (aarch64_simd_expand_args): Delete call to the above. > > 2015-08-19 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > * gcc.target/aarch64/target_attr_crypto_ice_2.c: New test.