This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA:] fix group-loads of VOIDmode constants, expr.c:emit_group_load_1
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Hans-Peter Nilsson <hp at bitrange dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 01 Dec 2012 09:48:05 +0100
- Subject: Re: [RFA:] fix group-loads of VOIDmode constants, expr.c:emit_group_load_1
- References: <alpine.BSF.2.02.1211302158360.57912@dair.pair.com>
> Of course this matters only to >64bit (i.e. >registersize) values like
> TImode, alias __int128. The problem here is that group-loading a
> constant for a function return-value doesn't work; it's passed to
> simplify_gen_subreg which horks on the VOIDmode constant. Thankfully,
> the code below the context handles this case, twice the register-mode,
> just fine, so let's just gate the simplify_gen_subreg call with a test
> for a VOIDmode source.
IMO that's not as clear a cut as it seems. simplify_gen_subreg is supposed to
work on VOIDmode constants, at least to be callable on them, because there is
the simplify_gen_subreg -> simplify_subreg -> simplify_immed_subreg path.
--
Eric Botcazou