|
PHOENIX AND SSCLI AWARDS – 2006
Compiler Support for Software Transactional Memory
Maurice Herlihy
Brown University, U.S.
We propose to develop a Phoenix-based compiler plug-in that will transparently
transform sequential objects into properly synchronized concurrent ones. There
are two broad areas where a compiler extension for SXM would make the API
substantially more attractive. First, it could provide a safer and easier-to-use
interface to the programmer. Second, it would permit pervasive optimizations
that are simply not possible using a library-based implementation.
Phoenix-Based Optimizing Compilers Course Development
Regeti Govindarajulu
Indian Institute of Information Technology, Hyderabad, India
The project is aimed at developing course-material for teaching a course on
optimizing compiler with a strong laboratory component. The following are the
expected outcomes: Development of course material for optimizing compilers with
strong practical assignments, Development of phoenix-based lab exercises in the
form of plug-ins and tools, The laboratory modules developed will be made freely
available to other institutes. Integrating Dynamic Slicing into the coredbg Debugger
Neelam Gupta
University of Arizona, U.S.
We aim to enhance the existing coredbg debugger to perform reverse execution,
i.e. to step backwards during the course of a program’s execution. We will use
this basic facility to implement demand-driven implementations of dynamic
slicing algorithms. Variants of dynamic slices (data slices, full slices, and
relevant slices) will be supported. Once we have implemented these algorithms,
we will then implement additional dynamic analyses that will enable selection
and pruning of dynamic slices. A Testbed for Studying the Order and Combination of
Code Optimization Phases
Michael Smith
Harvard University, U.S.
The ultimate goal of our research is to create an experimental testbed that
directly helps us to increase our fundamental knowledge of code optimization,
improve our understanding of the interaction between optimizations, and identify
profitable directions for new combined optimizations.
PTV: Translation Validation in the Phoenix Compiler
Framework
Lenore Zuck
University of Illinois at Chicago, U.S.
Benjamin Goldberg
New York University
There is a growing awareness, both in industry and academia, of the crucial role
of formally proving the correctness of systems. Most verification methods focus
on the verification of a specification with respect to a set of requirements, or
of high-level code with respect to a specification. Our ultimate goal is to
develop a methodology for the translation validation of advanced optimizing
compilers built upon frameworks, like Phoenix, that provide a multi-language and
multi-platform (e.g. managed and unmanaged code) environment.
Phase Detection and Optimization
Chandra Krintz
University of California at Santa Barbara, U.S.
As part of the project that we propose herein, we plan to build upon and extend
our prior work to investigate two primary research foci: Online detection of
phase behavior and phase-aware feedback-directed optimization. We plan to
investigate and implement our techniques in Phoenix (for phase capture as well
as phase-aware optimization for a static compiler via Phoenix plugins) and SSCLI
(for phase-aware dynamic compilation and optimization).
Extending Dynamic Features of the SSCLI
Francisco Ortin
University of Oviedo, Spain
This research topic is based on the need to dynamically modify running
applications in systems that must be adapted to changes in their environment
without being halted, modified, recompiled and restarted. Examples are
long-running systems or monitoring and debugging components. AOP is based on
program transformation and in DAOP this transformation takes place at runtime.
The capabilities needed to create DAOP applications are offered by dynamic
languages by means of structural reflection, dynamic code generation and dynamic
typing features. A Lua Compiler for the Phoenix Framework
Fábio Mascarenhas
Pontifícia Universidade Católica do Rio de Janeiro, Brazil
We expect to produce a fully working compiler for the Lua language, fully
implemented in managed code, with both CIL and Phoenix IR back-ends.
Developing a Testing Framework for Security
Mary Lou Soffa
University of Virginia, U.S.
The overall goal of this research is to develop a testing framework for
detecting and managing security flaws. The key idea is to develop a set of
static analyses that are path sensitive and demand driven and can be used to
determine programs paths that lead to various types of vulnerabilities.
Using Phoenix in Anti-Virus Curricula
Jack Davidson
University of Virginia, USA
An anti-virus software course that uses Phoenix in the programming assignments
can introduce students to the use of compiler program analyses in the detection
of malicious code. A Viable Approach to Compiling Sequential Codes for
CMPs
David August
Princeton University, U.S.
Instruction-level data flow driven program refactoring is a promising approach
to extracting decoupled pipeline parallelism from sequential programs. A fairly
straight-forward implementation is able to extract parallelism from many SPEC
benchmarks and generate speedups of up to 20% on whole programs. In this work,
we expect to fully develop compiler technology that will produce speedups many
times the original proof of concept. Improving the Compilation of Lazy Functional Languages
Using Phoenix and the SSCLI
Andre Santos
Federal University of Pernambuco, Brazil
We propose to continue the development of the Haskell compiler for .NET,
pursuing a detailed analysis on the performance bottlenecks we have found, using
the new SSCLI version and Phoenix. For Phoenix, specifically, we intend to
integrate it to the backend of the compiler, in order to use it as a code
generator for the compiler and also as our code instrumentation and analysis
tool. A Phoenix-Based Tool for Data Flow Testing
Dragan Bojic
University of Belgrade, Serbia and Montenegro
The main outcome of the project should be a data flow testing tool, based on
Phoenix RDK. The tool will support dataflow test-adequacy criteria such as:
def-use, c-use, p-use, and all-use. We will also consider implementing other
criteria as well, such as all du-paths or interprocedural data flow testing
(global def-uses). Concurrency Support for Managed Code and Interactive
AsmL
Dean Rosenzweig
University of Zagreb, Croatia
We propose two variants of the project, depending on available resources. The
first variant includes SSCLI based runtime support for efficient execution of
finely grained potentially concurrent code over a transactional memory and a
Phoenix-based AsmL compiler. The second variant extends the first one with
optional support for contracts and plug-in architecture for external reasoning
tools.
SPBU for Phoenix (SPBU4PHX): A Set of Compiler
Development and AOP Tools Based on Phoenix
Vladimir Safonov
St. Petersburg University, Russia
The purpose of the project is to develop a set of state-of-the-art compiler
development and aspect-oriented programming tools based on Phoenix, as an
enhancement of our previous experience of developing Aspect.NET project on top
of Phoenix, and of our 30 years experience in compiler development area.
Adaptive Heap Size Control Using Phoenix and .NET
Virtual Machine
Chen Ding
University of Rochester, U.S.
At present, the task of memory management for garbage collected programs rests
completely at the control of the virtual machine. The goal of this research is
to explore ways where information of program behavior patterns could be used to
augment the default management policies. It will lead to program-specific
policies that adapt to the need of individual programs.
Region Memory System for Scalable Performance
Wei-Ngan Chin
National University of Singapore
We propose region-based memory system (as a complement to garbage-collected
heap) whereby objects with similar lifetimes are placed into the same region,
whenever possible. We explore techniques to make region inference more precise
and predictable for scalable performance to be achieved for large-scale
applications. We intend for this project to be conducted under the Phoenix/SSCLI
platform to allow support for a wide range of processor architectures, including
those suitable for real-time and embedded systems. |