Method and apparatus for efficient code generation for modulo scheduled uncounted loops
AssigneeHewlett-Packard Development Company, L.P.
InventorsCarol L. Thompson, Uma Srinivasan, Richard E. Hank, Dale Morris
Life of this patent
Estimating the term…
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.
Claims15
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.
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.
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.
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
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.
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.
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.
Dependencies are inferred from the claim text.