Framework for efficient code generation using loop peeling for SIMD loop code with multiple misaligned statements
US7395531B2 · kind B2 · utility
Assignee
Inventors
Key dates
| Filing date | Aug 16, 2004 |
| Grant date | Jul 1, 2008 |
| Priority date | — |
| Expiry date | Sep 9, 2026 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F8/4441
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
Abstract
A system and method is provided for vectorizing misaligned references in compiled code for SIMD architectures that support only aligned loads and stores. In this framework, a loop is first simdized as if the memory unit imposes no alignment constraints. The compiler then inserts data reorganization operations to satisfy the actual alignment requirements of the hardware. Finally, the code generation algorithm generates SIMD codes based on the data reorganization graph, addressing realistic issues such as runtime alignments, unknown loop bounds, residual iteration counts, and multiple statements with arbitrary alignment combinations. Loop peeling is used to reduce the computational overhead associated with misaligned data. A loop prologue and epilogue are peeled from individual iterations in the simdized loop, and vector-splicing instructions are applied to the peeled iterations, while the steady-state loop body incurs no additional computational overhead.
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.