Sparse and demand-driven dataflow approaches (SSA et al) won out in compilers, in large part because they don't suffer a bound that is related to boolean matrix multiplication of number of points * number of variables. Also, because problems are often easier to reason about when done sparsely or in a demand driven fashion.
While that did not lead to completely demand driven approaches (in most compilers), it led to significant improvements in speed and ability to write compilers.
While some things still remained fairly non-sparse (pointer analysis, et al), for decades, even that has changed now, and demand driven approaches are significantly more common in all aspects of compilers.
So it is not entirely shocking that doing the same for higher order control flow might be a better approach these days :)
DannyBee•4h ago
Sparse and demand-driven dataflow approaches (SSA et al) won out in compilers, in large part because they don't suffer a bound that is related to boolean matrix multiplication of number of points * number of variables. Also, because problems are often easier to reason about when done sparsely or in a demand driven fashion.
While that did not lead to completely demand driven approaches (in most compilers), it led to significant improvements in speed and ability to write compilers.
While some things still remained fairly non-sparse (pointer analysis, et al), for decades, even that has changed now, and demand driven approaches are significantly more common in all aspects of compilers.
So it is not entirely shocking that doing the same for higher order control flow might be a better approach these days :)