The C-Breeze compiler includes an iterative dataflow framework similar
to the one described in Compilers: Principles, Techniques, and Tools
(the Dragon Book). Note that this dataflow framework assumes that the
code has not been dismantled. A dataflow analysis problem consists of
the following components:
The C-Breeze framework provides most of the necessary
algorithms--your job is to provide the flow values, the transfer functions,
and the meet operator.
To define the dataflow problem, create a subclass of each of the two dataflow
classes, FlowVal and FlowProblem. The abstract class
FlowVal defines the flow values and the meet operation. The
FlowProblem class provides the entry point and holds the transfer
functions. Both classes are defined in dataflow.h.