On 7 December 2015 at 10:35, Eric Botcazou <ebotca...@adacore.com> wrote: > Hi, > > it's a couple of regressions in the C testsuite present on SPARC 64-bit and > coming from the new coalescing code which fails to handle vector types with > BLKmode that are returned in multiple registers. The code assigns a BLKmode > REG to the RESULT_DECL of the function in expand_function_start and this later > causes expand_function_end to choke. > > As discussed with Alexandre in the audit trail, the attached minimal fix just > prevents the problematic BLKmode REG from being generated, which appears to be > sufficient to restore the nominal operating mode. > > Tested on x86-64/Linux and SPARC64/Solaris, OK for the mainline? > > > 2015-12-07 Eric Botcazou <ebotca...@adacore.com> > > PR middle-end/68291 > PR middle-end/68292 > * cfgexpand.c (set_rtl): Always accept PARALLELs with BLKmode for > SSA names based on RESULT_DECLs. > * function.c (expand_function_start): Do not create BLKmode REGs > for GIMPLE registers when coalescing is enabled. >
Hi Eric, Since you committed this (r231372), I've noticed several regressions on ARM and AArch64. You can have a look at http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/231372/report-build-info.html for more details. Can you have a look? Thanks, Christophe. > -- > Eric Botcazou