• DocumentCode
    1398896
  • Title

    Module scheduling with reduced register pressure

  • Author

    Llosa, Josep ; Valero, Mateo ; Agyuade, E. ; González, Antonio

  • Author_Institution
    Dept. d´´Arquitectura de Computadors, Univ. Politecnica de Catalunya, Barcelona, Spain
  • Volume
    47
  • Issue
    6
  • fYear
    1998
  • fDate
    6/1/1998 12:00:00 AM
  • Firstpage
    625
  • Lastpage
    638
  • Abstract
    Software pipelining is a scheduling technique that is used by some product compilers in order to expose more instruction level parallelism out of innermost loops. Module scheduling refers to a class of algorithms for software pipelining. Most previous research on module scheduling has focused on reducing the number of cycles between the initiation of consecutive iterations (which is termed II) but has not considered the effect of the register pressure of the produced schedules. The register pressure increases as the instruction level parallelism increases. When the register requirements of a schedule are higher than the available number of registers, the loop must be rescheduled perhaps with a higher II. Therefore, the register pressure has an important impact on the performance of a schedule. This paper presents a novel heuristic module scheduling strategy that tries to generate schedules with the lowest II, and, from all the possible schedules with such II, it tries to select that with the lowest register requirements. The proposed method has been implemented in an experimental compiler and has been tested for the Perfect Club benchmarks. The results show that the proposed method achieves an optimal II for at least 97.5 percent of the loops and its compilation time is comparable to a conventional top-down approach, whereas the register requirements are lower. In addition, the proposed method is compared with some other existing methods. The results indicate that the proposed method performs better than other heuristic methods and almost as well as linear programming methods, which obtain optimal solutions but are impractical for product compilers because their computing cost grows exponentially with the number of operations in the loop body
  • Keywords
    linear programming; parallel programming; pipeline processing; program compilers; compilers; heuristic methods; heuristic module scheduling strategy; instruction level parallelism; linear programming; module scheduling; product compilers; register pressure; register requirements; software pipelining; Benchmark testing; Computer Society; Linear programming; Parallel processing; Pipeline processing; Processor scheduling; Program processors; Registers; Scheduling algorithm; Software algorithms;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/12.689643
  • Filename
    689643