Charles Weems and Tim Richards University of Massachusetts Amherst

Slides:



Advertisements
Similar presentations
Programming Technologies, MIPT, April 7th, 2012 Introduction to Binary Translation Technology Roman Sokolov SMWare
Advertisements

Program Representations. Representing programs Goals.
Carnegie Mellon Lessons From Building Spiral The C Of My Dreams Franz Franchetti Carnegie Mellon University Lessons From Building Spiral The C Of My Dreams.
Enabling Efficient On-the-fly Microarchitecture Simulation Thierry Lafage September 2000.
Modern Compiler Internal Representations Silvius Rus 1/23/2002.
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Term Project Overview Yong Wang. Introduction Goal –familiarize with the design and implementation of a simple pipelined RISC processor What to do –Build.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
February 21, 2008 Center for Hybrid and Embedded Software Systems Mapping A Timed Functional Specification to a Precision.
From Cooper & Torczon1 Implications Must recognize legal (and illegal) programs Must generate correct code Must manage storage of all variables (and code)
Introduction & Overview CS4533 from Cooper & Torczon.
Ronny Krashinsky Seongmoo Heo Michael Zhang Krste Asanovic MIT Laboratory for Computer Science SyCHOSys Synchronous.
CS-2710 Computer Organization Dr. Mark L. Hornick web: faculty-web.msoe.edu/hornick – CS-2710 info syllabus, homework, labs… –
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
Instruction Selection II CS 671 February 26, 2008.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Java Virtual Machine Case Study on the Design of JikesRVM.
1 Fast and Efficient Partial Code Reordering Xianglong Huang (UT Austin, Adverplex) Stephen M. Blackburn (Intel) David Grove (IBM) Kathryn McKinley (UT.
Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary.
Presentation by Tom Hummel OverSoC: A Framework for the Exploration of RTOS for RSoC Platforms.
Transmeta’s New Processor Another way to design CPU By Wu Cheng
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 2 Computer Organization.
A Binary Agent Technology for COTS Software Integrity Anant Agarwal Richard Schooler.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science John Cavazos J Eliot B Moss Architecture and Language Implementation Lab University.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Review for Quiz-1 Applied Operating System Concepts Patterson & Hennessy Chap.s 1,2,6,7 ECE3055b, Spring 2005
4/27/2000 A Framework for Evaluating Programming Models for Embedded CMP Systems Niraj Shah Mel Tsai CS252 Final Project.
Presented by : A best website designer company. Chapter 1 Introduction Prof Chung. 1.
Compilers: History and Context COMP Outline Compilers and languages Compilers and architectures – parallelism – memory hierarchies Other uses.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
Introduction to Operating Systems Concepts
Computer Basics.
CHaRy Software Synthesis for Hard Real-Time Systems
CS 404 Introduction to Compiler Design
Topics to be covered Instruction Execution Characteristics
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
Computer Organization
Reza Yazdani Albert Segura José-María Arnau Antonio González
Chapter 1 Introduction.
Introduction to Compiler Construction
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Compiler Chapter 9. Intermediate Languages
Chapter 1 Introduction.
课程名 编译原理 Compiling Techniques
Introduction Enosis Learning.
Morgan Kaufmann Publishers
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
CSCI/CMPE 3334 Systems Programming
A Review of Processor Design Flow
What we need to be able to count to tune programs
Introduction Enosis Learning.
Chapter 4: Threads.
Computers: Hardware and Software
How much does OS operation impact your code’s performance?
Simulation of computer system
Compiler Construction
A High Performance SoC: PkunityTM
Architectural Support for OS
Chapter 7 –Implementation Issues
CSE451 Virtual Memory Paging Autumn 2002
Introduction to Virtual Machines
Architectural Support for OS
Course Outline for Computer Architecture
Introduction to Virtual Machines
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Computer Architecture
Reasons To Study Programming Languages
UNISIM (UNIted SIMulation Environment) walkthrough
Introduction to Computer Systems Engineering
JIT Compiler Design Maxine Virtual Machine Dhwani Pandya
Presentation transcript:

Charles Weems and Tim Richards University of Massachusetts Amherst CoGenT: Automatic Co-Generation of Compilers & Simulators for Dynamically Compiled Languages Eliot Moss, presenter Charles Weems and Tim Richards University of Massachusetts Amherst BARC 1/30/03

Plan of the talk Motivation Generating back-end components Generating simulator components Machine description languages Our approach

Motivation Performance of modern languages Explore hardware features Java as well as C, Fortran Dynamic compilation, GC, exceptions ... Explore hardware features Estimate performance (time, energy, …) Goal: good estimates of performance via simulation

We need a simulator that ... Supports new hardware feature(s) Has accurate performance measures Handles language implementation Dynamic code generation User-mode signal handlers Memory mapping, including SEGV

AND we need a compiler that ... Produces code for the (new) target Does so dynamically Optimizes competently for the target Hard if features very novel Not so bad for ordinary back-end tasks Instruction selection Register allocation Instruction scheduling

Need to automate all of this ... Hard to get simulators right Especially if you want them fast Time-consuming to develop them Can say the same about compilers Point: Generate both, automatically, from machine descriptions

Generating back-ends Prototype framework: Jikes RVM “Baseline” and optimizing compilers Instruction selection Register allocation Instruction scheduling Requires simple timing simulator

Generating back-end components BURS, Cattell, & Instruction selection Jikes RVM (compiler) Framework Machine descriptions Java bytecode semantics baseline compiler Machine Description ISA syntax & semantics Java bytecode semantics baseline compiler object layout LIR semantics BURS rules Machine Description ISA syntax & semantics LIR semantics BURS rules Machine Description ISA syntax & semantics register allocation info Instruction scheduler info simple instruction timing simulator

Generating back-end components Register allocation & Instruction scheduling Jikes RVM (compiler) Framework Machine descriptions baseline compiler object layout Machine Description ISA syntax & semantics object layout Java bytecode semantics BURS rules LIR semantics register allocation info Machine Description ISA syntax & semantics register allocation info Instruction scheduler info simple instruction timing simulator Machine Description ISA syntax & semantics Machine Description ISA syntax & semantics Instruction scheduler info simple instruction timing simulator

Generating simulator components Functional simulation Instruction semantics Memory contents/function OS calls Timing simulation Pipelines (instruction, FU timing) Caches, memories, busses, … Mix and match ISAs, pipelines, etc.

Additional simulator components Instrumentation and tracing Easy to adjust Debugging and control

Generating simulator components Functional simulation semantics support components Machine descriptions Simulator Framework Memory, addressing, program loading, environment, etc Machine Description ISA syntax & semantics functional simulator functional simulator Java bytecode semantics LIR semantics Cache models, TLB models, memory bus, etc timing simulator Machine Description ISA syntax & semantics debugging support Target pipeline description timing support components

Generating simulator components Timing simulation semantics support components Machine descriptions Simulator Framework Memory, addressing, program loading, environment, etc functional simulator Java bytecode semantics LIR semantics Cache models, TLB models, memory bus, etc Machine Description ISA syntax & semantics Target pipeline description timing simulator timing simulator Machine Description ISA syntax & semantics debugging support Target pipeline description timing support components

Machine description languages and their applications SLED [Ramsey and Fernández] λ-RTL [Ramsey and Davidson] Facile [Schnarr] MLRISC [George and Leung] Annotated pipeline graph [Milner] CCL [Bailey and Davidson] We will assemble the best from these

The CoGenT prototype Milner Schnarr Cattell SLED,MLRISC,λ-RTL,etc. Simulator Framework Machine descriptions Jikes RVM (compiler) Framework BURS rules baseline compiler LIR semantics Machine Description ISA syntax & semantics Java bytecode semantics baseline compiler timing simulator functional Machine Description ISA syntax & semantics functional simulator Support components object layout LIR semantics Machine Description ISA syntax & semantics Java bytecode semantics Target pipeline description Java bytecode semantics BURS rules timing simulator Instruction scheduler info simple instruction timing simulator timing simulator Target pipeline description LIR semantics register allocation info Machine Description ISA syntax & semantics debugging support Instruction scheduler info simple instruction timing simulator Target pipeline description