This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Global analysis of RTL
- From: Geoff Wozniak <gcc at geoff dot wozniak dot ca>
- To: R0b0t1 <r030t1 at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Thu, 19 Oct 2017 09:46:11 -0400
- Subject: Re: Global analysis of RTL
- Authentication-results: sourceware.org; auth=none
- References: <86shemud1m.fsf@wozniak.ca> <CAAD4mYiPPj=ui_J-cBTrE3VrcfqHqPg5bJw5fv53-JfsKVMqLw@mail.gmail.com>
R0b0t1 <r030t1@gmail.com> writes:
When I first looked at the GCC codebase, it seemed to me that
most operations should be done on the GIMPLE representation as
it contains the most information. Is there any reason you
gravitated towards RTL?
Naiveté, really.
My team and I didn’t know much about the code base when we started
looking at the problem, although we knew a little about the
intermediate formats. GIMPLE makes the analysis more complicated,
although not impossible, and it can make the cost model difficult
to pin down. Raw assembly/machine code is ideal, but then we have
to deal with different platforms and would likely have to do all
the work in the linker. RTL is sufficiently low-level enough (as
far as we know) to start counting instructions, and platform
independent enough that we don’t have to parse machine code.
Essentially, working with RTL makes the implementation a little
easier but we didn’t know that the pass infrastructure wasn’t in
our favour.
It’s likely we’ll turn our attention to GIMPLE and
assembler/machine code, unless we can come up with something (or
anyone has a suggestion).
-- Geoff