Jack W. Davidson

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....

Abstract (2008)

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...

SOFTWARE—PRACTICE AND EXPERIENCE. VOL 21(2), 149–165 (FEBRUARY 1991) Methods for Saving and Restoring Register Values across Function Calls (2007)

Jack W. Davidson, B. Whalley

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...

September 28 (3:30pm) ACM Transactions on Programming Languages and Systems Construction of Systems Software Using Specifications of Procedure Calling Conventions (2007)

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...

To Their Mothers (2007)

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...

Secure and practical defense against code-injection attacks using software dynamic translation (2006)

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....

Secure and practical defense against code-injection attacks using software dynamic translation (2006)

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...

Secure and practical defense against code-injection attacks using software dynamic translation (2006)

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...

Approvals (2005)

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...

APPROVAL SHEET (2002)

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...

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...

Presented (1998)

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...

a Retrospective (1997)

Jack W. Davidson

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...

Target-sensitive construction of diagnostic programs for procedure calling sequence generators (1996)

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)

Mark 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...

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 Architecture Study and Experimentation (1990)

Jack W. Davidson, B. Whalley

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...