RFC/RFA: Fix bug with REE optimization corrupting extended registers

Jeff Law law@redhat.com
Fri Nov 20 17:32:00 GMT 2015


On 11/20/2015 02:19 AM, Nick Clifton wrote:
> Hi Jeff,
>
>>> The code there would solve this problem, but the approach is is overly
>>> cautious, since it disables the optimization for all extensions that
>>> increase the number of hard registers used.  Some of these will be
>>> viable candidates, provided that the extra hard registers are no used.
>>> (This is certainly true for the RL78, where the (patched) optimization
>>> does improve code, even though the widening does use extra registers).
>> Nick -- can you pass along your testcode?
>
> Sure - this is for the RL78 toolchain.  In theory the problem is
> generic, but I have not tested other toolchains.
Right.  It just really helps me to have something I can poke at -- it's 
just the type of learner I am.  I tried to trip the test in that #if 
several times last year and never came up with anything.  So naturally 
if we can trip it with the rl78 I want to dig into it.


>
> Compile the gcc.c-torture/execute/pr42833.c or
> gcc.c-torture/execute/strct-stdarg-1.c tests at -O1 or higher with -free
> also specified on the command line.  Without -free these tests pass.
> With -free they fail.
Perfect.  Building rl78-elf cross bits as I type...

jeff



More information about the Gcc-patches mailing list