LOOP EXECUTION WITH PREDICATE COMPUTING FOR DATAFLOW MACHINES
First Claim
1. A compiler for compiling a computer program, comprising:
- one or more analyzers to parse and analyze source instructions of a computer program including identification of nested loops of the computer program; and
a code generator coupled to the one or more analyzers to generate and output executable code for the computer program that executes on a data flow machine, including a data flow graph, based at least in part on results of the analysis, wherein the executable code includes executable code that recursively computes predicates of identified nested loops for use to generate control signal for the data flow graph to allow execution of each loop to start when the loop'"'"'s predicate is available, independent of whether any other loop is in execution or not.
1 Assignment
0 Petitions
Accused Products
Abstract
Compilers for compiling computer programs and apparatuses including compilers are disclosed herein. A compiler may include one or more analyzers to parse and analyze source instructions of a computer program including identification of nested loops of the computer program. The compiler may also include a code generator coupled to the one or more analyzers to generate and output executable code for the computer program that executes on a data flow machine, including a data flow graph, based at least in part on results of the analysis. In embodiments, the executable code may include executable code that recursively computes predicates of identified nested loops for use to generate control signal for the data flow graph to allow execution of each loop to start when the loop'"'"'s predicate is available, independent of whether any other loop is in execution or not. Other embodiments may be disclosed or claimed.
45 Citations
25 Claims
-
1. A compiler for compiling a computer program, comprising:
-
one or more analyzers to parse and analyze source instructions of a computer program including identification of nested loops of the computer program; and a code generator coupled to the one or more analyzers to generate and output executable code for the computer program that executes on a data flow machine, including a data flow graph, based at least in part on results of the analysis, wherein the executable code includes executable code that recursively computes predicates of identified nested loops for use to generate control signal for the data flow graph to allow execution of each loop to start when the loop'"'"'s predicate is available, independent of whether any other loop is in execution or not. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 21)
-
-
15. An apparatus for computing, comprising:
-
one or more processors; and a compiler to be operated by the one or more processors to compile a computer program, wherein the compiler includes; one or more analyzers to parse and analyze source instructions of a computer program including identification of nested loops of the computer program; and a code generator coupled to the one or more analyzers to generate and output executable code for the computer program that executes on a data flow machines based at least in part in results of the analysis, wherein the executable code includes executable code that computes predicates of identified nested loops to allow execution of each loop to start when the loop'"'"'s predicate is available, independent of whether any other loop is in execution or not. - View Dependent Claims (16, 17, 18, 20)
-
-
22. A method for compiling a computer program for execution on a dataflow machine for generating loop control signals, comprising:
-
receiving source instructions of the computer program; parsing and analyzing the computer program including identifying nested loops of the computer program; and generating and outputting executable code for the computer program to execute on a data flow machine based at least in part on results of the analyzing, wherein the executable code includes executable code that recursively computes predicates of identified nested loops to allow execution of each loop to start when the loop'"'"'s predicate is available, independent of whether any other loop is in execution or not. - View Dependent Claims (23, 24, 25)
-
Specification