• DocumentCode
    1398639
  • Title

    The Intel IA-64 compiler code generator

  • Author

    Bharadwaj, Jay ; Chen, William Y. ; Chuang, Weihaw ; Hoflehner, Gerolf ; Meneze, Kishore ; Muthukumar, Kalyan ; Pierce, Jim

  • Author_Institution
    Technol. Res. Labs., Intel Corp., Santa Clara, CA, USA
  • Volume
    20
  • Issue
    5
  • fYear
    2000
  • Firstpage
    44
  • Lastpage
    53
  • Abstract
    In planning the new EPIC (Explicitly Parallel Instruction Computing) architecture, Intel designers wanted to exploit the high level of instruction-level parallelism (ILP) found in application code. To accomplish this goal, they incorporated a powerful set of features such as control and data speculation, predication, register rotation, loop branches, and a large register file. By using these features, the compiler plays a crucial role in achieving the overall performance of an IA-64 platform. This paper describes the electron code generator (ECG), the component of Intel´s IA-64 production compiler that maximizes the benefits of these features. The ECG consists of multiple phases. The first phase, translation, converts the optimizer´s intermediate representation (ILO) of the program into the ECG IR. Predicate region formation, if conversion, and compare generation occur in the predication phase. The ECG contains two schedulers: the software pipeliner for targeted cyclic regions and the global code scheduler for all remaining regions. Both schedulers make use of control and data speculation. The software pipeliner also uses rotating registers, predication, and loop branches to generate efficient schedules for integer as well as floating-point loops
  • Keywords
    compiler generators; pipeline processing; Intel IA-64 compiler code generator; application code; data speculation; electron code generator; explicitly parallel instruction computing; floating-point loops; global code scheduler; instruction-level parallelism; loop branches; production compiler; register file; register rotation; software pipeliner; translation; Availability; Character generation; Computer aided instruction; Concurrent computing; Electrocardiography; Feedback; Network address translation; Parallel processing; Production; Registers;
  • fLanguage
    English
  • Journal_Title
    Micro, IEEE
  • Publisher
    ieee
  • ISSN
    0272-1732
  • Type

    jour

  • DOI
    10.1109/40.877949
  • Filename
    877949