by Hideki Saito, Nicholas Stavrakos, Steven Carroll, Constantine Polychronopoulos, Alex Nicolau
http://sparta.csrd.uiuc.edu/~saito/work/CSRD-TR/1539r1.ps.gz
Add To MetaCart
Abstract:
Abstract. PROMIS is a multilingual, parallelizing, and retargetable compiler with an integrated frontend and backend operating on a single unified/universal intermediate representation. This paper describes the organization and the major features of the PROMIS compiler. PROMIS exploits multiple levels of static and dynamic parallelism, ranging from task- and loop-level parallelism to instruction-level parallelism, based on a target architecture description. The frontend and the backend are integrated through a unified internal representation common to the high-level, the low-level, and the instruction-level analyses and transformations. The unified internal representation propagates hard to compute dependence information from the semantic rich frontend through the backend down to the code generator. Based on conditional algebra, the symbolic analyzer provides control sensitive and interprocedural information to the compiler. This information is used by other analysis and transformation passes to achieve highly optimized code. Symbolic analysis also helps statically quantify the effectiveness of transformations. The graphical user interface assists compiler development as well as application performance tuning. 1
Citations
|
639
|
Efficiently Computing Static Single Assignment Form and the Control Dependence Graph
– Cytron, Ferrante, et al.
- 1991
|
|
133
|
The program dependence web: a representation supporting control, data-, and demand-driven interpretation of imperative languages
– Ottenstein, Ballance, et al.
- 1990
|
|
101
|
Symbolic Analysis for Parallelizing Compilers
– Haghighat, Polychronopoulos
- 1996
|
|
87
|
Parafrase-2: An environment for parallelizing, partitioning, synchronizing, and scheduling programs on multiprocessors
– Polychronopoulos, Girkar, et al.
- 1989
|
|
54
|
et al. “SUIF: An Infrastructure for Research on Parallelizing and Optimizing
– Wilson
- 1994
|
|
48
|
ªAutomatic Array Privatization and Demand-Driven Symbolic Analysis,º
– Tu
- 1995
|
|
34
|
et al., Maximizing Multiprocessor Performance with the SUIF
– Hall
- 1996
|
|
26
|
The Hierarchical Task Graph as a Universal Intermediate Representation
– Girkar, Polychronopoulos
- 1994
|
|
21
|
Symbolic Analysis Techniques for Effective Automatic Parallelization
– Blume
- 1995
|
|
15
|
Illinois-Intel Multithreading Library: Multithreading Support for Intel Architecture Based Multiprocessor Systems
– Girkar, Haghighat, et al.
- 1998
|
|
8
|
et al. Effective automatic parallelization with polaris
– Blume
- 1995
|
|
8
|
Achieving multi-level parallelization
– Brownhill, Nicolau, et al.
- 1997
|
|
6
|
The PROMIS compiler prototype
– Brownhill, Nicolau, et al.
- 1997
|
|
2
|
The EVE Mutation Scheduling Compiler: Adaptive Code Generation for Advanced Microprocessors
– Noback
- 1997
|
|
1
|
Frontend-backend integration for high-performance compilers
– Saito
- 1998
|
|
1
|
Compiler Group. Zephyr: Tools for a national compiler infrastructure. http://www.cs.virginia.edu/zephyr
– Zephyr
|