SINGLE INSTRUCTION MULTIPLE DATA (SIMD) CODE GENERATION FOR PARALLEL LOOPS USING VERSIONING AND SCHEDULING
First Claim
1. In a code compilation data processing system, a single instruction multiple data (SIMD) parallel loop code generation method comprising:
- identifying a loop in a representation of source code in a code compilation data processing system;
selecting a trip count condition responsive to a scheduling policy set for the code compilation data processing system and also responsive to a minimal simdizable threshold;
determining a trip count and an alignment constraint for the selected loop; and
,generating a version of a parallel loop in the source code according to the relative alignment condition and a comparison of the trip count to the trip count condition.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention address deficiencies of the art in respect to loop parallelization for a target architecture implementing a shared memory model and provide a novel and non-obvious method, system and computer program product for SIMD code generation for parallel loops using versioning and scheduling. In an embodiment of the invention, within a code compilation data processing system a parallel SIMD loop code generation method can include identifying a loop in a representation of source code as a parallel loop candidate, either through a user directive or through auto-parallelization. The method also can include selecting a trip count condition responsive to a scheduling policy set for the code compilation data processing system and also on a minimal simdizable threshold, determining a trip count and an alignment constraint for the selected loop, and generating a version of a parallel loop in the source code according to the alignment constraint and a comparison of the trip count to the trip count condition.
32 Citations
13 Claims
-
1. In a code compilation data processing system, a single instruction multiple data (SIMD) parallel loop code generation method comprising:
-
identifying a loop in a representation of source code in a code compilation data processing system; selecting a trip count condition responsive to a scheduling policy set for the code compilation data processing system and also responsive to a minimal simdizable threshold; determining a trip count and an alignment constraint for the selected loop; and
,generating a version of a parallel loop in the source code according to the relative alignment condition and a comparison of the trip count to the trip count condition. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A code compilation data processing system comprising:
-
a host computing platform supporting an operating system managing a compiler executing in the operating system; a shared memory application programming interface (API) supported by the compiler; and
,single instruction multiple data (SIMD) code generation logic coupled to the compiler and accessing the shared memory API, the logic comprising program code enabled to generate one of three versions of a parallel loop for a selected loop in representation of source code according to a computed alignment constraint and a comparison of a trip count determined for the loop with a specified trip count condition. - View Dependent Claims (7, 8)
-
-
9. A computer program product comprising a computer usable medium embodying computer usable program code for single instruction multiple data (SIMD) parallel loop code generation, the computer program product comprising:
-
computer usable program code for identifying a loop in a representation of source code in a code compilation data processing system; computer usable program code for selecting a trip count condition responsive to a scheduling policy set for the code compilation data processing system and also responsive to a minimal simdizable threshold; computer usable program code for determining a trip count and an alignment constraint for the selected loop; and
,computer usable program code for generating a version of a parallel loop in the source code according to the alignment constraint and a comparison of the trip count to the trip count condition. - View Dependent Claims (10, 11, 12, 13)
-
Specification