Hello everyone,

I am currently in the end of my PhD, and I worked a lot with GCC.
A chapter of my thesis is focusing on GCC and its internal representation.
I mainly worked on GIMPLE-SSA, but I wanna write an overview of GCC's
three main representations: GENERIC, GIMPLE (High, Low and SSA) and RTL.

GENERIC is quite well documented regarding its data structures and
logic, same goes for GIMPLE, alongside the mention of SIMPLE from the
McCAT compiler as inspiration, which is an academic source (c.f.,
https://link.springer.com/chapter/10.1007/3-540-57502-2_61).
I found an academic paper designing an RTL system for the Typed
Smalltalk (TS) compiler (c.f.,
https://link.springer.com/chapter/10.1007/978-1-4471-3501-2_14), and I
naively thought it was the base of the RTL IR for GCC.
But then, going through the paper, I noticed, they are comparing their
RTL system to GCC's one.

I tried to go back to the commit introducing RTL IR, but it seems it was
before the use of git as version control tool and I can't go back the
initial commit from 33 years ago.
I also tried to grep in the source code for references, but haven't find
out anything so far.
Also, no mention of inspiration are provided in the internals, as
opposed to GIMPLE and its SIMPLE inspiration.

Digging a bit more, I've found some academic work from Davidson and
Fraser (c.f., https://dl.acm.org/doi/abs/10.1145/357094.357098) which
seems to be the first basis of an RTL intermediate language.
Hence, my question is about the origin of GCC's RTL IR itself, is the
work from Davidson and Fraser the inspiration for the RTL IR? And are
there any (other) academic or non-academic sources you can think of?

I'll take any pointers you might have.
Thank you for reading me,
Cheers,

Pierrick

Reply via email to