Static Program Analysis to Enhance Profile Independence in Instruction-Level Parallelism Compilation
Deitrich, Brian L.
This item is only available for download by members of the University of Illinois community. Students, faculty, and staff at the U of I may log in with your NetID and password to view the item. If you are trying to access an Illinois-restricted dissertation or thesis, you can request a copy through your library's Inter-Library Loan office or purchase a copy directly from ProQuest.
Permalink
https://hdl.handle.net/2142/81240
Description
Title
Static Program Analysis to Enhance Profile Independence in Instruction-Level Parallelism Compilation
Author(s)
Deitrich, Brian L.
Issue Date
1998
Doctoral Committee Chair(s)
Hwu, Wen-Mei W.
Department of Study
Electrical Engineering
Discipline
Electrical Engineering
Degree Granting Institution
University of Illinois at Urbana-Champaign
Degree Name
Ph.D.
Degree Level
Dissertation
Keyword(s)
Computer Science
Language
eng
Abstract
The objective of this dissertation is to provide a groundwork for an ILP compiler to effectively deal with all three of these issues through the use of static program analysis. For the case when no profiling is performed, this dissertation improves the state of the art in static branch prediction, and investigates the problems associated with static loop-trip-count prediction and static frequency generation. For the case of differing branch behavior, this dissertation proposes the use of the speculative hedge heuristic during acyclic scheduling. Speculative hedge minimizes its dependence on profile information through the use of static analysis, and similar techniques should be developed for other compiler heuristics. Finally, for the case when important code sections are unexercised, this dissertation proposes the use of loop grouping. Loop grouping is a new technique that identifies loops that iterate with the same loop control in multiple locations of the source code. These groups are used to statically predict loop behavior for loops that are untouched during program profiling. In this way, the compiler can extract information obtained during profiling and apply it to unexercised code. This allows much stronger predictions to be made about unexercised loops, potentially leading to better performance.
Use this login method if you
don't
have an
@illinois.edu
email address.
(Oops, I do have one)
IDEALS migrated to a new platform on June 23, 2022. If you created
your account prior to this date, you will have to reset your password
using the forgot-password link below.