Security through Redundant Data Diversity (2009)
Anh Nguyen-tuong, David Evans, John C. Knight, Benjamin Cox, Jack W. Davidson
Unlike other diversity-based approaches, N-variant systems thwart attacks without requiring secrets. Instead, they use redundancy (to require an attacker to simultaneously compromise multiple...
ON THE USE OF COMPILERS IN DSP LABORATORY INSTRUCTION (2008)
Matthew D. Kleffner, Douglas L. Jones, Jason D. Hiser, Prasad Kulkarni, Julie Parent, Stephen Hines, ...
A modern DSP laboratory course should teach students how to quickly develop efficient applications using a mixture of C and assembly instructions. Since typical irregular DSP microprocessor...
Custom Wide Counterflow Pipelines for High-Performance Embedded Applications (2008)
Bruce R. Childers, Jack W. Davidson
Abstract—Application-specific instruction set processor (ASIP) design is a promising technique to meet the performance and cost goals of high-performance systems. ASIPs are especially valuable for...
Fragment Cache Management for Dynamic Binary Translators in Embedded Systems with Scratchpad (2008)
José Baiocchi, Bruce R. Childers, Jack W. Davidson, Jason D. Hiser, Jonathan Misurda
Dynamic binary translation (DBT) has been used to achieve numerous goals (e.g., better performance) for general-purpose computers. Recently, DBT has also attracted attention for embedded systems....
Apala Guha, Jason D. Hiser, Naveen Kumar, Jing Yang, Min Zhao, Shukang Zhou, ...
In today’s dynamic computing environments, the available resources and even underlying computation engine can change during the execution of a program. Additionally, current trends in software...
Fragment Cache Management for Dynamic Binary Translators in Embedded Systems with Scratchpad (2008)
José Baiocchi, Bruce R. Childers, Jack W. Davidson, Jason D. Hiser, Jonathan Misurda
Dynamic binary translation (DBT) has been used to achieve numerous goals (e.g., better performance) for general-purpose computers. Recently, DBT has also attracted attention for embedded systems....
ON THE USE OF COMPILERS IN DSP LABORATORY INSTRUCTION (2008)
Matthew D. Kleffner, Douglas L. Jones, Jason D. Hiser, Prasad Kulkarni, Julie Parent, Stephen Hines, ...
A modern DSP laboratory course should teach students how to quickly develop efficient applications using a mixture of C and assembly instructions. Since typical irregular DSP microprocessor...
Abstract Architectural Considerations for Application-Specific Counterflow Pipelines (2008)
Bruce R. Childers, Jack W. Davidson
Application-specific processor design is a promising approach for meeting the performance and cost goals of a system. Application-specific processors are especially promising for embedded systems...
ABSTRACT EMBARC: An Efficient Memory Bank Assignment Algorithm for Retargetable Compilers (2008)
Jason D. Hiser, Jack W. Davidson
Many architectures today, especially embedded systems, have multiple memory partitions, each with potentially different performance and energy characteristics. To meet the strict time-to-market...
Fast and efficient searches for effective optimization-phase sequences (2008)
Prasad A. Kulkarni, Stephen R. Hines, David B. Whalley, Jason D. Hiser, Jack W. Davidson, Douglas L. Jones
It has long been known that a fixed ordering of optimization phases will not produce the best code for every application. One approach for addressing this phase-ordering problem is to use an...
Memory Bandwidth Optimizations for Wide-Bus Machines (2008)
Michael A. Alex, Mark W. Bailey, Bruce R. Childers, Jack W. Davidson, Sanjay Jinturkar
One of the critical problems facing designers of high-performance processors is the disparity between processor speed and memory speed This has occurred because innovation and technological...
Memory Bandwidth Optimizations for Wide-Bus Machines (2008)
Michael A. Alex, Mark W. Bailey, Bruce R. Childers, Jack W. Davidson, Sanjay Jinturkar
One of the critical problems facing designers of highperformance processors is the disparity between processor speed and memory speed. This has occurred because innovation and technological...
The method used to save and restore the values of registers across function calls can affect performance and influence the design of specific instructions. This paper describes the results of an...
Memory Bandwidth Optimizations for Wide-Bus Machines (2007)
Michael J. Alex, Michael J. Alexander, Postal Address, Professor Jack, W. Davidson, Michael A. Alexander, ...
One of the critical problems facing designers of high performance processors is the disparity between processor speed and memory speed. This has occurred because innovation and technological...
Mark W. Bailey, Jack W. Davidson
The procedure calling convention impacts the operation of many system software components. The interface between procedures, which is established by the calling convention, facilitates separate...
W. Miksad, Alan P. Batson, Sally A. Mckee, Jack W. Davidson, ...
they have inspired and supported me more than can be imagined and
Evaluating Indirect Branch Handling Mechanisms (2007)
Jason D. Hiser, Daniel Williams, Jason Mars, Bruce R. Childers, Wei Hu, Jack W. Davidson
Software Dynamic Translation (SDT) systems are used for program instrumentation, dynamic optimization, security, intrusion detection, and many other uses. As noted by many researchers, a major source...
Wei Hu, Jason Hiser, Dan Williams, Adrian Filipi, Jack W. Davidson, David Evans, ...
One of the most common forms of security attacks involves exploiting a vulnerability to inject malicious code into an executing application and then cause the injected code to be executed. A...
Exhaustive optimization phase order space exploration (2006)
Prasad A. Kulkarni, David B. Whalley, Gary S. Tyson, Jack W. Davidson
The phase-ordering problem is a long standing issue for compiler writers. Most optimizing compilers typically have numerous different code-improving phases, many of which can be applied in any order....
Modularity in Design: Formal Modeling and Automated Analysis (2006)
Yuanfang Cai, Yuanfang Cai, Mary Lou, E. Soffa, William G. Griswold, ...
People have long recognized that evolvability, achieved most fundamentally by appropriate modu-larity in design, can have enormous technical, organizational and economic value. However, achiev-ing...
Exhaustive optimization phase order space exploration (2006)
Prasad A. Kulkarni, David B. Whalley, Gary S. Tyson, Jack W. Davidson
The phase-ordering problem is a long standing issue for compiler writers. Most optimizing compilers typically have numerous different code-improving phases, many of which can be applied in any order....
Wei Hu, Jason Hiser, Dan Williams, Adrian Filipi, Jack W. Davidson, David Evans, ...
One of the most common forms of security attacks involves exploiting a vulnerability to inject malicious code into an executing application and then cause the injected code to be executed. A...
Evaluating fragment construction policies for sdt systems (2006)
Jason D. Hiser, Daniel Williams, Bruce R. Childers, Adrian Filipi, Jack W. Davidson
Software Dynamic Translation (SDT) systems have been used for program instrumentation, dynamic optimization, security policy enforcement, intrusion detection, and many other uses. To be widely...
Wei Hu, Jason Hiser, Dan Williams, Adrian Filipi, Jack W. Davidson, David Evans, ...
One of the most common forms of security attacks involves exploiting a vulnerability to inject malicious code into an executing application and then cause the injected code to be executed. A...
Hridesh Rajan, Hridesh Rajan, Mary Lou Soffa, Jack W. Davidson, ...
The dominant family of aspect-oriented programming (AOP) languages, namely the family of lan-guages based on the AspectJ model, provides aspects as a new abstraction mechanism separate from classes....
Automatic detection and diagnosis of faults in generated code for procedure calls (2003)
Jack W. Davidson, Mark W. Bailey, Mark W. Bailey
In this paper we present a compiler testing technique that closes the gap between existing compiler implementations and correct compilers. Using formal specifications of procedure calling...
Automatic detection and diagnosis of faults in generated code for procedure calls (2003)
Mark W. Bailey, Jack W. Davidson, Ieee Computer Society
Abstract—In this paper, we present a compiler testing technique that closes the gap between existing compiler implementations and correct compilers. Using formal specifications of procedure-calling...
Continuous compilation: A new approach to aggressive and adaptive code transformation (2003)
Bruce Childers, Jack W. Davidson, Mary Lou Soffa
Over the past several decades, the compiler research community has developed a number of sophisticated and powerful algorithms for a varierty of code improvements. While there are still promising...
Rashmi Srinivasa, Jack W. Davidson, Ronald D. Williams, Dean Richard, W. Miksad
Concurrency control is an integral part of a database system. Devising a concurrency control technique that has a low lost opportunity cost and a low restart cost is a hard problem. The...
Vista: a system for interactive code improvement (2002)
Wankang Zhao, Baosheng Cai, David Whalley, Mark W. Bailey, Robert Van Engelen, Xin Yuan, ...
Software designers face many challenges when developing applications for embedded systems. A major challenge is meeting the conflicting constraints of speed, code density, and power consumption....
Vista: a system for interactive code improvement (2002)
Wankang Zhao, Baosheng Cai, David Whalley, Mark W. Bailey, Robert Van Engelen, Xin Yuan, ...
Softwarc dcsigncrs facc many challcngcs whcn dcvcloping apphcations for embedded systems. A major challenge is meeting the conflicting constraints of speed, code density, and power consumption....
Network-Aided Concurrency Control in Distributed Databases (2002)
W. Miksad, James C. French, Jack W. Davidson, Ronald D. Williams, Rashmi Srinivasa, Rashmi Srinivasa, ...
Concurrency control is an integral part of a database system. Devising a concurrency control technique that has a low lost opportunity cost and a low restart cost is a hard problem. The...
Vista: a system for interactive code improvement (2002)
Wankang Zhao, Baosheng Cai, David Whalley, Mark W. Bailey, Robert Van Engelen, Xin Yuan, ...
Software designers face many challenges when developing applications for embedded systems. A major challenge is meeting the conflicting constraints of speed, code density, and power consumption....
Low-overhead software dynamic translation (2001)
Kevin Scott, Jack W. Davidson, Kevin Skadron
Software dynamic translation (SDT) is a technology that allows programs to be modified as they are running. The overhead of monitoring and modifying a running program’s instructions is often...
Cohoon, James P., Davidson, Jack W., McCracken, Daniel D (introd.)
Traducción de: C++ Program Design. An Introduction to Programming and Object-Oriented Design
Cohoon, James P., Davidson, Jack W., McCracken, Daniel D (introd.)
Traducción de: C++ Program Design. An Introduction to Programming and Object-Oriented Design
Common Characteristics with Attributes and Metrics (2000)
Naveen Kumar, Bruce R. Childers, Daniel Williams, Jack W. Davidson, Mary Lou Soffa
Software dynamic translation (SDT) is a technology for modifying programs as they are running. The overhead of monitoring and modifying a running program’s instructions is often substantial in SDT...
Automatic Design of Custom Wide-Issue Counterflow Pipelines (1999)
Bruce R. Childers, Jack W. Davidson
Application-specific processor design is a promising approach for meeting the performance and cost goals of a system. Application-specific integrated processors (ASIP's) are especially promising...
The Design of EzWindows: A Graphics API for an Introductory Programming Course (1998)
Childers, Bruce R., Cohoon, James P., Davidson, Jack W., Valle, Peter
Teaching object-oriented programming in an introductory programming course poses considerable challenges to the instructor. An often advocated approach to meeting this challenge is the use of a...
E. Brown, Jack W. Davidson, Andrew S. Grimshaw, C. Craig Williams, ...
We apply techniques based on isotach logical time to the problem of maintaining a coherent shared memory. In isotach logical time systems, processes can predict and con-trol the logical times at...
Machine descriptions to build tools for embedded systems (1998)
Norman Ramsey, Jack W. Davidson
- CSDL should support a variety of machine-level tools while remaining inde-pendent of any one in particular.
Machine Descriptions to Build Tools for Embedded Systems (1998)
Norman Ramsey, Jack W. Davidson
. Because of poor tools, developing embedded systems can be unnecessarily hard. Machine descriptions based on register-transfer lists (RTLs) have proven useful in building retargetable compilers, but...
Logical Time Coherence Maintenance (1998)
Bronis De, W. Miksad, Donald E. Brown, Jack W. Davidson, Andrew S. Grimshaw, ...
We apply techniques based on isotach logical time to the problem of maintaining a coherent shared memory. In isotach logical time systems, processes can predict and control the logical times at which...
This paper was the last in a series about the retargetable peephole optimizer PO, and it was the only one to appear in a PLDI/CC conference. PO is perhaps best known for its influence on GCC...
Reusable application-dependent machine descriptions (1996)
Mark W. Bailey, Jack W. Davidson
The proliferation of high-performance microprocessors in recent years has made the development of systems software, such as compilers, assemblers, linkers, debuggers, simulators, and other related...
Mark W. Bailey, Jack W. Davidson
Building compilers that generate correct code is difficult. In this paper we present a compiler testing technique that closes the gap between actual compiler implementations and correct compilers....
Reusable application-dependent machine descriptions (1996)
Mark W. Bailey, Jack W. Davidson
The proliferation of high-performance microprocessors in recent years has made the development of systems software, such as compilers, assemblers, linkers, debuggers, simulators, and other related...
Improving instruction-level parallelism by loop unrolling and dynamic memory disambiguation (1995)
Jack W. Davidson, Sanjay Jinturkar
Exploitation of instruction-level parallelism is an effective mechanism for improving the performance of modern super-scalar/VLIW processors. Various software techniques can be applied to increase...
A formal model and specification language for procedure calling conventions (1995)
Mark W. Bailey, Jack W. Davidson
Procedure calling conventions are used to provide uniform procedure-call interfaces. Applications, such as compilers and debuggers, which generate, or process procedures at the machinelanguage...
An Aggressive Approach to Loop Unrolling (1995)
Jack W. Davidson, Sanjay Jinturkar
A well-known code transformation for improving the execution performance of a program is loop unrolling. The most obvious benefit of unrolling a loop is that the transformed loop usually, but not...
Computing System Descriptions for Systems Software (1995)
The proliferation of high-performance microprocessors in recent years has made the development of systems software, such as compilers, assemblers, linkers, debuggers, simulators, and other related...
A formal model and specification language for procedure calling conventions (1995)
Mark W. Bailey, Jack W. Davidson
Procedure calling conventions are used to provide uniform procedure-call interfaces. Applications, such as compilers and debuggers, which generate, or process procedures at the machinelanguage...
Memory Access Coalescing: A Technique for Eliminating Redundant Memory Accesses (1994)
Jack W. Davidson, Sanjay Jinturkar
As microprocessor speeds increase, memory bandwidth is increasingly the performance bottleneck for microprocessors. This has occurred because innovation and technological improvements in processor...
Target-specific Global Code Improvement: Principles and Applications (1994)
Manuel E. Benitez, Jack W. Davidson
This article describes the key principles behind the design and implementation of a global code improver that has been use to construct several high-quality compilers and other program transformation...
The Advantages of Machine-Dependent Global Optimization (1994)
Manuel Benitez, Jack W. Davidson
machine designers have long recognized this dilemma. In 1972, Newey, Poole, and Waite [Newe79] observed that `Most problems will suggest a number of specialized operations which could possibly be...
A Formal Model for Procedure Calling Conventions (1994)
Mark W. Bailey, Mark W. Bailey, Jack W. Davidson, Jack W. Davidson
Procedures, or functions, in programming languages work in concert to implement the intended function of programs. To facilitate this cooperation between procedures, we must accurately specify the...
Register Deprivation Measurements (1993)
Manuel E. Benitez, Manuel E. Benitez, Jack W. Davidson, Jack W. Davidson
The development of register deprivation measurements was motivated by the desire to study the effect that register demand has on code improvement and register allocation strategies. In addition to...
A Retargetable Integrated Code Improver (1993)
Manuel Benitez, Manuel E. Benitez, Jack W. Davidson, Jack W. Davidson
We present a retargetable, machine-level framework that tightly integrates the three primary functions performed by an optimizer: code generation, register allocation and code improvements. This...
A Formal Specification for Procedure Calling Conventions (1993)
Mark W. Bailey, Jack W. Davidson
1 Introduction Procedures, or functions, in programming languages work in concert to implement the intended function of programs. To facilitate this cooperation between procedures, we must accurately...
Memory Bandwidth Optimizations for Wide-Bus Machines (1992)
Michael J. Alexander, Michael J. Alexander, Postal Address, Professor Jack, Jack W. Davidson, Michael A. Alexander, ...
One of the critical problems facing designers of high performance processors is the disparity between processor speed and memory speed. This has occurred because innovation and technological...
Relating Static and Dynamic Machine Code Measurements (1992)
Jack W. Davidson, John R. Rabung, David B. Whalley
In an effort to relate static measurements of machine code instructions and addressing modes to their dynamic counterparts, both types of measurements were made on nine different machines using a...
A Design Environment for Addressing Architecture and Compiler Interactions (1991)
Jack W. Davidson, David B. Whalley
This paper presents an environment that integrates the tasks of translating a source program to machine instructions for a proposed architecture, imitating the execution of these instructions, and...
EASE: An Environment for Arcitecture Study and . . . (1990)
This paper describes an environment called ease
Ease: An Environment for Architecture Study and Experimentation (1990)
Gathering detailed measurements of the execution behavior of an instruction set architecture is difficult. There are two major problems that must be solved. First, for meaningful measurements to be...
Quick Compilers Using Peephole Optimization (1989)
Jack W. Davidson, David B. Whalley
machine modeling is a popular technique for developing portable compilers. A compiler can be quickly realized by translating the abstract machine operations to target machine operations. The problem...
ACM Transactions on Programming Languages and Systems September 28 (3:30pm (1988)
Mark W. Bailey, Jack W. Davidson
Applications, such as compilers and debuggers, which generate, or process procedures at the machine-language abstraction level require knowledge of the procedure calling convention. Currently,...
Code selection through object code optimization (1984)
Jack W. Davidson, Christopher W. Fraser
This paper shows how thorough object code optimization has simplified a compiler and made it easy to retarget. The code generator forgoes case analysis and emits naive code that is improved by a...
Code selection through object code optimization (1984)
Jack W. Davidson, Christopher W. Fraser
This paper shows how thorough object code optimization has simplified a compiler and made it easy to retarget. The code generator forgoes case analysis and emits naive code that is improved by a...
Simplifying code generation through peephole optimization /--Jack W. Davidson. (1981)
Thesis (Ph. D.)--University of Arizona, 1981.