A Basis for Ubiquitous Virtual Machines

Total Page:16

File Type:pdf, Size:1020Kb

A Basis for Ubiquitous Virtual Machines Mite a basis for ubiquitous virtual machines Reuben Rhys Thomas St John's College A dissertation submitted for the Ph.D. degree November 2000 Ars est celare artem To Basil Rose, who did it first, and Tony Thomas, who hooked me. Preface Mite is a virtual machine intended to provide fast language and machine-neutral just-in-time translation of binary-portable object code into high quality native code, with a formal foundation. Chapter 1 discusses the need for fast good quality translation of portable code at run time, and, having considered what functionality is needed, sets out a list of goals that Mite should reach, then states the contribution of the thesis. Chapter 2 discusses related work, concentrating on the extent to which the various systems examined fulfil Mite's goals. Chapter 3 elaborates Mite's design, and chapter 4 anal- yses the choices that it makes. Chapter 5 examines the implementation, consisting of a C compiler back end targeting Mite and a virtual code translator for the ARM processor, and shows how it could be extended to other languages and processors. Chapter 6 describes and analyses a series of tests performed on the implementation, then assesses both the design and implementation in their light. Chapter 7 describes future work; finally, chapter 8 concludes the thesis with an appraisal of how well Mite meets its goals, and a final perspective. Appendices A–C give Mite's definition, appendix 6.1 lists two of the benchmark programs used in chapter 6, and appendix E gives the data collected from the tests. This dissertation is my own work and includes nothing resulting from collabora- tion. I owe many thanks. Alistair Turnbull's keen insight, blunt criticism and imagi- native advice elaborated in many hours of enjoyable discussion have cheered and smoothed my path. Simon Peyton Jones has been a smiling source of balanced en- couragement and criticism. Eugenia Cheng once again ran her merciless eagle eye over my text. Martin Richards supervised me with a light hand, and lit the murk of bureaucracy. Several kindly souls gave useful advice and help with tools, ideas and language; in particular, Dave Hanson and Chris Fraser advised me far beyond the call of duty in my abuse of their LCC compiler, and Arthur Norman gave useful advice on the shape a thesis should have. i ii Contents 1 Introduction 1 1.1 Motivation . 1 1.2 Scope and goals . 2 1.2.1 Required functionality . 2 1.2.2 Goals . 3 1.2.3 Non-goals . 4 1.3 Contribution of this thesis . 4 2 Context 6 2.1 Java VM . 6 2.2 Dis . 7 2.3 VCODE . 8 2.4 ANDF . 9 2.5 ¢¡£¡ . 10 2.6 TAL and TALx86 . 11 2.7 Other systems . 12 2.8 Comparison . 16 3 Design 18 3.1 Architecture . 18 3.1.1 Quantities . 18 3.1.1.1 Offsets and sizes . 18 3.1.2 Memory . 19 3.1.3 Stack . 19 3.1.4 The flags . 20 3.2 Instruction set . 20 3.2.1 Creating and destroying stack items . 20 3.2.2 Register assignment . 20 3.2.3 Data processing . 21 3.2.3.1 Simple arithmetic . 21 3.2.3.2 Division . 21 3.2.3.3 Logic and shifts . 22 3.2.3.4 Comparisons . 22 3.2.4 Addressing memory . 22 3.2.5 Branching . 23 iii Contents 3.2.6 Subroutines . 23 3.2.7 Functions . 24 3.2.8 Non-local exit . 26 3.2.9 Escape . 27 3.2.10 optimization directives . 27 3.3 Data . 27 3.4 Object format . 27 3.5 Pitfalls . 28 4 Rationale 30 4.1 Architecture . 30 4.1.1 Load-store three-address register model . 30 4.1.2 Memory . 32 4.1.3 Three-component numbers . 33 4.2 Registers . 34 4.2.1 Unlimited virtual registers . 34 4.2.2 Stack . 35 4.2.3 Numbering . 37 4.2.4 Sizes . 38 4.2.5 Constants . 38 4.3 The instruction set . 38 4.3.1 Registers . 39 4.3.1.1 Creation and destruction . 39 4.3.1.2 Ranking . 40 4.3.1.3 ¢¡¤£¦¥¨§ © . 41 4.3.2 Flags . 42 4.3.3 Function calling . 43 4.3.4 Division . 43 4.3.5 Escape . 44 4.3.6 Seeming superfluities . 44 ¤ 4.3.6.1 and . 44 ¢ 4.3.6.2 . 48 4.4 Object format . 48 4.5 Semantics . 49 4.6 Shortcomings . 49 4.7 Summary . 50 5 Implementation 52 5.1 Mite's components . 52 5.1.1 Assembler . 53 5.1.2 Translator . 53 5.1.3 Compiler back end . 54 5.1.4 Run-time system . 54 5.1.5 Standard library access . 54 iv Contents 5.2 A sample translation . 55 5.2.1 C code . 55 5.2.2 Translation to Mite virtual code . 55 5.2.3 Translation to ARM assembly . 59 5.2.3.1 Idiosyncratic code . 61 5.2.3.2 Physical register usage . 62 5.2.3.3 Immediate constants . 63 5.2.3.4 Address constants . 63 5.2.3.5 Register allocation and spilling . 63 5.2.4 Summary . 65 5.3 Optimizing compilation . 65 5.3.1 The test program . 65 5.3.2 LCC-style optimization . 66 5.3.3 GNU C-style optimization . 67 5.3.3.1 Hits . 68 5.3.3.2 Misses . 70 5.4 Other languages . 70 5.4.1 Static chains . 71 5.4.1.1 Putting variables in a chunk . 72 5.4.1.2 Walking the stack . 72 5.4.2 Exceptions . 73 5.4.2.1 C style exceptions . 73 5.4.2.2 Java style exceptions . 74 5.4.2.3 ML style exceptions . 75 5.4.3 Garbage collection . 76 5.4.3.1 Reference counting . 76 5.4.3.2 Conservative . 76 5.4.3.3 Accurate tracing . 76 5.5 Other target processors . 77 5.5.1 Flags without a dedicated register . 77 5.5.2.
Recommended publications
  • SNC: a Cloud Service Platform for Symbolic-Numeric Computation Using Just-In-Time Compilation
    This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCC.2017.2656088, IEEE Transactions on Cloud Computing IEEE TRANSACTIONS ON CLOUD COMPUTING 1 SNC: A Cloud Service Platform for Symbolic-Numeric Computation using Just-In-Time Compilation Peng Zhang1, Member, IEEE, Yueming Liu1, and Meikang Qiu, Senior Member, IEEE and SQL. Other types of Cloud services include: Software as a Abstract— Cloud services have been widely employed in IT Service (SaaS) in which the software is licensed and hosted in industry and scientific research. By using Cloud services users can Clouds; and Database as a Service (DBaaS) in which managed move computing tasks and data away from local computers to database services are hosted in Clouds. While enjoying these remote datacenters. By accessing Internet-based services over lightweight and mobile devices, users deploy diversified Cloud great services, we must face the challenges raised up by these applications on powerful machines. The key drivers towards this unexploited opportunities within a Cloud environment. paradigm for the scientific computing field include the substantial Complex scientific computing applications are being widely computing capacity, on-demand provisioning and cross-platform interoperability. To fully harness the Cloud services for scientific studied within the emerging Cloud-based services environment computing, however, we need to design an application-specific [4-12]. Traditionally, the focus is given to the parallel scientific platform to help the users efficiently migrate their applications. In HPC (high performance computing) applications [6, 12, 13], this, we propose a Cloud service platform for symbolic-numeric where substantial effort has been given to the integration of computation– SNC.
    [Show full text]
  • Design of 8-Bit Arithmetic Processor Unit Based on Reversible Logic by A
    Global Journal of Researches in Engineering Electrical and Electronics Engineering Volume 13 Issue 10 Version 1.0 Year 2013 Type: Double Blind Peer Reviewed International Research Journal Publisher: Global Journals Inc. (USA) Online ISSN: 2249-4596 & Print ISSN: 0975-5861 Design of 8-Bit Arithmetic Processor Unit based on Reversible Logic By A. Kamaraj, C. Kalyana Sundaram & J. Senthil Kumar Mepco Schlenk Engineering College, India Abstract - Reversible logic is emerging as an important research area in the recent years due to its ability to reduce the power dissipation, which is the main requirement in low power digital design. Energy dissipation is proportional to the number of bits lost during computation. The reversible circuits do not lose information and can generate unique outputs from specified inputs and vice versa. It has application in diverse fields such as low power CMOS design, optical information processing, cryptography, quantum computation and nanotechnology. This paper proposes a reversible design of an 8 -bit arithmetic processor. The architecture of the processor has been proposed, in which, each block is realized using reversible logic gates. The important blocks of the processor are control unit, arithmetic and logical unit and register file. Each module has been coded using Verilog then simulated using Modelsim and prototyped in Xilinx- Spartan 3E. Keywords : reversible logic, reversible gate, FPGA, xilinx. GJRE-F Classification : FOR Code: 290901 Design of 8-Bit ArithmeticProcessor Unit based on ReversibleLogic Strictly as per the compliance and regulations of : © 2013. A. Kamaraj, C. Kalyana Sundaram & J. Senthil Kumar. This is a research/review paper, distributed under the terms of the Creative Commons Attribution-Noncommercial 3.0 Unported License http://creativecommons.org/licenses/by-nc/3.0/), permitting all non commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
    [Show full text]
  • Embedded Systems Building and Programming Embedded Devices
    Embedded Systems Building and Programming Embedded Devices PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Tue, 29 May 2012 01:04:04 UTC Contents Articles Wikibooks:Collections Preface 1 Embedded Systems/Embedded Systems Introduction 3 Embedded Systems/Terminology 7 Microprocessor Basics 10 Embedded Systems/Microprocessor Introduction 10 Embedded Systems/Embedded System Basics 11 Embedded Systems/Microprocessor Architectures 13 Embedded Systems/Programmable Controllers 16 Embedded Systems/Floating Point Unit 18 Embedded Systems/Parity 20 Embedded Systems/Memory 21 Embedded Systems/Memory Units 24 Programming Embedded Systems 25 Embedded Systems/C Programming 25 Embedded Systems/Assembly Language 31 Embedded Systems/Mixed C and Assembly Programming 34 Embedded Systems/IO Programming 42 Embedded Systems/Serial and Parallel IO 43 Embedded Systems/Super Loop Architecture 44 Embedded Systems/Protected Mode and Real Mode 46 Embedded Systems/Bootloaders and Bootsectors 47 Embedded Systems/Terminate and Stay Resident 48 Real Time Operating Systems 49 Embedded Systems/Real-Time Operating Systems 49 Embedded Systems/Threading and Synchronization 51 Embedded Systems/Interrupts 54 Embedded Systems/RTOS Implementation 55 Embedded Systems/Locks and Critical Sections 57 Embedded Systems/Common RTOS 60 Embedded Systems/Common RTOS/Palm OS 63 Embedded Systems/Common RTOS/Windows CE 64 Embedded Systems/Common RTOS/DOS 64 Embedded Systems/Linux 65 Interfacing 68 Embedded Systems/Interfacing
    [Show full text]
  • Optimisation Des Performances Et De La Consommation De Puissance Électrique Pour Architecture Intel Ltanium/EPIC
    Université de Valenciennes et du Hainaut-Cambrésis Numéro d'ordre : 08/40 Optimisation des performances et de la consommation de puissance électrique pour architecture Intel ltanium/EPIC THÈSE Présentée et soutenue publiquement le : 25 novembre 2008 pour l'obtention du Doctorat de l'université de Valenciennes et du Hainaut-Cambrésis Spécialité Automatique et Informatique des Systèmes Industriels et Humains Discipline : Informatique par JamelTAYEB Rapporteurs : Dr. Albert COHEN, INRlA, École Polytechnique de Paris Pr. William JALBY, Université de Versailles-Saint-Quentin-en­ Yvelines Examinateurs : Pr. Jean-Luc DEKEYSER, Laboratoire d'Informatique Fondamentale à Lille Pr. Pierre MANNEBACK Faculté Polytechnique de Mons, Belgique Invité : M. Gwenolé BEAUCHESNE, Ingénieur, Mandriva S.A. Paris Directeur: Pr. Sm ail N IAR, LAMIH, Université de Valenciennes Laboratoire d'Automatique, de Mécanique et d'Informatique Industrielles et Humaines - UMR 8530 i Remerciements Merci tout d'abord à Smail Niar qui il y a tous juste quatre ans m 'a offert, en plus de son amitié, l'opportunité d'effectuer ma thèse au sein du laboratoire LAMll-1. Je le remercie pour cette chance inespérée, de la confiance et de son soutien de tous les moments, les plus heureux comme les plus difficiles. Son aide et ses conseils rn 'ont aidé à garder le cap. J'exprime ma profonde gratitude à Albert Cohen et William Jalby qui m'ont fait l'honneur d'être rapporteurs de cette thèse et pour avoir pris le temps de rédiger un rapport sur celle-ci. Je les remercie pour 1' intérêt sincère qu ' ils ont porté à mon travail. Je tiens à remercier ici les examinateurs : Jean-Luc Dekeyser et Pierre Manneback qui m'ont fait le plaisir d'examiner ce travail et de faire partie du Jury.
    [Show full text]
  • 4Th, the Friendly Forth Compiler
    4tH, the friendly Forth compiler J.L. Bezemer May 3, 2012 Contents 1 What's new 16 1.1 What's new in version 3.61.5 . 16 1.2 What's new in version 3.61.4 . 17 1.3 What's new in version 3.61.3 . 19 1.4 What's new in version 3.61.2 . 21 1.5 What's new in version 3.61.1 . 24 1.6 What's new in version 3.61.0 . 25 1.7 What's new in version 3.60.1 . 28 1.8 What's new in version 3.60.0 . 29 1.9 What's new in version 3.5d, release 3 . 31 1.10 What's new in version 3.5d, release 2 . 33 1.11 What's new in version 3.5d . 34 1.12 What's new in version 3.5c, release 3 . 35 1.13 What's new in version 3.5c, release 2 . 36 1.14 What's new in version 3.5c . 38 1.15 What's new in version 3.5b, release 2 . 39 1.16 What's new in version 3.5b . 40 1.17 What's new in version 3.5a, release 2 . 40 1.18 What's new in version 3.5a . 41 1.19 What's new in version 3.3d, release 2 . 46 1.20 What's new in version 3.3d . 47 1.21 What's new in version 3.3c . 49 1.22 What's new in version 3.3a . 51 1.23 What's new in version 3.2e .
    [Show full text]
  • Computer Architecture (BCA Part-I)
    Biyani's Think Tank Concept based notes Computer Architecture (BCA Part-I) Micky Haldya Revised By: Jyoti Sharma Deptt. of Information Technology Biyani Girls College, Jaipur 2 Published by : Think Tanks Biyani Group of Colleges Concept & Copyright : Biyani Shikshan Samiti Sector-3, Vidhyadhar Nagar, Jaipur-302 023 (Rajasthan) Ph : 0141-2338371, 2338591-95 Fax : 0141-2338007 E-mail : [email protected] Website :www.gurukpo.com; www.biyanicolleges.org ISBN: 978-93-81254-38-0 Edition : 2011 Price : While every effort is taken to avoid errors or omissions in this Publication, any mistake or omission that may have crept in is not intentional. It may be taken note of that neither the publisher nor the author will be responsible for any damage or loss of any kind arising to anyone in any manner on account of such errors and omissions. Leaser Type Setted by : Biyani College Printing Department For More Details: - www.gurukpo.com Computer Architecture 3 Preface am glad to present this book, especially designed to serve the needs of the I students. The book has been written keeping in mind the general weakness in understanding the fundamental concepts of the topics. The book is self-explanatory and adopts the “Teach Yourself” style. It is based on question-answer pattern. The language of book is quite easy and understandable based on scientific approach. Any further improvement in the contents of the book by making corrections, omission and inclusion is keen to be achieved based on suggestions from the readers for which the author shall be obliged. I acknowledge special thanks to Mr.
    [Show full text]
  • A Reader Framework for Guile for Guile-Reader 0.6.2
    A Reader Framework for Guile for Guile-Reader 0.6.2 Ludovic Court`es Edition 0.6.2 8 March 2017 This file documents Guile-Reader. Copyright c 2005, 2006, 2007, 2008, 2009, 2012, 2015, 2017 Ludovic Court`es Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. i Table of Contents A Reader Framework for Guile ................ 1 1 Introduction............................... 3 2 Overview .................................. 5 3 Quick Start................................ 7 4 API Reference............................. 9 4.1 Token Readers .............................................. 9 4.1.1 Defining a New Token Reader............................ 9 4.1.2 Token Reader Calling Convention ........................ 9 4.1.3 Invoking a Reader from a Token Reader ................. 10 4.1.4 Token Reader Library .................................. 11 4.1.5 Limitations............................................ 16 4.1.5.1 Token Delimiters .................................
    [Show full text]
  • PDF File, Or As a Single HTML Page
    MyJIT: Documentation version 0.9.0.x Petr Krajča, 2015 Dept. Computer Science Palacký University Olomouc Contents 1 About MyJIT 1 2 Instruction Set 2 2.1 Registers ............................................ 2 2.2 Notation ............................................ 3 2.3 Instructions .......................................... 3 2.3.1 Transfer Operations ................................. 3 2.3.2 Binary Arithmetic Operations ............................ 3 2.3.3 Unary Arithmetic Operations ............................ 5 2.3.4 Load Operations .................................... 5 2.3.5 Store Operations ................................... 6 2.3.6 Compare Instructions ................................ 6 2.3.7 Conversions ...................................... 7 2.3.8 Function declaration ................................. 7 2.3.9 Function calls ..................................... 8 2.3.10 Jumps .......................................... 9 2.3.11 Branch Operations .................................. 9 2.3.12 Misc ........................................... 11 3 Getting Started 13 4 Debugging 15 4.1 Debugging messages ..................................... 15 4.2 Warnings ............................................ 15 4.3 Code listing ........................................... 16 4.3.1 Example of the IL listing (JIT_DEBUG_OPS) ..................... 16 4.3.2 Example of the machine code listing (JIT_DEBUG_CODE) ............. 17 4.3.3 Example of the combined listing (JIT_DEBUG_COMBINED) ............. 17 5 Optimizations 18 6 Download 19 6.1 Getting
    [Show full text]
  • Latexsample-Thesis
    INTEGRAL ESTIMATION IN QUANTUM PHYSICS by Jane Doe A dissertation submitted to the faculty of The University of Utah in partial fulfillment of the requirements for the degree of Doctor of Philosophy Department of Mathematics The University of Utah May 2016 Copyright c Jane Doe 2016 All Rights Reserved The University of Utah Graduate School STATEMENT OF DISSERTATION APPROVAL The dissertation of Jane Doe has been approved by the following supervisory committee members: Cornelius L´anczos , Chair(s) 17 Feb 2016 Date Approved Hans Bethe , Member 17 Feb 2016 Date Approved Niels Bohr , Member 17 Feb 2016 Date Approved Max Born , Member 17 Feb 2016 Date Approved Paul A. M. Dirac , Member 17 Feb 2016 Date Approved by Petrus Marcus Aurelius Featherstone-Hough , Chair/Dean of the Department/College/School of Mathematics and by Alice B. Toklas , Dean of The Graduate School. ABSTRACT Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.
    [Show full text]
  • NIC-Based Offload of Dynamic User-Defined Modules for Myrinet
    NIC-Based Offload of Dynamic User-Defined Modules for Myrinet Clusters Adam Wagner, Hyun-Wook Jin and Dhabaleswar K. Panda Rolf Riesen Network-Based Computing Laboratory Scalable Computing Systems Dept. Dept. of Computer Science and Engineering Sandia National Laboratories The Ohio State University [email protected] ¡ wagnera, jinhy, panda ¢ @cse.ohio-state.edu Abstract The common approach to NIC-based offload is to hard- code an optimization into the control program which runs Many of the modern networks used to interconnect nodes on the NIC in order to achieve the highest possible perfor- in cluster-based computing systems provide network inter- mance gain. While such approaches have proved successful face cards (NICs) that offer programmable processors. Sub- in improving performance, they suffer from several draw- stantial research has been done with the focus of offloading backs. First, NIC-based coding is quite complex and error processing from the host to the NIC processor. However, the prone due to the specialized nature of the NIC firmware research has primarily focused on the static offload of spe- and the difficulty of validating and debugging code on the cific features to the NIC, mainly to support the optimization NIC. Because of the level of difficulty involved in making of common collective and synchronization-based communi- such changes and the potential consequences of erroneous cations. In this paper, we describe the design and implemen- code, these sorts of optimizations may only be performed by tation of a new framework based on MPICH-GM to sup- system experts. Second, hard-coding features into the NIC port the dynamic NIC-based offload of user-defined mod- firmware is inflexible.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • GCC Plugins and MELT Extensions
    GCC plugins and MELT extensions Basile STARYNKEVITCH [email protected] (or [email protected]) June 16th 2011 – ARCHI’11 summer school (Mont Louis, France) These slides are under a Creative Commons Attribution-ShareAlike 3.0 Unported License creativecommons.org/licenses/by-sa/3.0 and downloadable from gcc-melt.org th Basile STARYNKEVITCH GCC plugins and MELT extensions June 16 2011 ARCHI’11 ? 1 / 134 Table of Contents 1 Introduction about you and me about GCC and MELT building GCC 2 GCC Internals complexity of GCC overview inside GCC (cc1) memory management inside GCC optimization passes plugins 3 MELT why MELT? handling GCC internal data with MELT matching GCC data with MELT future work on MELT th Basile STARYNKEVITCH GCC plugins and MELT extensions June 16 2011 ARCHI’11 ? 2 / 134 Introduction Contents 1 Introduction about you and me about GCC and MELT building GCC 2 GCC Internals complexity of GCC overview inside GCC (cc1) memory management inside GCC optimization passes plugins 3 MELT why MELT? handling GCC internal data with MELT matching GCC data with MELT future work on MELT th Basile STARYNKEVITCH GCC plugins and MELT extensions June 16 2011 ARCHI’11 ? 3 / 134 Introduction about you and me opinions are mine only Opinions expressed here are only mine! not of my employer (CEA, LIST) not of the Gcc community not of funding agencies (e.g. DGCIS)1 I don’t understand or know all of Gcc ; there are many parts of Gcc I know nothing about. Beware that I have some strong technical opinions which are not the view of the majority of contributors to Gcc.
    [Show full text]