WO2004095264A3 - Method and apparatus for performing interpreter optimizations during program code conversion - Google Patents

Method and apparatus for performing interpreter optimizations during program code conversion Download PDF

Info

Publication number
WO2004095264A3
WO2004095264A3 PCT/GB2004/001725 GB2004001725W WO2004095264A3 WO 2004095264 A3 WO2004095264 A3 WO 2004095264A3 GB 2004001725 W GB2004001725 W GB 2004001725W WO 2004095264 A3 WO2004095264 A3 WO 2004095264A3
Authority
WO
WIPO (PCT)
Prior art keywords
program code
basic block
translated
interpreted
code conversion
Prior art date
Application number
PCT/GB2004/001725
Other languages
French (fr)
Other versions
WO2004095264A2 (en
Inventor
Gisle Dankel
Gavin Barraclough
Matthew L Evans
Original Assignee
Transitive Ltd
Gisle Dankel
Gavin Barraclough
Matthew L Evans
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
Priority claimed from GBGB0309056.0A external-priority patent/GB0309056D0/en
Priority claimed from GB0320716A external-priority patent/GB2400937B/en
Application filed by Transitive Ltd, Gisle Dankel, Gavin Barraclough, Matthew L Evans filed Critical Transitive Ltd
Priority to JP2006506161A priority Critical patent/JP4844971B2/en
Priority to CN2004800159402A priority patent/CN1802632B/en
Publication of WO2004095264A2 publication Critical patent/WO2004095264A2/en
Publication of WO2004095264A3 publication Critical patent/WO2004095264A3/en

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Abstract

A translator apparatus is provided with both program code (17) interpreting and translating functionality, where subject program code (17) is interpreted rather than being translated in those situations where interpretation of the subject program code (17) is determined to be more beneficial. The translator (19) applies an interpreting algorithm to determine whether a basic block of subject program code (17) should be interpreted or translated. A particular subject of instructions supported by the interpreter functionality is initially selected from an entire instruction set for the subject program code (17). A basic block will be interpreted 1) if all of the instructions within a basic block are determined to be within the subset of instructions supported by the interpreter functionality, and 2) if an execution count of the basic block is below a translation threshold. If either of these two conditions are not satisfied, then the basic block is translated by the translator (19).
PCT/GB2004/001725 2003-04-22 2004-04-22 Method and apparatus for performing interpreter optimizations during program code conversion WO2004095264A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006506161A JP4844971B2 (en) 2003-04-22 2004-04-22 Method and apparatus for performing interpreter optimization during program code conversion
CN2004800159402A CN1802632B (en) 2003-04-22 2004-04-22 Method and apparatus for performing interpreter optimizations during program code conversion

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
GBGB0309056.0A GB0309056D0 (en) 2003-04-22 2003-04-22 Block translation optimizations for program code conversion
GB0309056.0 2003-04-22
GBGB0315164.4A GB0315164D0 (en) 2003-04-22 2003-06-30 Block translation optimizations for program code conversion
GB0315164.4 2003-06-30
GB0320716.4 2003-09-04
GB0320716A GB2400937B (en) 2003-04-22 2003-09-04 Method and apparatus for performing interpreter optimizations during program code conversion

Publications (2)

Publication Number Publication Date
WO2004095264A2 WO2004095264A2 (en) 2004-11-04
WO2004095264A3 true WO2004095264A3 (en) 2005-03-24

Family

ID=33313922

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2004/001725 WO2004095264A2 (en) 2003-04-22 2004-04-22 Method and apparatus for performing interpreter optimizations during program code conversion

Country Status (2)

