This patch introduces an implementation of dense data-flow analysis. Dense
data-flow analysis attaches a lattice before and after the execution of every
operation. The lattice state is propagated across operations by a user-defined
transfer function. The state is joined across control-flow and callgraph edges.
Thge patch provides an example pass that uses both a dense and a sparse analysis
together.
Depends on D127139
We can actually see that AbstractDenseLattice is a base class of AbstractLattice (reset == markPessimisticFixpoint ).
Can we (1) rename AbstractLattice to AbstractSparseLattice; (2) rename AbstractDenseLattice to AbstractLattice; (3) let the new AbstractLattice be a base class of the new AbstractSparseLattice?