MARCELO SILVA CINTRA
*******@***.***
OBJECTIVE
An intern position where I can contribute my experience with compiler technologies towards the
design and implementation of compiler transformations to enhance application performance.
RESEARCH INTERESTS
Virtual machines and dynamic compilation
Compiler techniques for parallelization, code generation and optimization
Feedback-directed optimizations
SUMMARY OF QUALIFICATIONS
Extensive knowledge of compiler techniques to enhance application performance.
Experienced at implementing system software in C, C++ and Java.
Proven experience working on a production C compiler and a research java virtual machine.
Knowledgeable with graph theory, algorithms (analysis and design), data structures, compilers,
code optimization, computer architecture and assembly language.
EDUCATIONAL BACKGROUND
1. PhD Candidate - Computer Science - In progress
University of California Irvine (UCI) Irvine CA, USA
Researching trace compilation, a novel Just-in-Time compilation technique that identifies
hot execution paths (loops) and dynamically records code traces.
I am currently investigating how to effectively detect program phase behavior, and use it to
guide optimization decisions inside runtime systems, such as virtual machines.
2. M.S. in Computer Science - April 2000
University of Campinas (UNICAMP) Campinas SP, Brazil
Project: Array Index Allocation using Static Single Assignment Form. A novel technique
was implemented to efficiently allocate address registers, taking advantage of auto-
increment (decrement) present on most DSP processors.
3. B.S. in Computer Science December 1997
Federal University of Mato Grosso do Sul (UFMS) - Campo Grande MS, Brazil
Designed and implemented a programming language, named PGL, that generated optimized
code for 8088 IBM/PC assembly language.
PROFESSIONAL EXPERIENCE
Systems Software Intern, Sun Microsystems, Santa Clara CA, USA
Sun Labs Summer 2009
Worked on a port of the HotSpot Client Compiler (C1), written in C++, to Java. The ported
version of C1 is called C1X, and its used as a JIT compiler by the meta-circular Maxine VM.
Developed two debugging tools for the high-level intermediate representation (HIR) of C1X: a
HIRchecker and a HIRInterpreter. Both tools were heavily used to test C1X.
Implemented a new optimization for C1X: loop peeling
Systems Software Engineer, Mindspeed Technologies, Newport Beach CA, USA
Systems on Chip Tools and Technologies Group May 2000 Aug 2002
Responsible for testing, support and maintenance of a C compiler to a DSP processor.
Fixed bugs, achieving bit accurate results after simulating the code produced by the compiler.
Improved compiler optimizations, reducing code size and improving execution time of
embedded applications.
Implemented a tool to convert binary files (OMF to ELF), and a disassembler.
Engineering Intern, Conexant Systems Inc., Newport Beach CA, USA
Systems on Chip and Tools Group Summer 1999
Implemented novel optimization technique in a C compiler, to efficiently allocate addressing
registers, enhancing the performance of generated code by 11%.
Evaluated the quality of code generated by Conexant s C compiler.
ACADEMIC TEACHING
Lecturer at the following Universities, in Brazil: FINOM, UCB, UNIEURO, UCDB, and UNAES
Computer Science, Computer Engineering and Information Systems Departments Nov 2002 Sept 2007
Courses taught: Analysis of Algorithms, Compiler Construction, Computer Organization and
Design, Operating Systems, Data Structures, Object Oriented Programming in Java, File
Compression and Organization, and Paradigms of Programming Languages.
Coach of the UCB team in the regional phase of ACM South American Collegiate
Programming Contest, Bras lia - DF (2005)
Site director of the regional phase of ACM South American Collegiate Programming Contest,
Campo Grande MS September 2006.
TECHNICAL SKILLS
Languages: Java, C++, C, Python, Pascal, Object Pascal, shell scripts, make and ant.
Tools: Eclipse, NetBeans, Visual Studio, gcc, yacc, lex, flex, gdb, emacs, latex, Delphi,
UML, CVS, SVN, Mercurial.
OS: Windows (all), Linux (Ubuntu and Debian), Unix and Mac OS.
PUBLICATIONS
Journal Publications
Global Array Reference Allocation. Guido Araujo, Guilherme Ottoni and Marcelo Cintra. ACM
Transactions on Design Automation of Electronic Systems, Vol. 7, No. 2, 336-357, April 2002.
Conferences & Workshops
Improving Compiler-Runtime Separation with XIR. Ben Titzer, Thomas Wuerthinger, Doug
Simon and Marcelo Cintra. VEE 2010 (to appear).
Phase Detection using Trace Compilation. Christian Wimmer, Marcelo Cintra, Michael
Bebenita, Mason Chang, Andreas Gal and Michael Franz. In Proceedings of the International
Conference on Principles and Practice of Programming in Java, pages 172 181. ACM Press, 2009.
Array Reference Allocation Using SSA-Form and Live Range Growth. Marcelo Cintra and G.
Araujo. Lecture Notes in Computer Science, Vol. 1985, 48+, July 2000.
DISTINCTIONS AND AWARDS
Current GPA is 3.9, out of 4.0.
Awarded a graduate scholarship from the Brazilian National Council for Scientific and
Technological Development (CNPq), to pursue the PhD degree at University California Irvine.
Research proposal was ranked 1st among all Computer Science proposals received by CNPq
(nationwide) in the year 2007.
FAPESP graduate fellowship to pursue the Master Degree in computer science, 1998-2000.
CNPq fellowship for scientific initiation research on statistics, 1996-1997.
Ranked 1st in Mathematics Olympic (in town) in the year 1990, and 3rd in the year 1993.
Ranked 2nd out of 680 applicants in the Undergraduate Selection Exam to the Computer
Science Undergraduate Program of Federal University of Mato Grosso do Sul 1994.
Ranked 1st in undergraduate class 1997 with GPA 8.3 out of 10.0.
Honorable mention for representing Federal University of Mato Grosso do Sul in the ACM
South American Collegiate Programming Contest, 1997 Campinas SP Brazil.