Country Link
US (1) US7536682B2 (en)
WO (1) WO2004095264A2 (en)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69942011D1 (en) * 1998-10-10 2010-03-25 Ibm Program code conversion with reduced translation
WO2004073376A2 (en) * 2003-02-20 2004-09-02 Koninklijke Philips Electronics N.V. Translation of a series of computer instructions
US7536682B2 (en) 2003-04-22 2009-05-19 International Business Machines Corporation Method and apparatus for performing interpreter optimizations during program code conversion
GB0309056D0 (en) * 2003-04-22 2003-05-28 Transitive Technologies Ltd Block translation optimizations for program code conversion
US7543284B2 (en) * 2003-04-22 2009-06-02 Transitive Limited Partial dead code elimination optimizations for program code conversion
US8185868B1 (en) * 2004-12-20 2012-05-22 The Mathworks, Inc. System and method for cell-based code editing and publishing
US7805708B2 (en) * 2005-05-13 2010-09-28 Texas Instruments Incorporated Automatic tool to eliminate conflict cache misses
US7770152B1 (en) * 2005-05-20 2010-08-03 Oracle America, Inc. Method and apparatus for coordinating state and execution context of interpreted languages
US7792666B2 (en) * 2006-05-03 2010-09-07 Sony Computer Entertainment Inc. Translation block invalidation prehints in emulation of a target system on a host system
US7813909B2 (en) 2006-05-03 2010-10-12 Sony Computer Entertainment Inc. Register mapping in emulation of a target system on a host system
US7770050B2 (en) * 2006-05-03 2010-08-03 Sony Computer Entertainment Inc. Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code
GB2435531A (en) * 2006-02-27 2007-08-29 Sharp Kk Control Flow Protection Mechanism
US7765097B1 (en) * 2006-03-20 2010-07-27 Intuit Inc. Automatic code generation via natural language processing
US7568189B2 (en) * 2006-05-03 2009-07-28 Sony Computer Entertainment Inc. Code translation and pipeline optimization
US20070294675A1 (en) 2006-06-20 2007-12-20 Transitive Limited Method and apparatus for handling exceptions during binding to native code
JP4159586B2 (en) * 2006-08-03 2008-10-01 エヌイーシーコンピュータテクノ株式会社 Information processing apparatus and information processing speed-up method
US8001535B2 (en) 2006-10-02 2011-08-16 International Business Machines Corporation Computer system and method of adapting a computer system to support a register window architecture
GB0623276D0 (en) * 2006-11-22 2007-01-03 Transitive Ltd Memory consistency protection in a multiprocessor computing system
US8762956B1 (en) 2007-01-31 2014-06-24 The Mathworks, Inc. Generating a report document from code
GB2447968B (en) 2007-03-30 2010-07-07 Transitive Ltd Improvements in and relating to floating point operations
GB2448523B (en) 2007-04-19 2009-06-17 Transitive Ltd Apparatus and method for handling exception signals in a computing system
CN101295265A (en) * 2007-04-25 2008-10-29 国际商业机器公司 Total system ISA simulation system and method for recognizing course
JP5373620B2 (en) * 2007-11-09 2013-12-18 パナソニック株式会社 Data transfer control device, data transfer device, data transfer control method, and semiconductor integrated circuit using reconfiguration circuit
US8060356B2 (en) 2007-12-19 2011-11-15 Sony Computer Entertainment Inc. Processor emulation using fragment level translation
US9454390B2 (en) * 2008-04-04 2016-09-27 Intuit Inc. Executable code generated from common source code
JP5115332B2 (en) 2008-05-22 2013-01-09 富士通株式会社 Emulation program, emulation device, and emulation method
GB0813833D0 (en) 2008-07-29 2008-09-03 Transitive Ltd Apparatus and method for handling page protection faults in a computing system
US8281296B2 (en) * 2008-08-12 2012-10-02 Oracle America, Inc. Cross-ISA inlining in a system virtual machine
US20100095286A1 (en) * 2008-10-10 2010-04-15 Kaplan David A Register reduction and liveness analysis techniques for program code
US8527969B2 (en) * 2009-07-14 2013-09-03 Unisys Corporation Systems, methods, and computer programs for dynamic binary translation in an interpreter
US8276128B2 (en) * 2009-07-14 2012-09-25 Unisys Corporation Systems, methods, and computer programs for dynamic binary translation in a master control program interpreter
US20110066897A1 (en) * 2009-09-11 2011-03-17 William Bumgarner Methods and apparatuses for determining permanent memory growth
KR101247259B1 (en) * 2009-12-17 2013-04-01 한국전자통신연구원 Virtualization apparatus and its processing method
US8832666B2 (en) * 2009-12-21 2014-09-09 International Business Machines Corporation Dynamic instrumentation
US8468507B2 (en) * 2011-06-10 2013-06-18 Microsoft Corporation Binding executable code at runtime
US8990515B2 (en) 2011-06-14 2015-03-24 Microsoft Technology Licensing, Llc Aliasing buffers
US8793240B2 (en) * 2011-08-26 2014-07-29 Oracle International Corporation Generation of machine code for a database statement by specialization of interpreter code
US9552195B2 (en) * 2013-03-08 2017-01-24 Facebook, Inc. Enlarging control regions to optimize script code compilation
US9195441B2 (en) * 2013-07-30 2015-11-24 Facebook, Inc. Systems and methods for incremental compilation at runtime using relaxed guards
US9335987B2 (en) * 2013-12-09 2016-05-10 International Business Machines Corporation Data object with common statement series
JP2017516228A (en) 2014-05-12 2017-06-15 インテル・コーポレーション Method and apparatus for providing hardware support for self-modifying code
CN104049949B (en) * 2014-05-30 2016-10-05 南阳理工学院 A kind of peephole optimization method towards BSWAP instruction
US10282182B2 (en) * 2016-09-23 2019-05-07 Intel Corporation Technologies for translation cache management in binary translation systems
US10160115B2 (en) * 2016-12-19 2018-12-25 Amazon Technologies, Inc. Dynamic byte order determination and conversion for robotic component
US10261785B2 (en) * 2017-02-28 2019-04-16 Microsoft Technology Licensing, Llc Arithmetic lazy flags representation for emulation
US10474442B2 (en) * 2017-09-29 2019-11-12 Intel Corporation Methods and apparatus to perform region formation for a dynamic binary translation processor
US11238557B2 (en) * 2019-03-29 2022-02-01 Intel Corporation Workload-based maximum current
CN116661808B (en) * 2023-07-26 2023-11-10 龙芯中科技术股份有限公司 Binary translation method, binary translation device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751982A (en) * 1995-03-31 1998-05-12 Apple Computer, Inc. Software emulation system with dynamic translation of emulated instructions for increased processing speed
US5768593A (en) * 1996-03-22 1998-06-16 Connectix Corporation Dynamic cross-compilation system and method
US5842017A (en) * 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
EP0908819A2 (en) * 1997-10-06 1999-04-14 Sun Microsystems, Inc. Method and apparatus for dynamically optimizing byte-coded programs
WO2001027751A1 (en) * 1999-10-13 2001-04-19 Transmeta Corporation Method of changing modes of code generation

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5507030A (en) * 1991-03-07 1996-04-09 Digitial Equipment Corporation Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses
US5999737A (en) * 1994-03-01 1999-12-07 Digital Equipment Corporation Link time optimization via dead code elimination, code motion, code partitioning, code grouping, loop analysis with code motion, loop invariant analysis and active variable to register analysis
DE19535306A1 (en) * 1995-09-22 1997-03-27 Siemens Ag Process for converting different data formats
US5970236A (en) * 1995-11-14 1999-10-19 Compaq Computer Corporation Circuit for selectively performing data format conversion
US6535903B2 (en) * 1996-01-29 2003-03-18 Compaq Information Technologies Group, L.P. Method and apparatus for maintaining translated routine stack in a binary translation environment
WO1997044739A1 (en) * 1996-05-23 1997-11-27 Advanced Micro Devices, Inc. Apparatus for converting data between different endian formats and system and method employing same
US5828884A (en) * 1996-05-23 1998-10-27 Advanced Micro Devices, Inc. Method for compiling a software program and executing on a system which converts data between different endian formats
US6021275A (en) * 1996-08-05 2000-02-01 General Magic, Inc. Object code structure and method for translation of architecture independent program implementations
US6002879A (en) * 1997-04-01 1999-12-14 Intel Corporation Method for performing common subexpression elimination on a rack-N static single assignment language
JPH11306026A (en) * 1998-04-22 1999-11-05 Toshiba Corp Code optimization device and method and computer readable recording medium recording code optimization program
US6189141B1 (en) * 1998-05-04 2001-02-13 Hewlett-Packard Company Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control
US6099585A (en) * 1998-05-08 2000-08-08 Advanced Micro Devices, Inc. System and method for streamlined execution of instructions
US6802056B1 (en) * 1999-06-30 2004-10-05 Microsoft Corporation Translation and transformation of heterogeneous programs
US6484188B1 (en) * 1999-12-30 2002-11-19 Intel Corporation Optimization of garbage collection code in the context of raw native interface function calls in the java programming language
US6785801B2 (en) * 2000-02-09 2004-08-31 Hewlett-Packard Development Company, L.P. Secondary trace build from a cache of translations in a caching dynamic translator
GB2367652B (en) 2000-10-05 2004-08-11 Advanced Risc Mach Ltd Scheduling control within a system having mixed hardware and software based instruction execution
US20040154009A1 (en) * 2002-04-29 2004-08-05 Hewlett-Packard Development Company, L.P. Structuring program code
US7536682B2 (en) 2003-04-22 2009-05-19 International Business Machines Corporation Method and apparatus for performing interpreter optimizations during program code conversion
US7543284B2 (en) * 2003-04-22 2009-06-02 Transitive Limited Partial dead code elimination optimizations for program code conversion
GB0309056D0 (en) * 2003-04-22 2003-05-28 Transitive Technologies Ltd Block translation optimizations for program code conversion
US7200841B2 (en) * 2003-04-22 2007-04-03 Transitive Limited Method and apparatus for performing lazy byteswapping optimizations during program code conversion

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751982A (en) * 1995-03-31 1998-05-12 Apple Computer, Inc. Software emulation system with dynamic translation of emulated instructions for increased processing speed
US5842017A (en) * 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
US5768593A (en) * 1996-03-22 1998-06-16 Connectix Corporation Dynamic cross-compilation system and method
EP0908819A2 (en) * 1997-10-06 1999-04-14 Sun Microsystems, Inc. Method and apparatus for dynamically optimizing byte-coded programs
WO2001027751A1 (en) * 1999-10-13 2001-04-19 Transmeta Corporation Method of changing modes of code generation

