1. A computer program product embodied on a non-transitory computer readable medium, comprising: code for receiving an integrated circuit hardware design encoded as one or more data flows, each representing a flow of data through the integrated circuit hardware design, and one or more control constructs configured to perform data steering operations that create one or more output data flows based on one or more input data flows, wherein a first data flow includes a superflow that includes multiple interface flows, each interface flow representing an interface with independent flow control; code for generating a node for each data flow of the one or more data flows; code for generating a node for each control construct of the one or more control constructs; code for determining connectivity of the nodes to generate a graph-based intermediate representation of the integrated circuit hardware design; and storing the graph-based intermediate representation of the integrated circuit hardware design in a source database.