Speculative disambiguation: a compilation technique for dynamic memory disambiguation
- 17 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 200-210
- https://doi.org/10.1109/isca.1994.288149
Abstract
Ambiguous memory references have always been one of the main sources of performance bottlenecks. Many papers have addressed this problem using static disambiguation. These methods work extremely well when the memory access pattern is linear and predictable. However they are ineffective when the memory access pattern is nonlinear or when the access pattern cannot be determined statically. For these difficult problems, the authors present speculative disambiguation, a compilation technique for architectures supporting instruction level parallelism and either speculative execution or conditional execution (or both). This technique produces specialized code at compile time to disambiguate memory references at run time. It is shown that on machines with sufficient resources, the technique will always result in lower execution time. Speculative disambiguation has been implemented for a VLIW architecture with guarded execution. Preliminary results indicate that it can help bridge a significant fraction of the performance gap between a good and a perfect static disambiguator. Occasionally it can outperform the perfect static disambiguator.Keywords
This publication has 10 references indexed in Scilit:
- Effective Compiler Support For Predicated Execution Using The HyperblockPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Efficient superscalar performance through boostingPublished by Association for Computing Machinery (ACM) ,1992
- A practical algorithm for exact array dependence analysisCommunications of the ACM, 1992
- Efficient and exact data dependence analysisPublished by Association for Computing Machinery (ACM) ,1991
- Practical dependence testingPublished by Association for Computing Machinery (ACM) ,1991
- Run-time disambiguation: coping with statically unpredictable dependenciesIEEE Transactions on Computers, 1989
- Dependence Analysis for SupercomputingPublished by Springer Nature ,1988
- A VLIW architecture for a trace scheduling compilerACM SIGARCH Computer Architecture News, 1987
- Conversion of control dependence to data dependencePublished by Association for Computing Machinery (ACM) ,1983
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981