At present there exist three main schools of thought for improving single-threaded program performance using hardware: increasing frequency, increasing parallelism, and decreasing the number of instructions executed. This thesis examines the impact of trying to decrease the number of executed instructions by speculatively jumping past regions of code that have no net effect on program state. By utilizing a combination of software and hardware, more aggressive performance options are available for exploitation. This analysis shows that many programs exhibit large percentages of dynamic instructions that can be bypassed for various reasons. Such reasons include unused calculations, redundant calculations, code that merely asserts some conditi...
Recovery functionality has many applications in computing systems, from speculation recovery in mode...
The increasing density of VLSI circuits has motivated research into ways to utilize large area budge...
Fixing runtime bugs in long running programs using tracing based analyses such as dynamic slicing wa...
We observe a non-negligible fraction---3 to 16% in our benchmarks ---of dynamically dead instruction...
Instructions executed by the processor are dynamically dead if the values they produce are not used ...
A processor executes the full dynamic instruction stream in order to compute the final output of a p...
Faults are common-place and inevitable in complex applications. Hence, automated techniques are nece...
Abstract. This paper presents a dynamic program analysis algorithm that can detect deadlock potentia...
Last-level caches bridge the speed gap between processors and the off-chip memory hierarchy and redu...
While dynamic languages are now mainstream choices for application development, most popular dynamic...
The complexity of modern software makes it difficult to ship correct programs. Errors can cost money...
Last-level caches (LLCs) bridge the processor/memory speed gap and reduce energy consumed per access...
In the modern era of wire-dominated architectures, specific effort must be made to reduce needless c...
Out-of-order execution is one of the main micro-architectural techniques used to improve the perform...
Several ILP limit studies indicate the presence of considerable ILP across dynamically far-apart ins...
Recovery functionality has many applications in computing systems, from speculation recovery in mode...
The increasing density of VLSI circuits has motivated research into ways to utilize large area budge...
Fixing runtime bugs in long running programs using tracing based analyses such as dynamic slicing wa...
We observe a non-negligible fraction---3 to 16% in our benchmarks ---of dynamically dead instruction...
Instructions executed by the processor are dynamically dead if the values they produce are not used ...
A processor executes the full dynamic instruction stream in order to compute the final output of a p...
Faults are common-place and inevitable in complex applications. Hence, automated techniques are nece...
Abstract. This paper presents a dynamic program analysis algorithm that can detect deadlock potentia...
Last-level caches bridge the speed gap between processors and the off-chip memory hierarchy and redu...
While dynamic languages are now mainstream choices for application development, most popular dynamic...
The complexity of modern software makes it difficult to ship correct programs. Errors can cost money...
Last-level caches (LLCs) bridge the processor/memory speed gap and reduce energy consumed per access...
In the modern era of wire-dominated architectures, specific effort must be made to reduce needless c...
Out-of-order execution is one of the main micro-architectural techniques used to improve the perform...
Several ILP limit studies indicate the presence of considerable ILP across dynamically far-apart ins...
Recovery functionality has many applications in computing systems, from speculation recovery in mode...
The increasing density of VLSI circuits has motivated research into ways to utilize large area budge...
Fixing runtime bugs in long running programs using tracing based analyses such as dynamic slicing wa...