{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/81240"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/81240","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Static Program Analysis to Enhance Profile Independence in Instruction-Level Parallelism Compilation","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.","abstract_html":"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.","abstract_has_math":false,"creators":["Deitrich, Brian L."],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Electrical Engineering","degree_department":null,"school":null,"contributors":["Hwu, Wen-Mei W."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2015,"date_issued":"2015-09-25T20:10:11Z","date_published":"2015-09-25T20:10:11Z","updated_at":"2026-07-22T22:26:15Z","subjects":["Computer Science"],"languages":["eng"],"rights":[],"rights_urls":[],"identifier_entries":[{"key":"dc:identifier","label":"Identifier","values":["(MiAaPQ)AAI9904430"],"render_values":[{"text":"(MiAaPQ)AAI9904430","href":null,"code":true}]}]},"links":{"outbound_url":"http://hdl.handle.net/2142/81240","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Hwu, Wen-Mei W."]},{"key":"dc:creator","label":"Author","values":["Deitrich, Brian L."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2015-09-25T20:10:11Z","10000-01-01","1998"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Electrical Engineering"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Computer Science"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["eng"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/81240","(MiAaPQ)AAI9904430"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["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.","Made available in DSpace on 2015-09-25T20:10:11Z (GMT). No. of bitstreams: 2 license.txt: 4848 bytes, checksum: 96035ab3f5e1c23cc7138a224ce498bd (MD5) 9904430.pdf: 10202445 bytes, checksum: 7647ca5eee08199ef3eaa093c6adec5d (MD5) Previous issue date: 1998","Embargo set by: Seth Robbins for item 82521 Lift date: Forever Reason: Restricted to the U of I community idenfinitely during batch ingest of legacy ETDs","Restricted to the U of I community idenfinitely during batch ingest of legacy ETDs","U of I Only","220 p.","Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 1998."]},{"key":"dc:title","label":"Title","values":["Static Program Analysis to Enhance Profile Independence in Instruction-Level Parallelism Compilation"]}]}],"canonical_facts":{"dc:contributor":["Hwu, Wen-Mei W."],"dc:creator":["Deitrich, Brian L."],"dc:date":["2015-09-25T20:10:11Z","10000-01-01","1998"],"dc:description":["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.","Made available in DSpace on 2015-09-25T20:10:11Z (GMT). No. of bitstreams: 2 license.txt: 4848 bytes, checksum: 96035ab3f5e1c23cc7138a224ce498bd (MD5) 9904430.pdf: 10202445 bytes, checksum: 7647ca5eee08199ef3eaa093c6adec5d (MD5) Previous issue date: 1998","Embargo set by: Seth Robbins for item 82521 Lift date: Forever Reason: Restricted to the U of I community idenfinitely during batch ingest of legacy ETDs","Restricted to the U of I community idenfinitely during batch ingest of legacy ETDs","U of I Only","220 p.","Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 1998."],"dc:identifier":["http://hdl.handle.net/2142/81240","(MiAaPQ)AAI9904430"],"dc:language":["eng"],"dc:subject":["Computer Science"],"dc:title":["Static Program Analysis to Enhance Profile Independence in Instruction-Level Parallelism Compilation"],"dc:type":["text"],"thesis:degree_discipline":["Electrical Engineering"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:26:15Z"}