R0b0t1 <r03...@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