Patent ID: 6675380
Filing Date: 2004-01-06
Classification: G06F

Abstract:
A method comprising:placing a plurality of instructions into a control flow graph comprising a plurality of blocks of the instructions, the control flow graph defining a plurality of paths of control flow through the blocks of instructions; building a list of candidate instructions to be scheduled into a target block in the control flow graph for execution comprising: classifying a candidate instruction as M-ready in the target block if the candidate instruction does not have an unscheduled data predecessor in any path passing through the target block; and classifying the candidate instruction as P-ready in the target block if the candidate instruction is not M-ready in the target block and there is at least one path passing through the target block on which there is no unscheduled data predecessor for the candidate instruction; and selecting one of the candidate instructions to be scheduled into the target block based on the readiness of the candidate instruction in the target block and on whether a single copy on a path property for the selected instruction in the target block will be maintained or terminated on one or more paths through the target block.