On May 10, 2016 7:02:33 PM GMT+02:00, Jeff Law <l...@redhat.com> wrote: >On 05/10/2016 08:17 AM, Richard Biener wrote: >> On Tue, May 10, 2016 at 4:13 PM, David Malcolm <dmalc...@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.
Hmm, I guess that some test cases rely on specific patterns being (not) present so we'd have one backend per testcase ... (Or .md file snippets per testcase). Richard. >Jeff