International Symposium on New Trends in Compiler Technology

Bjorn De Sutter <>
17 Jan 2002 00:28:22 -0500

          From comp.compilers

Related articles
International Symposium on New Trends in Compiler Technology (Bjorn De Sutter) (2002-01-17)
| List of all articles for this month |

From: Bjorn De Sutter <>
Newsgroups: comp.compilers
Date: 17 Jan 2002 00:28:22 -0500
Organization: Universiteit Gent
Keywords: conference
Posted-Date: 17 Jan 2002 00:28:22 EST

                    The Department of Electronics and Information Systems
                                          of Ghent University, Belgium


            International Symposium on New Trends in Compiler Technology

                                        Binary rewriting for faster and
                                    smaller programs, running everywhere


                                          March 7, 2002, Ghent, Belgium

Sponsored by
* FWO scientific research network program on acceleration by
    application-driven and architecture-driven code transformations
* Concerted research action (GOA) of the Universiteit Gent

With computation power doubling every 18 months according to Moore's
Law, hardware is still evolving at a very fast rate. Program execution
speed-ups due to improved compilation techniques however have only
doubled in the last 18 years, according to Proebsting's Law. For the
growing segment of embedded systems, with limited amounts of available
system memory, using classical compilers and modern engineering
techniques is still not always viable. Has the time come to look beyond

For some time now, binary rewriting has gained attention as a way to
speed-up program execution and to run programs compiled for one
platform on multiple platforms. Binary rewriting is also being applied
to reduce program sizes. This symposium presents some state-of-the-art
work on binary rewriting and on the generation of smaller programs. The
topics presented range from ongoing research to available commercial
products for both general-purpose and embedded systems.


9.00 AM Registration

9.15 AM Welcome address
                    Andreas De Leenheer, Rector, Universiteit Gent

9.30 AM The Cambridge DELI: A Dynamic Execution Layer Interface
                    Evelyn Duesterwald, Hewlett Packard Labs Cambridge,

10.30 AM Break

11.00 AM Building Virtual CPUs using Dynamite
                    Alasdair Rawsthorne, CTO, Transitive Technologies

11.45 AM A Tale of Two Systems: Experiences with Link-Time
                    Optimization on RISC and CISC Platforms
                    Saumya Debray, Prof. University of Arizona

12.30 PM Lunch

14.00 PM Practical Extraction Techniques for Java
                    Frank Tip, IBM T.J. Watson Research Center

14.45 PM The ARM Compiler - optimizing for code size
                    Wilco Dijkstra, Senior Software Engineer, ARM Ltd

15.30 PM And how about binary rewriting for program compaction?
                    Bjorn De Sutter, research assistant, Universiteit Gent,

16.15 PM End


Registration is done over the Internet only,


* The Cambridge DELI: A Dynamic Execution Layer Interface

    Evelyn Duesterwald, Hewlett Packard Labs Cambridge, Massachusetts

Caching, linking and then executing a private copy of executable code
is a technique that has been used to improve performance in many
different environments. For example, caching and linking has been
employed to avoid the repetition of work done to produce the executable
itself (in dynamic binary translators) or to permit performance-
enhancing transformations to the private copy (in dynamic optimisers).
The Cambridge DELI is a result of recognising the inherent value of
this technique. Rather than just using it in "point implementations",
we have extracted the underlying control functionality for caching and
linking and have opened it up to the OS and to higher layers of system
software and applications. To emphasise the novel aspect of this
facility as a control point or service layer we call it a "Dynamic
Execution Layer Interface", or DELI. Using the explicit interface of
the DELI, we are able to transparently take over control of the running
applications, enabling such services as translation, optimisation,
sandboxing, code patching, hardware virtualisation, remote code and
data streaming, and more.

* Building Virtual CPUs Using Dynamite

    Alasdair Rawsthorne, CTO, Transitive Technologies

