WO2007095642A3 - Dynamic incremental compiler and method - Google Patents

Dynamic incremental compiler and method Download PDF

Info

Publication number
WO2007095642A3
WO2007095642A3 PCT/US2007/062359 US2007062359W WO2007095642A3 WO 2007095642 A3 WO2007095642 A3 WO 2007095642A3 US 2007062359 W US2007062359 W US 2007062359W WO 2007095642 A3 WO2007095642 A3 WO 2007095642A3
Authority
WO
WIPO (PCT)
Prior art keywords
trace
virtual machine
compiler
machine monitor
representation
Prior art date
Application number
PCT/US2007/062359
Other languages
French (fr)
Other versions
WO2007095642A2 (en
Inventor
Andreas Imre Gal
Michael Franz
Original Assignee
Univ California
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ California filed Critical Univ California
Publication of WO2007095642A2 publication Critical patent/WO2007095642A2/en
Publication of WO2007095642A3 publication Critical patent/WO2007095642A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Abstract

A virtual machine executive (VME) system operating on a target platform that includes a virtual machine monitor (VMM) (Fig 3, #S310) and a dynamic compiler, in particular, a trace compiler (TC)(Fig 3, #S350). System embodiments include a virtual machine monitor configured to record a trace corresponding to a selected cycle, and configured to transform the trace into a representation of a trace tree; and a trace compiler cooperating with the virtual machine monitor to compile the representation of the trace tree into a compiled code segment of native machine code executable on the target platform, in which the trace is a linear instruction sequence traversing at least a portion of a method, a loop, or a branching node (Fig 3, #S355).
PCT/US2007/062359 2006-02-16 2007-02-16 Dynamic incremental compiler and method WO2007095642A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US77494606P 2006-02-16 2006-02-16
US60/774,946 2006-02-16

Publications (2)

Publication Number Publication Date
WO2007095642A2 WO2007095642A2 (en) 2007-08-23
WO2007095642A3 true WO2007095642A3 (en) 2008-11-13

Family

ID=38372269

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/062359 WO2007095642A2 (en) 2006-02-16 2007-02-16 Dynamic incremental compiler and method

Country Status (2)

Country Link
US (1) US8769511B2 (en)
WO (1) WO2007095642A2 (en)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454390B2 (en) * 2008-04-04 2016-09-27 Intuit Inc. Executable code generated from common source code
US20100083237A1 (en) * 2008-09-26 2010-04-01 Arm Limited Reducing trace overheads by modifying trace operations
US8364461B2 (en) * 2009-11-09 2013-01-29 International Business Machines Corporation Reusing invalidated traces in a system emulator
US8701088B2 (en) * 2010-05-28 2014-04-15 Red Hat, Inc. Generating backtracing information for software debugging of software programs running on virtual machines
US8522222B2 (en) * 2010-06-21 2013-08-27 Microsoft Corporation Tracing just-in-time compilation with pointers to local variables
US8756581B2 (en) 2011-02-03 2014-06-17 International Business Machines Corporation Adaptive next-executing-cycle trace selection for trace-driven code optimizers
US8543991B2 (en) * 2011-03-10 2013-09-24 Microsoft Corporation Profile driven multicore background compilation
US8856768B2 (en) * 2011-06-24 2014-10-07 Robert Keith Mykland System and method for compiling machine-executable code generated from a sequentially ordered plurality of processor instructions
US9098299B2 (en) * 2011-09-16 2015-08-04 Facebook, Inc. Run time incremental compilation of script code
KR20130073374A (en) * 2011-12-23 2013-07-03 삼성전자주식회사 System, apparatus and method for distributed compilation of applications
JP2013235386A (en) * 2012-05-08 2013-11-21 Internatl Business Mach Corp <Ibm> Optimization apparatus, optimization method and optimization program
JP5892006B2 (en) * 2012-09-03 2016-03-23 富士通株式会社 Analysis program, analysis method, and analysis apparatus
JP2014075046A (en) * 2012-10-04 2014-04-24 International Business Maschines Corporation Trace generation method, device, and program, and multilevel compilation using the method
CN103019862B (en) * 2012-12-13 2015-08-19 北京神州绿盟信息安全科技股份有限公司 A kind of symbolic excution methodology, Apparatus and system
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
WO2015071778A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Application execution path tracing with configurable origin definition
US9335987B2 (en) * 2013-12-09 2016-05-10 International Business Machines Corporation Data object with common statement series
US9727318B2 (en) 2014-02-18 2017-08-08 Facebook, Inc. Techniques to identify and purge unused code
US9442707B2 (en) 2014-06-25 2016-09-13 Microsoft Technology Licensing, Llc Incremental whole program compilation of code
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US20160306847A1 (en) * 2015-04-15 2016-10-20 Futurewei Technologies, Inc. Apparatus and Method for Using Parameterized Intermediate Representation for Just-In-Time Compilation in Database Query Execution Engine
JP6555981B2 (en) * 2015-08-24 2019-08-07 キヤノン株式会社 Information processing apparatus and control method thereof
US9495141B1 (en) * 2015-12-01 2016-11-15 International Business Machines Corporation Expanding inline function calls in nested inlining scenarios
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US9904549B2 (en) 2015-12-26 2018-02-27 Intel Corporation Method and apparatus for loop-invariant instruction detection and elimination
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10042737B2 (en) 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10324851B2 (en) 2016-10-20 2019-06-18 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10540250B2 (en) 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US10296442B2 (en) 2017-06-29 2019-05-21 Microsoft Technology Licensing, Llc Distributed time-travel trace recording and replay
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) * 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11194612B2 (en) * 2019-07-30 2021-12-07 International Business Machines Corporation Selective code segment compilation in virtual machine environments
US11061653B2 (en) * 2019-10-30 2021-07-13 International Business Machines Corporation Dynamic compiling for conditional statements during execution
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
CA2102089C (en) * 1993-10-29 1999-05-25 David M. Gillies Recompilation of computer programs for enhanced optimization
US5884083A (en) * 1996-09-20 1999-03-16 Royce; Robert Computer system to compile non-incremental computer source code to execute within an incremental type computer system
US6142682A (en) * 1997-06-13 2000-11-07 Telefonaktiebolaget Lm Ericsson Simulation of computer processor
US6170083B1 (en) * 1997-11-12 2001-01-02 Intel Corporation Method for performing dynamic optimization of computer code
US6427234B1 (en) * 1998-06-11 2002-07-30 University Of Washington System and method for performing selective dynamic compilation using run-time information
US6351844B1 (en) * 1998-11-05 2002-02-26 Hewlett-Packard Company Method for selecting active code traces for translation in a caching dynamic translator
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6457172B1 (en) * 1999-04-13 2002-09-24 International Business Machines Corporation Compiler for supporting multiple runtime data representations
US6470492B2 (en) 1999-05-14 2002-10-22 Hewlett-Packard Company Low overhead speculative selection of hot traces in a caching dynamic translator
US6738967B1 (en) * 2000-03-14 2004-05-18 Microsoft Corporation Compiling for multiple virtual machines targeting different processor architectures
US7725885B1 (en) * 2000-05-09 2010-05-25 Hewlett-Packard Development Company, L.P. Method and apparatus for trace based adaptive run time compiler
US7185327B2 (en) * 2001-01-09 2007-02-27 Hewlett-Packard Development Company, L.P. System and method for optimizing operations via dataflow analysis
US7165245B2 (en) * 2001-04-27 2007-01-16 Intel Corporation Pruning local graphs in an inter-procedural analysis solver
US6996814B2 (en) * 2001-11-14 2006-02-07 Sun Microsystems, Inc. Method and apparatus for dynamically compiling byte codes into native code
US7278137B1 (en) * 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
US7386686B2 (en) * 2003-03-28 2008-06-10 Intel Corporation Inlining with stack trace cache-based dynamic profiling
US20050044538A1 (en) * 2003-08-18 2005-02-24 Srinivas Mantripragada Interprocedural computing code optimization method and system
US7774767B2 (en) * 2006-02-03 2010-08-10 Stmicroelectronics, Inc. System and method for compiler interprocedural optimization having support for object files in libraries

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AHO A.V.: "Compilers, Principles, Techniques and Tools", vol. CHAPTER5, 1985 *
REISS S.P. ET AL., ACM, 2000, pages 71 - 75 *

Also Published As

Publication number Publication date
WO2007095642A2 (en) 2007-08-23
US20070226700A1 (en) 2007-09-27
US8769511B2 (en) 2014-07-01

Similar Documents

Publication Publication Date Title
WO2007095642A3 (en) Dynamic incremental compiler and method
WO2005091772A3 (en) Targeted runtime compilation
EP1178404A3 (en) Method and system for compiling multiple languages
WO2013036703A3 (en) Profile guided jit code generation
EP1577767A3 (en) Code rewriting
MX2009000858A (en) Software transactional protection of managed pointers.
NO20081583L (en) Optimization of transaction memory software operations
ATE343172T1 (en) TOKEN BASED LINK
EP1501010A3 (en) Description language for an extensible compiler and tools infrastructure
EP0932100A3 (en) Program compile system and its compile method for efficiently compiling a source program including an indirect call for a procedure
CN103744682B (en) System and method for separate compilation of heterogeneous mixed programs
Lee et al. A study on the smart virtual machine for executing virtual machine codes on smart platforms
WO2005052760A3 (en) System for optimizing application start-up
WO2012039937A3 (en) Systems and methods for compiler-based vectorization of non-leaf code
FR2961922B1 (en) SELECTIVE COMPILATION METHOD, DEVICE AND CORRESPONDING COMPUTER PROGRAM PRODUCT.
WO2004017204A3 (en) Parallel processing platform with synchronous system halt/resume
Hillerström et al. Compiling Links effect handlers to the OCaml backend
EP1632846A3 (en) System and method for run-time value tracking during execution
CN103488519A (en) Implement method of interactive scripting language interpreter
CN102541559B (en) Method for constructing real-time embedded type 3D (three-dimensional) digital instrument
Salim et al. Towards a webassembly standalone runtime on graalvm
Yusuf et al. On-stack replacement to improve JIT-based obfuscation a preliminary study
Klimiankou Interpretizer: A Compiler-Independent Conversion of Switch-Based Dispatch into Threaded Code
BR9914396A (en) Process for protecting input addresses
AU2017239628A1 (en) Dynamic Software System

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07757158

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 07757158

Country of ref document: EP

Kind code of ref document: A2