Displaying 1 result from an estimated 1 matches for "bd424e82d96ddb7b9e67c5e51cdcc5ec".
2017 Dec 16
2
Replace call stack with an equivalent on the heap?
...an clang certain
examples, such as the ackermann function. However, from reading their
respective IRs (Cmm for GHC and LLVM for clang), I don't really see much of
a difference. Here is a link to the numbers. (n, m) are the parameters to
the ackermann function
<https://gist.github.com/bgamari/bd424e82d96ddb7b9e67c5e51cdcc5ec>
One major difference is that GHC uses a "stack-in-the-heap", in the sense
that the a is a chunk of heap memory that functions effectively as call
stack. It is managed explicitly by GHC. GHC does not use the native call
stack _at all_. This is to implement continuation passing, in a s...