4 ms·
I think advanced fortran compilers already used IRs by late 60s, early 70s. Most compilers in the 80s already used some form of non-ast IRs: Generalised porta
by vkazanov 4y ago
I think advanced fortran compilers already used IRs by late 60s, early 70s.
Most compilers in the 80s already used some form of non-ast IRs: Generalised portable instructions, cfg representations, etc. I'd say that back then people were experimenting with various forms of IRs for optimization purposes.
By 90s it was typical for compilers to have several IRs. Gcc belongs to this compiler generation.
2000s is the time when IRs standardised around 2-3 SSA-like forms, which made it possible to do most optimisation work on this level only.
- pjmlp 4y agoI got curious by your remark and found this Fortran compiler from 1962, using an IR that they call BAS (Binary and Arbitrarily Symbolic). http://www.chilton-computing.org.uk/acl/applications/hartran/p022.htm http://www.chilton-computing.org.uk/acl/applications/hartran...
- vkazanov 4y agoTBH, I just speculated. I remember 60s ibm research publications on cfg, optimizations against it and was pretty sure these things are very hard to do on an ast or those simpler line by line compilers popular back then. In fact, even the original fortran had quite an involved compiler, complete with numerous optimisations and sophisticated register allocation. Fun read, btw.