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
Link To Document