[patch] PR target/36613: reload codegen bug

Ulrich Weigand uweigand@de.ibm.com
Mon Aug 4 17:00:00 GMT 2008


Michael Matz wrote:

> As I noted in the large bugzilla comment I see two ways of fixing this:
> 1) also take the size of operands into account while merging the in/out 
>    members, in push_reload
> 2) overhaul do_input_reload and do_output_reload to care for 
>    inmode/outmode _first_ before falling back to the operands.

Your analysis looks good to me; I agree that option (1) is the more 
straightforward fix; it also has the benefit of having in/out match
inmode/outmode more frequently than otherwise, which certainly reduces
confusion ...

> 	PR target/36613
> 
> 	* reload.c (push_reload): Merge in,out,in_reg,out_reg members
> 	for reused reload, instead of overwriting them.
> 
> 	* gcc.target/i386/pr36613.c: New testcase.

This is OK for mainline (and for 4.3 after some time has passed).

Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com



More information about the Gcc-patches mailing list