Method and system for generating compact code for the loop unrolling transformation
US6035125A · kind A · utility
Assignee
Inventors
Key dates
| Filing date | Jul 25, 1997 |
| Grant date | Mar 7, 2000 |
| Priority date | — |
| Expiry date | Jul 25, 2017 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F8/452
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
Abstract
A loop unrolling trasformation specified by loop unrolling factors UF[1], . . . , UF[k] is performed on a perfect nest of k multiple loops to produce an unrolled loop representation as follows. Moving from the outermost loop to the innermost loop of the nest, the unroll factor UF[j] of the current loop is examined. First, the separate unrolled loop body is expanded by the specified unroll factor UF[j]. Second, the loop header for the current loop is adjusted so that if the loop's iteration count, COUNT[j], is known to be less than or equal to the unroll factor, UP[j], then the loop header is simply an assignment of the index variable to the lower-bound expression; otherwise, the loop header is adjusted so that the unrolled loop's iteration count equals .left brkt-bot.COUNT[J]/UF[J].right brkt-bot. a rounded down truncation of the division. Third, a remainder loop nest is generated, if needed. The size of the generated code when unrolling multiple nested loops is substantially reduced. The proportion of the object code comprising lower execution frequency remainder loops is also substantially reduced. The compile-time of unrolled multiple nested loops is also substantially reduced.
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.