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
.