[PATCH 4/4] Initial version of RTL frontend

Jeff Law law@redhat.com
Tue May 10 17:02:00 GMT 2016


On 05/10/2016 08:17 AM, Richard Biener wrote:
> On Tue, May 10, 2016 at 4:13 PM, David Malcolm <dmalcolm@redhat.com> wrote:
>> On Wed, 2016-05-04 at 16:49 -0400, David Malcolm wrote:
>> [...snip...]
>>>
>>> I wrote this by compiling a test.c with -fdump-rtl-all on
>>> x86_64-pc-linux-gnu, and then attempting to load the state at each
>>> pass, and then trying to run just one pass, and fixing bugs until the
>>> dump output from each pass was the same as when running the pass from
>>> cc1.  I've only done this with a small subset of passes, and with a
>>> very
>>> simple test case, so I'm sure there are plenty of bugs and "x86_64
>>> -isms"
>>> remaining.
>>
>> [...snip...]
>>
>> On the subject of "x86_64-isms", a couple of issues I ran into when
>> testing with --target=aarch64-linux-gnu:
>>
>> * roundtrip.exp fails due to different register names so e.g. this from
>> x86_64:
>>
>>      (reg:SI 5 di [ i ]))
>>
>>   becomes this after roundtripping on aarch64:
>>
>>      (reg:SI 5 x5 [ i ]))
>>
>>   (i.e. "di" vs "x5" for register 5).
>>
>> * unknown modes e.g. this from x86_64:
>>
>>     (reg:CCGC 17 flags)
>>
>>   fails on aarch64 due to the lack of a "CCGC" mode.
>
> I expect most (if not all) RTL testcases will be target specific.
Well, not if we take Bernd's idea and create a new backend for testing 
purposes.  If we want to know/test what reload's doing, we cons up the 
appropriate RTL for that testing backend, set the right flags and call 
reload() then look at the result.

Jeff



More information about the Gcc-patches mailing list