Proceedings Article10.1145/605397.605419
Dynamic dead-instruction detection and elimination
J. Adam Butts,G. S. Sohi +1 more
- 01 Oct 2002
- Vol. 37, Iss: 10, pp 199-210
TL;DR: This work proposes a dead instruction predictor and presents a scheme to avoid the execution of predicted-dead instructions, freeing future compilers from the need to consider the costs of dead instructions, enabling more aggressive code motion and optimization.
read more
Abstract: We observe a non-negligible fraction--3 to 16% in our benchmarks--of dynamically dead instructions, dynamic instruction instances that generate unused results. The majority of these instructions arise from static instructions that also produce useful results. We find that compiler optimization (specifically instruction scheduling) creates a significant portion of these partially dead static instructions. We show that most of the dynamically instructions arise from a small set of static instructions that produce dead values most of the time.We leverage this locality by proposing a dead instruction predictor and presenting a scheme to avoid the execution of predicted-dead instructions. Our predictor achieves an accuracy of 93% while identifying over 91% of the dead instructions using less than 5 KB of state. We achieve such high accuracies by leveraging future control flow information (i.e., branch predictions) to distinguish between useless and useful instances of the same static instruction.We then present a mechanism to avoid the register allocation, instruction scheduling, and execution of predicted dead instructions. We measure reductions in resource utilization averaging over 5% and sometimes exceeding 10%, covering physical register management (allocation and freeing), register file read and write traffic, and data cache accesses. Performance improves by an average of 3.6% on an architecture exhibiting resource contention. Additionally, our scheme frees future compilers from the need to consider the costs of dead instructions, enabling more aggressive code motion and optimization. Simultaneously, it mitigates the need for good path profiling information in making inter-block code motion decisions.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
A systematic methodology to compute the architectural vulnerability factors for a high-performance microprocessor
Shubhendu S. Mukherjee,Christopher T. Weaver,Joel Emer,Steven K. Reinhardt,Todd Austin +4 more
- 03 Dec 2003
TL;DR: This paper identifies numerous cases, such as prefetches, dynamicallydead code, and wrong-path instructions, in which a fault will not affect correct execution, and shows AVFs of 28% and 9% for the instruction queue and execution units, respectively,averaged across dynamic sections of the entire CPU2000benchmark suite.
•Book
Architecture Design for Soft Errors
Shubu Mukherjee
- 07 Mar 2008
TL;DR: This book provides a comprehensive description of the architetural techniques to tackle the soft error problem, and covers the new methodologies for quantitative analysis of soft errors as well as novel, cost-effective architectural techniques to mitigate them.
Mobile-C: a mobile agent platform for mobile C-C++ agents
Bo Chen,Harry H. Cheng,Joe Palen +2 more
TL;DR: This article presents the design, implementation and application of Mobile-C, an IEEE Foundation for Intelligent Physical Agents (FIPA) compliant agent platform for mobile CsC++ agents, which conforms to the FIPA standards both at agent and platform level.
Using hardware vulnerability factors to enhance AVF analysis
Vilas Sridharan,David Kaeli +1 more
- 19 Jun 2010
TL;DR: The Hardware Vulnerability Factor (HVF) is introduced and analyzed to quantify the vulnerability of hardware and it is demonstrated that this technique can estimate AVF at runtime with an average absolute error of less than 3%.
RENO: A Rename-Based Instruction Optimizer
Vlad Petric,Tingting Sha,Amir Roth +2 more
- 01 May 2005
TL;DR: RENO is a modified MIPS R10000 register renamer that uses map-table "short-circuiting" to implement dynamic versions of several well-known static optimizations: move elimination, common subexpression elimination, register allocation, and constant folding and adds a dynamic version of constant folding, RENOCF.
References
Exploiting dead value information
Milo M. K. Martin,Amir Roth,Charles N. Fischer +2 more
- 01 Dec 1997
TL;DR: DVI provides assertions that certain register values are dead, meaning they will not be read before being overwritten, and allows the processor to manage physical registers efficiently, reducing the size requirements of the physical register file.
Procedure cloning
Keith D. Cooper,Mary Hall,Ken Kennedy +2 more
- 01 Jan 1992
TL;DR: A three-phase algorithm for deciding how to clone a program is presented, the algorithm finds potential improvements in forward interprocedural data-flow solutions and clones those procedures that lead to sharper information.
107
•Journal Article
Silence is golden
TL;DR: Nurses are unlikely to hear much about the NHS from the Tories this year, if shadow health minister John Maples' strategy goes according to plan, but he told Nursing Standard the Conservative Party is now willing to listen to you.
47
Three architectural models for compiler-controlled speculative execution
TL;DR: Three architectural models: restricted, general, and boosting, which have increasing amounts of support for removing hazards are discussed and the performance gained by each level of additional hardware support is analyzed using the IMPACT C compiler which performs superblock scheduling for superscalar and superpipelined processors.
37
Resource-sensitive profile-directed data flow analysis for code optimization
Rajiv Gupta,David A. Berson,Jesse Fang +2 more
- 01 Dec 1997
TL;DR: Data flow algorithms for performing optimization algorithms for partial dead code elimination and partial redundancy elimination with the following characteristics are developed: opportunities for PRE and PDE enabled by hoisting and sinking are exploited.
36