WO2007095642A3 - Dynamic incremental compiler and method - Google Patents
Dynamic incremental compiler and method Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
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).
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)
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)
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 |
-
2007
- 2007-02-16 US US11/676,198 patent/US8769511B2/en active Active
- 2007-02-16 WO PCT/US2007/062359 patent/WO2007095642A2/en active Application Filing
Non-Patent Citations (2)
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 |