WO2012170236A3 - Binding executable code at runtime - Google Patents
Binding executable code at runtime Download PDFInfo
- Publication number
- WO2012170236A3 WO2012170236A3 PCT/US2012/039884 US2012039884W WO2012170236A3 WO 2012170236 A3 WO2012170236 A3 WO 2012170236A3 US 2012039884 W US2012039884 W US 2012039884W WO 2012170236 A3 WO2012170236 A3 WO 2012170236A3
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- runtime
- binding
- aspects
- executable code
- execution
- Prior art date
Links
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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
-
- 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
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- 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/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
- G06F9/44542—Retargetable
Abstract
The present invention extends to methods, systems, and computer program products for binding executable code at runtime. Embodiments of the invention include late binding of specified aspects of code to improve execution performance. A runtime dynamically binds lower level code based on runtime information to optimize execution of a higher level algorithm. Aspects of a higher level algorithm having a requisite (e.g., higher) impact on execution performance can be targeted for late binding. Improved performance can be achieved with minimal runtime costs using late binding for aspects having the requisite execution performance impact.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12796911.1A EP2718808B1 (en) | 2011-06-10 | 2012-05-29 | Binding executable code at runtime |
CN201280028424.8A CN103620553B (en) | 2011-06-10 | 2012-05-29 | Operationally place's binding executable code |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/158,226 | 2011-06-10 | ||
US13/158,226 US8468507B2 (en) | 2011-06-10 | 2011-06-10 | Binding executable code at runtime |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2012170236A2 WO2012170236A2 (en) | 2012-12-13 |
WO2012170236A3 true WO2012170236A3 (en) | 2013-01-31 |
Family
ID=47294254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2012/039884 WO2012170236A2 (en) | 2011-06-10 | 2012-05-29 | Binding executable code at runtime |
Country Status (4)
Country | Link |
---|---|
US (1) | US8468507B2 (en) |
EP (1) | EP2718808B1 (en) |
CN (1) | CN103620553B (en) |
WO (1) | WO2012170236A2 (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782627B2 (en) * | 2007-11-29 | 2014-07-15 | Microsoft Corporation | Path specializations for runtime code with phase behavior |
US8990515B2 (en) | 2011-06-14 | 2015-03-24 | Microsoft Technology Licensing, Llc | Aliasing buffers |
US8752018B2 (en) * | 2011-06-21 | 2014-06-10 | Nvidia Corporation | Emitting coherent output from multiple threads for printf |
WO2014011163A1 (en) * | 2012-07-11 | 2014-01-16 | Empire Technology Development Llc | Network congestion reduction |
US9710245B2 (en) | 2014-04-04 | 2017-07-18 | Qualcomm Incorporated | Memory reference metadata for compiler optimization |
US9733978B2 (en) | 2015-08-27 | 2017-08-15 | Qualcomm Incorporated | Data management for multiple processing units using data transfer costs |
US9778961B2 (en) | 2015-09-14 | 2017-10-03 | Qualcomm Incorporated | Efficient scheduling of multi-versioned tasks |
US10360063B2 (en) | 2015-09-23 | 2019-07-23 | Qualcomm Incorporated | Proactive resource management for parallel work-stealing processing systems |
US10303493B2 (en) | 2016-11-04 | 2019-05-28 | International Business Machines Corporation | Performance acceleration in mixed-language applications |
US10417734B2 (en) | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
US10417731B2 (en) | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
EP3567600B8 (en) * | 2018-05-08 | 2024-02-21 | Siemens Healthineers AG | Improving a runtime environment for imaging applications on a medical device |
US10635439B2 (en) | 2018-06-13 | 2020-04-28 | Samsung Electronics Co., Ltd. | Efficient interface and transport mechanism for binding bindless shader programs to run-time specified graphics pipeline configurations and objects |
US11442712B2 (en) * | 2020-06-11 | 2022-09-13 | Indian Institute Of Technology Delhi | Leveraging unspecified order of evaluation for compiler-based program optimization |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276262A1 (en) * | 2007-05-03 | 2008-11-06 | Aaftab Munshi | Parallel runtime execution on multiple processors |
US20090100416A1 (en) * | 2003-07-15 | 2009-04-16 | Transitive Limited | Dynamic native binding |
US20090328013A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Componentization of compiler functionality |
US20100299660A1 (en) * | 2009-05-21 | 2010-11-25 | Microsoft Corporation | Dynamic binding directed by static types |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339419A (en) * | 1990-06-25 | 1994-08-16 | Hewlett-Packard Company | ANDF compiler using the HPcode-plus compiler intermediate language |
US5339430A (en) | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US6748587B1 (en) * | 1998-01-02 | 2004-06-08 | Hewlett-Packard Development Company, L.P. | Programmatic access to the widest mode floating-point arithmetic supported by a processor |
US6665865B1 (en) | 2000-04-27 | 2003-12-16 | Microsoft Corporation | Equivalence class based synchronization optimization |
US6970985B2 (en) * | 2002-07-09 | 2005-11-29 | Bluerisc Inc. | Statically speculative memory accessing |
US6961840B2 (en) | 2002-09-30 | 2005-11-01 | International Business Machines Corporation | Method and apparatus for managing a dynamic alias page table |
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 |
US7463259B1 (en) | 2003-12-18 | 2008-12-09 | Nvidia Corporation | Subshader mechanism for programming language |
GB2424092A (en) * | 2005-03-11 | 2006-09-13 | Transitive Ltd | Switching between code translation and execution using a trampoline |
US8037281B2 (en) | 2005-04-07 | 2011-10-11 | Advanced Micro Devices, Inc. | Miss-under-miss processing and cache flushing |
US7447869B2 (en) | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
GB2426840A (en) * | 2005-06-04 | 2006-12-06 | Transitive Ltd | Method of executing program code where a portion of the target code calls a native code portion which then calls a second target code portion. |
GB2427045B (en) * | 2005-06-06 | 2007-11-21 | Transitive Ltd | Method and apparatus for converting program code with access coordination for a shared resource |
US8276164B2 (en) | 2007-05-03 | 2012-09-25 | Apple Inc. | Data parallel computing on multiple processors |
US20090024986A1 (en) | 2007-07-19 | 2009-01-22 | Microsoft Corporation | Runtime code modification |
US20090070753A1 (en) | 2007-09-07 | 2009-03-12 | International Business Machines Corporation | Increase the coverage of profiling feedback with data flow analysis |
US8736617B2 (en) | 2008-08-04 | 2014-05-27 | Nvidia Corporation | Hybrid graphic display |
US8245210B2 (en) * | 2009-05-22 | 2012-08-14 | Microsoft Corporation | Compile-time context for dynamically bound operations |
US8990515B2 (en) | 2011-06-14 | 2015-03-24 | Microsoft Technology Licensing, Llc | Aliasing buffers |
-
2011
- 2011-06-10 US US13/158,226 patent/US8468507B2/en active Active
-
2012
- 2012-05-29 CN CN201280028424.8A patent/CN103620553B/en active Active
- 2012-05-29 WO PCT/US2012/039884 patent/WO2012170236A2/en unknown
- 2012-05-29 EP EP12796911.1A patent/EP2718808B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090100416A1 (en) * | 2003-07-15 | 2009-04-16 | Transitive Limited | Dynamic native binding |
US20080276262A1 (en) * | 2007-05-03 | 2008-11-06 | Aaftab Munshi | Parallel runtime execution on multiple processors |
US20090328013A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Componentization of compiler functionality |
US20100299660A1 (en) * | 2009-05-21 | 2010-11-25 | Microsoft Corporation | Dynamic binding directed by static types |
Also Published As
Publication number | Publication date |
---|---|
US20120317558A1 (en) | 2012-12-13 |
WO2012170236A2 (en) | 2012-12-13 |
CN103620553A (en) | 2014-03-05 |
CN103620553B (en) | 2016-10-12 |
EP2718808B1 (en) | 2020-06-10 |
US8468507B2 (en) | 2013-06-18 |
EP2718808A2 (en) | 2014-04-16 |
EP2718808A4 (en) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012170236A3 (en) | Binding executable code at runtime | |
WO2012173772A3 (en) | Optimizing execution of kernels | |
WO2013186266A3 (en) | Next instruction access intent instruction | |
EP4290377A3 (en) | Hardware acceleration method, compiler, and device | |
BRPI0919132A2 (en) | code generated by storage execution. | |
GB2491768B (en) | Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations | |
NZ776770A (en) | Adam6 mice | |
WO2011142933A3 (en) | Real time mission planning | |
PH12016502073A1 (en) | Multi-specific antigen-binding molecule having alternative function to function of blood coagulation factor viii | |
EP2749225A4 (en) | System for diagnosing bloodflow characteristics, method thereof, and computer software program | |
WO2012088364A3 (en) | Satisfying application dependencies | |
GB201302443D0 (en) | Detecting malicious computer code in an executing program module | |
WO2008085977A3 (en) | Computation of elementwise expression in parallel | |
GB2485725A (en) | Systems and methods for optimizing enterprise performance | |
EP2727437A4 (en) | Load driver, processor controlled load driver, and computer program | |
MX2014001629A (en) | Runtime system. | |
WO2012088171A3 (en) | Method for checkpointing and restoring program state | |
GB0818165D0 (en) | Instruction Cache | |
WO2012082661A3 (en) | Instruction optimization | |
EP2840497A4 (en) | Method, system and an executable piece of code for the virtualisation of a hardware resource associated with a computer system | |
WO2012113547A3 (en) | Method for operating a microprocessor unit, in particular in a mobile terminal | |
WO2012061090A3 (en) | Conditional execution of regular expressions | |
WO2012099758A3 (en) | Code advisor for web compatibility and interoperability | |
WO2012092211A3 (en) | Emulating pointers | |
TW200703099A (en) | CPU structure with enhanced branch forecasting capability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12796911 Country of ref document: EP Kind code of ref document: A2 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |