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 PDFInfo
- 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
Links
- 238000006243 chemical reaction Methods 0.000 title 1
- 238000000034 method Methods 0.000 title 1
- 238000005457 optimization Methods 0.000 title 1
- 230000009286 beneficial effect Effects 0.000 abstract 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
Abstract
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)
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)
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)
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 |
-
2003
- 2003-12-10 US US10/732,764 patent/US7536682B2/en active Active
-
2004
- 2004-04-22 WO PCT/GB2004/001725 patent/WO2004095264A2/en active Application Filing
Patent Citations (5)
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 |