Method and apparatus for efficient code generation for modulo scheduled uncounted loops
First Claim
Patent Images
1. A method of efficient code generation for modulo scheduled uncounted loops, the method comprising:
- assigning a given stage predicate to each instruction in each stage, including assigning a given stage predicate to each instruction in each speculative stage; and
using the stage predicate to conditionally enable or disable the execution of an instruction during the prologue and epilogue execution.
3 Assignments
0 Petitions
Accused Products
Abstract
A method of efficient code generation for modulo scheduled uncounted loops includes: assigning a given stage predicate to each instruction in each stage, including assigning a given stage predicate to each instruction in each speculative stage; and using the stage predicate to conditionally enable or disable the execution of an instruction during the prologue and epilogue execution.
78 Citations
15 Claims
-
1. A method of efficient code generation for modulo scheduled uncounted loops, the method comprising:
-
assigning a given stage predicate to each instruction in each stage, including assigning a given stage predicate to each instruction in each speculative stage; and
using the stage predicate to conditionally enable or disable the execution of an instruction during the prologue and epilogue execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of processing counted loops with early exits, the method comprising:
-
receiving an intermediate representation that includes multiple exit branches including an exit branch in the middle of the loop; and
performing an if-conversion on the intermediate representation, including converting the multiple exit branches into a single exit branch; and
performing a compare operation to set values of predicates that determine the path from the single exit branch.
-
-
10. A method of processing fully if-converted loops, the method comprising:
-
receiving an intermediate representation for a while loop, where an if-conversion has not been performed on multiple branches;
performing an if-conversion on the intermediate representation, including removing some of the multiple branches, placing a first compare operation to guard multiple predicated instructions, and placing a second compare operation to guard an exit branch.
-
-
11. A method of processing uncounted loops with explicit branches of control flow, the method comprising:
receiving an intermediate representation, where a code is not modulo scheduled and branches internal to the loop are not if-converted
-
12. An apparatus for modulo scheduling, the apparatus comprising:
a modulo scheduler configured to assign a given stage predicate to each instruction in each stage including assigning a given stage predicate to each instruction in each speculative stage, the modulo scheduler configured to use the stage predicate to conditionally enable or disable the execution of an instruction during the prologue and epilogue execution. - View Dependent Claims (13)
-
14. An article of manufacture, comprising:
-
a machine-readable medium having stored thereon instructions to;
assign a given stage predicate to each instruction in each stage, including assigning a given stage predicate to each instruction in each speculative stage; and
use the stage predicate to conditionally enable or disable the execution of an instruction during the prologue and epilogue execution.
-
-
15. An apparatus for efficient code generation for modulo scheduled uncounted loops, the apparatus comprising:
-
means for assigning a given stage predicate to each instruction in each stage, including means for assigning a given stage predicate to each instruction in each speculative stage; and
coupled to the means for assigning the given stage predicate, means for using the stage predicate to conditionally enable or disable the execution of an instruction during the prologue and epilogue execution.
-
Specification