Workshop
on New Horizons in Compilers
December 21, 2005 --
Goa, India
Program Chairs: Uday Khedker and
Rahul Simha
General Chairs: R. Govindarajan
and Bhagi Narahari
Research Contributions
Trick - A Framework for Tracking and
ReusIng Compiler's Knowledge, S.M. Sandya, S. Doval, S.
Hariharan, and N.D. Das, Hewlett Packard India Software, Bangalore,
India. (NHC05-Sandya.pdf)
Comprehensive Analysis of Objects for
Efficient Handling of Java Objects , P.K. Kalle, IBM India
Software Labs., Bangalore, India. (NHC05-Kalle.pdf)
Informal Discussion:
What is the Next
Big Challenge in Compiling?
Invited Contributions
Dynamic Program Analysis, Invited Talk,
Sudheendra Hangal, Magic Lamp Software, India.
Compilers here! Compilers there! I see them
everywhere!, Invited Talk,
Santosh Pande, Georgia Institute of Technology, Atlanta, GA.
Static Analysis for Identifying and Allocating Clusters of Immortal
Objects, Invited Talk, Y.N. Srikant, Indian
Institute of Science, Bangalore, India.
Informal Discussion
What is
the Next Big Challenge in Compiling ?
The objective of this informal discussion session (for 30 - 45 minutes) is to
have interesting discussion on
-
Is compiler research relevant in today's context?
-
Is compiler research just applying existing techniques/ideas onto newer
domains (DSP/Power Aware/Embedded Systems/Network Processors?) -- are we
inventing or re-inventing?
-
What do we consider as the major break-through in compiler research in the
last 15 or 25 years?
-
What are the upcoming challenges in the compiling front?
We do not have any specific format in mind for the discussion. We expect all
participants to contribute to the discussion. Participants can use 1 or 2
slides or standup-and-speak!
Abstracts of Invited Contributions
Dynamic Program Analysis: Applications and
Challenges
Abstract:
In this talk
we will survey techniques and problems related to dynamic program analysis.
The availability of cheap computing power makes dynamic analysis feasible for
many programs, something which was not possible just a few years ago. We will
describe some of the existing and promising work in this area which can be
targetted for many different applications.
Biography:
Sudheendra Hangal
(sudheendra@cs.stanford.edu) is a co-founder of Magic
Lamp Software. Prior to
Magic Lamp, he was at Sun Microsystems for 9 years in the U.S. and in India,
where his work dealt with microprocessor and multiprocessor architecture,
verification, Java processors and virtual machines.
In 2004, his work was awarded the Sun Chairman's award for Innovation, Sun's
highest recognition. He has a master's degree with distinction in research
from Stanford University and a bachelor's degree from IIT Delhi, both in
computer science.
.
Compilers
here! Compilers there! I see them everywhere!!!
Abstract:
Compilers had
tremendous impact -- automation provided by compilers
propelled the technological leap of computing. After the invention of
Turing Machine in 1937 by Alan Turing, bounds of
computability became clear but computing mostly remained in
its infancy until early 60s when compilers provided a major
boost. The techniques devised by
John Backus and his team for FORTRAN I compiler are
considered one of the major inventions in the history of computing and
are so foundational that most modern compiler use them. Compilers had
tremendous side impact on architectures as well as evidenced by RISC
machines.
As we stand at the crossroads of tremendous technological
advancements in processor speeds, resources, and software
engineering, the big question that remains on the minds of
compiler researchers is the impactwill have going forward. To answer
this question, we take a look at what technology artifacts
compilers bring on the table. Automation is only one of the
artifacts provided by compilers; analysis, transformation and
optimizations being other attributes. While the problem of automation
might be nearly solved, newer problems in the areas of emerging systems
tremendously benefit from other artifacts compilers offer. Compilers can
now live up to the challenge of performing system wide
optimizations, security and vulnerability analysis, power management
on handhelds and penetrate and better manage systems layers including
dynamic runtime management and adaptations. We provide
concrete examples of such emerging horizons through case studies
involving a variety of domains from security to performance
scaling, from large scale systems to multicores. We look
also examine the industrial landscape and provide an
evidence of bottomline improvements due to the adaptation of
such a technology.
Biography:
Santosh Pande
(santosh@cc.gatech.edu) works on both static and dynamic sides of compiler
optimizations. His interests mainly lie in embedded computing, security
and multi-core platforms. He is leading the compiler research at
Georgia Tech and has had key papers on these topics in LCTES, CASES,
CGO, PLDI, ASPLOS and TOPLAS. He served as IEEE Distinguished Visitor
from 1996-2000 and serves on the editorial board of Journal of Embedded
Systems. He is on the steering committee of ACM SIGPLAN CONFERENCE ON
LANGUAGES COMPILERS AND TOOLS FOR EMBEDDED SYSTEMS and is one of the
founders of this conference. He is funded by NSF, DARPA and industries
such as Intel and Infineon.
Static Analysis for Identifying and Allocating
Clusters of Immortal Objects
Abstract:
As applications grow more complex, modern programming
languages feature Dynamic Storage Allocation that allows the programmer to
allocate and deallocate objects whose lifetimes are not bound by lexical
scope. Managing application memory manually is highly error prone since it is
not an easy task to determine the exact points in the program at which an
object is no longer needed. The solution to this problem is to absolve the
programmer from the responsibility of managing memory and have a separate
module: The Automatic Memory Manager whose function is to allocate objects and
give it to the program and conduct Garbage Collection, that is a process of
detecting unused memory and recycling it back for use by the program.
However Garbage Collection has its own cost and hence it becomes essential to
keep this cost at a minimum. One way of achieving this is to reclaim the
maximum amount of unused memory or garbage with the least number of effective
collections. Several previous works have indicated that an effective collector
needs to take into account certain vital object properties like lifetimes,
connectivity and types apart from traceability. This talk concentrates
on one such object property - Object Clustering. The goal of effective
collections is realized by identifying long living clusters of objects and
allocating them in a separate Mature Object Space that is not subject to
garbage collection. The idea is to avoid tracing objects that are going to
live till the end. Segregating objects this way leaves the heap for objects
with shorter lifetimes and now a typical collection can find more garbage than
before, making collections more effective.
We describe a compile-time cluster detection algorithm that recognizes
allocation sites
that contribute objects exhibiting clustering behavior in a program. The
clustering
optimization has been evaluated using a concurrent generational garbage
collector which is developed for Rotor, Microsoft's Shared Source
Implementation of the .NET framework.
Biography:
Y.N. Srikant
(srikant@csa.iisc.ernet.in) received his B.E in
Electronics from Bangalore University, and M.E and Ph.D in Computer Science
from the Computer Science and Automation department of the Indian Institute of
Science. He was the recipient of Young Scientist medal of the Indian National
Science Academy in 1988. His areas of interest are compiler design and
software components. He is the editor of a handbook on advanced compiler
design published by CRC Press in 2002. His most recent research includes code
generation for clustered architectures, compiler optimizations for power
reduction in embedded systems, JIT compilation and garbage collection,
efficient profiling and runtime performance improvement of programs. His major
industry collaborators have been Microsoft Research, Motorola, DAE, and Satyam
Computers(P) Ltd.
Srikant is currently a Professor in the Department of Computer Science and
Automation at the Indian Institute of Science in Bangalore.