Skip to main content

Questions tagged [intermediate-representation]

Filter by
Sorted by
Tagged with
3 votes
1 answer
244 views

Phi nodes join data flow based on incoming control flow edges. Determination of incoming control flow can be encoded either by directly listing predecessors or by listing blocks dominating ...
feldentm's user avatar
  • 2,508
6 votes
1 answer
289 views

In Simple and Effective Type Check Removal through Lazy Basic Block Versioning, which introduces Lazy Basic Block Versioning (LBBV), they have runtime type checks expand into two thunks for the cases ...
chc4's user avatar
  • 257
4 votes
2 answers
338 views

I've been looking into using SSA with basic block arguments for an IR. However, I have not found a good explanation of how exceptions should be modeled. This is complicated further because for ...
MI3Guy's user avatar
  • 221
0 votes
0 answers
156 views

When I type check, I generate IR and serialize them to avoid retypechecking of libraries, which is usually unchanged after the first compilation. However, I store these variable references using ...
ice1000's user avatar
  • 2,748
11 votes
1 answer
3k views

I've heard of "sea of nodes" intermediate representations mostly in the context of just-in-time compilation (JVM, V8, Graal) whereas intermediate representations such as LLVM IR are used in ...
Troy Sargent's user avatar
10 votes
3 answers
2k views

I'm beginning to read Appel's book Modern Compiler Implementation in C. The book is about 25 years old, so maybe it's not so "modern" anymore, I don't know. I'm skimming the book and it ...
Rob N's user avatar
  • 1,195
16 votes
2 answers
1k views

Motivation CPS(Continuation-Passing Style), SSA(Static Single Assignment), ANF(A-Normal Form) are three common forms of IR(Intermediate Representation). I find it very convenient to describe and ...
Aster's user avatar
  • 3,508
20 votes
1 answer
1k views

GHC is an optimizing Haskell compiler. Since Haskell is lazy and mutation is rare, control flow and data flow are often very closely aligned. Therefore, it is often most useful to think about ...
Alexis King's user avatar
  • 12.8k
10 votes
3 answers
2k views

SSA form is common intermediate representation used in compilers where all variables are assigned to exactly once. It greatly helps with a myriad of optimizations, such as constant folding, dead code ...
Seggan's user avatar
  • 3,422
12 votes
2 answers
936 views

From Wikipedia: A source-to-source translator, source-to-source compiler (S2S compiler), transcompiler, or transpiler is a type of translator that takes the source code of a program written in a ...
justANewbie's user avatar
  • 1,110
10 votes
1 answer
513 views

Cmm is a fork of C-- used by GHC for codegen. I was previously thinking of using LLVM but Cmm seems to be a nicer, easier way to go.
a coder's user avatar
  • 695