Various intermediate representation techniques for software development
tool scenarios are described. An intermediate representation format can
be used for both high level and low level representations. The
intermediate representation can be built from various operands and
instructions types. Various annotations can be added to the intermediate
representation without modifying its format. For example, flow control
and data control can be explicitly represented by threading a graph
through the intermediate representation.