|
|
|
|
|
by philberty
1345 days ago
|
|
Thanks @steveklabnik we basically have the same in gccrs: 1. AST
2. HIR
3. THIR (side-table lookups)
4. GCC Generic We basically skip MIR in gccrs. Its pretty sensible to have other IR's, we have many passes in gccrs simplifying things so the graph of what your working with is simpler and simpler each time. I mean in GCC for C++ for example they use GENERIC and add a bunch of custom tree-codes such as LAMBDA_EXPR or TEMPLATE stuff for example then they keep substituting etc and finally as part of handing off to GCC middle-end it triggers the gimplification of all of these custom tree codes. So even the C++ front-end you could argue has two IR's. |
|