Patent · US Expired

Method and system for generating compact code for the loop unrolling transformation

US6035125A · kind A · utility

19Cited by
10References
18Claims
0Family size

Assignee

Inventors

Key dates

Filing dateJul 25, 1997
Grant dateMar 7, 2000
Priority date
Expiry dateJul 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.