Flambda 2 Types: An abstract domain for static analysis of functional programs
In this talk, we will present an overview of the abstract domains that drive the Flambda 2 optimizer for OCaml programs. Like most optimizing compilers, Flambda 2 relies on static analysis to find optimization opportunities. There are several different analyses that are actually performed, here we will focus on a forward value analysis that we call Flambda 2 Types. Despite its name, it fits quite well the definition of an abstract domain (in the sense of abstract interpretation), and it is through that angle that we will introduce it.