Native Support for Explicit Stacks in LLVM
During compilation, an explicit model of the control stack can uniformly express a host of language features, such as concurrency and exception handling. For GHC and other compilers using such a model, LLVM is an awkward compilation target. Because of limitations in the LLVM IR, every point at which a function call returns must be split into its own function. This splitting transformation (a.k.a. “proc-point splitting” in GHC) destroys much of the function-local control-flow in the original program, rendering most of LLVM’s optimizations useless.
In this talk, I will discuss my work to extend LLVM with a new feature that supports explicit stack management, eliminating the need for the splitting transformation. Using GHC as a testbed, I will also compare the new feature against the prior splitting workaround.
Sat 9 SepDisplayed time zone: Belfast change
10:30 - 11:30
|Native Support for Explicit Stacks in LLVM
|SimplexHC: Lowering High-Level Haskell to Imperative IR
Siddharth Bhat IIT Hyderabad
|Lightning Talk Slot #1