1. A method of forming a control-dataflow graph comprising: separating a control flow graph into two or more basic blocks; and converting said two or more basic blocks into code blocks, wherein the code blocks are formed into the control-dataflow graph.