Patent ID: 8166467

Claim:
Method for identifying and programming, from a source code, an Application-specific Functional Unit (AFU) using at least one input data element and producing at least one output data element, comprising: creating a control flow graph containing a set of basic block representing the said source code, defining a critical basic block (CBB) comprising at least one basic block, identifying data elements referenced by the critical basic code block (CBB), identifying and programming the Application-specific Functional Unit (AFU) with storage capabilities for said identified data elements containing the critical basic code (CBC) function, identifying source code positions which modify said input data elements, identifying source code positions which reference said output data elements, inserting a call to the Application-specific Functional Unit (AFU), inserting an input transfer function to move the input data elements into the Application-specific Functional Unit (AFU) storage means in between the last code position modifying input data elements and the call to the Application-specific Functional Unit (AFU), inserting an output transfer function to move the output data elements from the Application-specific Functional Unit (AFU) storage means in between the return from the call to the Application-specific Functional Unit (AFU) and the first code position referencing the output data elements, defining a subset of basic blocks between the last code position modifying input data elements and the call to the Application-specific Functional Unit (AFU), defining for each basic block the number of times said basic block is executed in said source code, and inserting said input transfer function in a basic block with the lowest execution count.