Throughput-aware software pipelining for highly multi-threaded systems
AssigneeOracle International Corporation
InventorsSpiros Kalogeropulos, Partha Tirumalai
Life of this patent
Estimating the term…
Loading patent…
AssigneeOracle International Corporation
InventorsSpiros Kalogeropulos, Partha Tirumalai
Estimating the term…
Embodiments of the invention provide systems and methods for throughput-aware software pipelining in compilers to produce optimal code for single-thread and multi-thread execution on multi-threaded systems. A loop is identified within source code as a candidate for software pipelining. An attempt is made to generate pipelined code (e.g., generate an instruction schedule and a set of register assignments) for the loop in satisfaction of throughput-aware pipelining criteria, like maximum register count, minimum trip count, target core pipeline resource utilization, maximum code size, etc. If the attempt fails to generate code in satisfaction of the criteria, embodiments adjust one or more settings (e.g., by reducing scalarity or latency settings being used to generate the instruction schedule). Additional attempts are made to generate pipelined code in satisfaction of the criteria by iteratively adjusting the settings, regenerating the code using the adjusted settings, and recalculating whether the code satisfies the criteria.
A method for throughput-aware software pipelining of an inner loop of a source code listing using a pipelining module of a computer-implemented compiler, the method comprising:
A computer-implemented compiler system for throughput-aware software pipelining of an inner loop of a source code listing using a pipelining module of a computer-implemented compiler, the system comprising:
A computer program product having a pipelining module for throughput-aware software pipelining of an inner loop of a source code listing, the computer program product residing on a non-transitory, processor-readable medium and having processor-readable instructions, which, when executed, cause a processor to perform steps comprising:
Dependencies are inferred from the claim text.