Software emulation has gotten a well-deserved bad name for poor
performance. However, must software emulation be so slow? Can one
processor effectively, efficiently, and quickly emulate another?
Transmeta has already given us a tantalising glimpse of an affirmative
answer. Now, Transitive Technologies is ready to unleash a more general
solution to the problem of legacy software and ISA incompatibility.
Dynamite is an optimising dynamic binary code translator for the
PowerPC, Intel x86, ARM and MIPS architectures. It allows the execution
of a single binary program on multiple architectures, delivering exact
bit-wise compatibility, hardware-like reliability, maximum run-time
performance at native speed or better and complete transparency to the
end user.

* A Tale of Two Systems: Experiences with Link-Time Optimization on
    RISC and CISC Platforms

    Saumya Debray, Professor, University of Arizona

We describe our experiences with link-time code optimisation on two
very different systems: the Compaq Alpha, a RISC architecture; and the
Intel IA-32, a CISC architecture. Our results illustrate the effects of
architectural features on binary rewriting and link-time optimisation.

* Practical Extraction Techniques for Java

    Frank Tip, IBM T.J. Watson Research Center

Reducing application size is important for software that is distributed
via the internet, in order to keep download times manageable, and for
software that is deployed on embedded devices where memory is a scarce
resource. This presentation is concerned with the use of program
transformations such as the removal of dead methods and fields, the
inlining of method calls, and the transformation of the class hierarchy
for reducing application size. We implemented a number of these
techniques in Jax, an application extractor for Java, and evaluate
their effectiveness on a set of applications ranging from 45 to 2,326
classes (with archives ranging from 55,765 to 3,810,120 bytes). We
measured an average size reduction of 54.2% on these benchmarks.
Modelling dynamic language features such as reflection, and extracting
software distributions other than complete applications requires
additional user input. We present a uniform approach for supplying this
input in the form of MEL, a modular specification language for
specifying extraction.

* The ARM Compiler Technology - Optimising for Code Size

    Wilco Dijkstra, Senior Software Engineer, ARM Ltd

In the embedded world, producing efficient code is important: smaller
code can reduce memory cost, faster code can reduce power consumption
and the amount of hand optimised assembler. In the ARM compilers most
optimisations work together across many compilation stages (i.e.
"optimisation strategy"), reducing compiler complexity and allowing
more optimisation. Target specific operations are introduced early to
ensure later optimisations can benefit. The compiler uses pattern
matching to spot common idioms such as bit field operations and
replaces them with optimal code. Finally continuous incremental
improvements are possible by taking a quantitative approach to compiler
testing and benchmarking. Although the ARM compilers use various well-
known optimisations, these unique features allow them to produce
significantly smaller and faster code compared to other compilers that
target the ARM architecture.

* And how about Binary Rewriting for Program Compaction?

    Bjorn De Sutter, Research Assistant, Ghent University, Belgium

More and more computers are being incorporated in devices where the
available amount of memory is limited. As a result research is
increasingly focusing on the automated reduction of program size. So
far, binary rewriting has mainly been used for optimising execution
speed, for instrumenting programs or for executing programs on multiple
platforms. In this talk we describe how binary rewriting can be used to
deliver compact programs. Link-time techniques aimed at program
compaction are discussed and evaluated. These techniques include whole-
program constant propagation, liveness analysis, detection of dead code
and dead data and code factorisation. As a proof of concept, the
techniques were implemented in Squeeze, a prototype link-time program
compactor developed at the universities of Gent and Arizona. For a set
of benchmark programs, including MediaBench, Spec2000 and some C++
programs, the average code size reduction achieved is about 35%, with
peaks of up to 60%. On average, about 12% of the statically allocated
data of the programs is removed. As a bonus, the compacted programs are
about 5% faster on average.


The symposium will take place at Het Pand, Onderbergen 1, 9000 Gent.
Het Pand is a renovated monastery owned by the Ghent University. It is
located in the center of the city, and can be reached in the following

By public transportation: when arriving at the St.-Pieters Railway
Station, take tram 1, 10, 11 or 12 to the city center. Get off at
Korenmarkt and walk to Het Pand.

By car: When coming from the highway, take exit Gent Centrum and follow
the direction Centrum, then follow the parking route to parking P7.
Parking P7 is just across the street of Het Pand.

For more information and maps of the city:
[demime 0.98b removed an attachment of type text/x-vcard which had a name of brdsutte.vcf]

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.