Method and system of compiling program code into predicated instructions for excution on a processor without a program counter
First Claim
1. A computer-implemented method of compiling a program code into predicated instructions, comprising:
- extracting, from control flow of the program code, constraints between instructions of the program code;
solving constraint problem between the instructions by assigning a predicate vector that satisfies the constraints to each of the instructions; and
generating a predicate guard and a predicate update for each of the instructions based on the predicate vector such that the predicated instructions can be executed on a processor that does not include any program counter.
1 Assignment
0 Petitions
Accused Products
Abstract
A predicated instruction compilation system includes a control flow graph generation module to generate a control flow graph of a program code to be compiled into the predicated instructions to be executed on a processor that does not include any program counter. Each of the instructions includes a predicate guard and a predicate update. The compilation system also includes a control flow transformation module to automatically generate the predicate guard and an update to the predicate state on the processor. A computer-implemented method of compiling a program code into predicated instructions is also described.
24 Citations
25 Claims
-
1. A computer-implemented method of compiling a program code into predicated instructions, comprising:
-
extracting, from control flow of the program code, constraints between instructions of the program code; solving constraint problem between the instructions by assigning a predicate vector that satisfies the constraints to each of the instructions; and generating a predicate guard and a predicate update for each of the instructions based on the predicate vector such that the predicated instructions can be executed on a processor that does not include any program counter. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium having sequences of instructions, the sequences of instructions including instructions which, when executed, cause a processor to perform program code compilation of a program code into predicated instructions, comprising:
-
extracting, from control flow of the program code, constraints between instructions of the program code; solving constraint problem between the instructions by assigning a predicate vector that satisfies the constraints to each of the instructions; and generating a predicate guard and a predicate update for each of the instructions based on the predicate vector such that the predicated instructions can be executed on a processor that does not include any program counter. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A predicated instruction compilation system, comprising:
-
a processor; a memory coupled to the processor; a software compiler stored on the memory and executed by the processor to compile a program code into predicated instructions, further comprising a control flow graph generation module to generate a control flow graph of the program code to be compiled into the predicated instructions for execution on an external processor that does not include any program counter; and a control flow transformation module to automatically generate a predicate guard and a predicate update for each of the instruction from the control flow graph such that the predicated instructions can be executed on a processor that does not include any program counter. - View Dependent Claims (17, 18, 19, 20)
-
-
21. An apparatus for compiling program code into predicated instructions, comprising:
-
means for generating, from control flow of the program code, constraints between instructions of the program code; means for solving constraint problem by assigning a predicate vector that satisfies the constraints to each of the instructions; and means for generating a predicate guard and a predicate update for each of the instructions based on the predicate vector. - View Dependent Claims (22, 23, 24, 25)
-
Specification