Also Published As

Publication number Publication date
US20040221278A1 (en) 2004-11-04
US7536682B2 (en) 2009-05-19
WO2004095264A2 (en) 2004-11-04

Similar Documents

Publication Publication Date Title
WO2004095264A3 (en) Method and apparatus for performing interpreter optimizations during program code conversion
TW200511116A (en) Method and apparatus for performing interpreter optimizations during program code conversion
CA2379978A1 (en) Method of changing modes of code generation
EP1544748A3 (en) Method and apparatus for evaluating machine translation quality
WO2007008506A3 (en) Selective pre-compilation of virtual code to enhance emulator performance
WO2001050257A3 (en) Incorporating non-native user interface mechanisms into a user interface
AU2003301782A8 (en) Method and apparatus for performing validation of program code conversion
IL142484A0 (en) Impact analysis of a model
WO2004095263A3 (en) Partial dead code elimination optimizations for program code conversion
WO2005006120A3 (en) An intermediate representation for multiple exception handling models
AU2003275972A1 (en) Xml interfaces in unified rendering
WO2007044018A3 (en) Methods of model compilation
WO2004099975A3 (en) Processing message digest instructions
EP1336919A3 (en) Instruction set extension for software initiated prefetch
JP2003108388A5 (en)
EP1359502A3 (en) Apparatus and method for address extension in a microprocessor
CN105573994B (en) Statictic machine translation system based on syntax skeleton
EP1336918A3 (en) Apparatus and method for selective memory attribute control
BR0015171A (en) Apparatus and method for analyzing performance and failure data
WO2004095265A3 (en) Method and apparatus for performing lazy byteswapping optimizations during program code conversion
WO2003083617A3 (en) Hardware-translator-based custom method invocation system and method
EP1429244A4 (en) Compiler
EP1653355A3 (en) Information processor, information processing method, and programs therefor
TW200511115A (en) Method and apparatus for instruction compression and decompression in a cache memory
WO2002093366A3 (en) Lightweight native method invocation interface for java computing environments

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006506161

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 20048159402

Country of ref document: CN

122 Ep: pct application non-entry in european phase