DE69911468D1 - Verfahren zum direkten inlinen von virtuellen anrufen ohne on-stack-vertretung - Google Patents

Verfahren zum direkten inlinen von virtuellen anrufen ohne on-stack-vertretung

Info

Publication number
DE69911468D1
DE69911468D1 DE69911468T DE69911468T DE69911468D1 DE 69911468 D1 DE69911468 D1 DE 69911468D1 DE 69911468 T DE69911468 T DE 69911468T DE 69911468 T DE69911468 T DE 69911468T DE 69911468 D1 DE69911468 D1 DE 69911468D1
Authority
DE
Germany
Prior art keywords
callee
inlining
caller
whose
compiler
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
DE69911468T
Other languages
English (en)
Other versions
DE69911468T2 (de
Inventor
L Detlefs
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69911468D1 publication Critical patent/DE69911468D1/de
Application granted granted Critical
Publication of DE69911468T2 publication Critical patent/DE69911468T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • G06F9/4491Optimising based on receiver type
DE69911468T 1998-10-09 1999-10-07 Verfahren zum direkten inlinen von virtuellen anrufen ohne on-stack-vertretung Expired - Fee Related DE69911468T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US169341 1998-10-09
US09/169,341 US6223340B1 (en) 1998-10-09 1998-10-09 Method for directly inlining virtual calls without on-stack replacement
PCT/US1999/023349 WO2000022509A2 (en) 1998-10-09 1999-10-07 Method for directly inlining virtual calls without on-stack replacement

Publications (2)

Publication Number Publication Date
DE69911468D1 true DE69911468D1 (de) 2003-10-23
DE69911468T2 DE69911468T2 (de) 2004-06-24

Family

ID=22615266

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69911468T Expired - Fee Related DE69911468T2 (de) 1998-10-09 1999-10-07 Verfahren zum direkten inlinen von virtuellen anrufen ohne on-stack-vertretung

Country Status (6)

Country Link
US (1) US6223340B1 (de)
EP (1) EP1145111B1 (de)
JP (1) JP2002527811A (de)
AT (1) ATE250239T1 (de)
DE (1) DE69911468T2 (de)
WO (1) WO2000022509A2 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933635A (en) * 1997-10-06 1999-08-03 Sun Microsystems, Inc. Method and apparatus for dynamically deoptimizing compiled activations
JP3762867B2 (ja) * 1999-01-29 2006-04-05 富士通株式会社 コンパイラ装置、コンパイル方法、およびそのためのプログラムを格納した記憶媒体
US6487714B1 (en) * 1999-05-24 2002-11-26 International Business Machines Corporation Mechanism for dynamic selection of an object's method
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation
US6526572B1 (en) * 2000-02-09 2003-02-25 Hewlett-Packard Company Mechanism for software register renaming and load speculation in an optimizer
US7089403B2 (en) * 2002-06-26 2006-08-08 International Business Machines Corporation System and method for using hardware performance monitors to evaluate and modify the behavior of an application during execution of the application
US7484095B2 (en) * 2003-01-16 2009-01-27 Sun Microsystems, Inc. System for communicating program data between a first device and a second device
US20040143739A1 (en) * 2003-01-16 2004-07-22 Sun Mircosystems, Inc., A Delaware Corporation Run time code integrity checks
US7281244B2 (en) * 2003-01-16 2007-10-09 Sun Microsystems, Inc. Using a digital fingerprint to commit loaded data in a device
US7165246B2 (en) * 2003-01-16 2007-01-16 Sun Microsystems, Inc. Optimized representation of data type information in program verification
US8121955B2 (en) * 2003-01-16 2012-02-21 Oracle America, Inc. Signing program data payload sequence in program loading
US7272830B2 (en) * 2003-01-16 2007-09-18 Sun Microsystems, Inc. Ordering program data for loading on a device
US7222331B2 (en) * 2003-01-16 2007-05-22 Sun Microsystems, Inc. Linking of virtual methods
US7386686B2 (en) * 2003-03-28 2008-06-10 Intel Corporation Inlining with stack trace cache-based dynamic profiling
US7340732B2 (en) * 2003-11-26 2008-03-04 Sun Microsystems, Inc. Updating profile frequency for procedure inlining
CA2453776A1 (en) * 2003-12-19 2005-06-19 Ibm Canada Limited-Ibm Canada Limitee Compiler optimization
US7526760B1 (en) * 2004-03-17 2009-04-28 Sun Microsystems, Inc. Methods for implementing virtual method invocation with shared code
US20070250825A1 (en) * 2006-04-21 2007-10-25 Hicks Daniel R Compiling Alternative Source Code Based on a Metafunction
US7913236B2 (en) * 2006-09-29 2011-03-22 Intel Corporation Method and apparatus for performing dynamic optimization for software transactional memory
US8291393B2 (en) * 2007-08-20 2012-10-16 International Business Machines Corporation Just-in-time compiler support for interruptible code
US8370821B2 (en) * 2007-08-21 2013-02-05 International Business Machines Corporation Method for enabling profile-based call site tailor-ing using profile gathering of cloned functions
US8276131B2 (en) * 2007-08-30 2012-09-25 International Business Machines Corporation Method and system for dynamic loop transfer by populating split variables
US20090182689A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Rule-based dynamic operation evaluation
US8281296B2 (en) * 2008-08-12 2012-10-02 Oracle America, Inc. Cross-ISA inlining in a system virtual machine
US8621447B1 (en) * 2009-08-25 2013-12-31 Adobe Systems Incorporated Systems and methods for dynamic struct variable creation including inline declaration with dynamic keys
US20130167144A1 (en) * 2009-09-04 2013-06-27 Bernd Mathiske Virtual Machine Persisted Within Itself
US8561045B2 (en) * 2010-07-30 2013-10-15 Apple Inc. Constructing runtime state for inlined code
US9146759B2 (en) 2010-07-30 2015-09-29 Apple Inc. Assumption-based compilation
US9195486B2 (en) 2010-07-30 2015-11-24 Apple Inc. Observation and analysis based code optimization
JP5583514B2 (ja) * 2010-08-11 2014-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション バイナリコードを最適化するコンパイル方法、及びそのコンパイラシステム、並びにコンピュータ・プログラム
US10229031B2 (en) 2011-07-15 2019-03-12 Microsoft Technology Licensing, Llc. Debugging inline functions in optimized code

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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
US5481708A (en) 1992-06-05 1996-01-02 Borland International, Inc. System and methods for optimizing object-oriented compilations
JP3178151B2 (ja) 1993-03-19 2001-06-18 富士ゼロックス株式会社 オブジェクト指向言語のメッセージコンパイル装置
US5845331A (en) 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
US5835771A (en) * 1995-06-07 1998-11-10 Rogue Wave Software, Inc. Method and apparatus for generating inline code using template metaprograms
US5815719A (en) 1996-05-07 1998-09-29 Sun Microsystems, Inc. Method and apparatus for easy insertion of assembler code for optimization
DE69911104T2 (de) * 1998-03-24 2004-07-08 Sun Microsystems, Inc., Palo Alto Statische Bindung von dynamisch abgesendeten Anrufen in Anwesenheit von dynamischer Verknüpfung und Ladung
US6161217A (en) * 1998-09-14 2000-12-12 Sun Microsystems, Inc. Accurate method for inlining virtual calls

Also Published As

Publication number Publication date
WO2000022509A2 (en) 2000-04-20
WO2000022509A3 (en) 2000-07-13
EP1145111A2 (de) 2001-10-17
US6223340B1 (en) 2001-04-24
EP1145111B1 (de) 2003-09-17
ATE250239T1 (de) 2003-10-15
JP2002527811A (ja) 2002-08-27
DE69911468T2 (de) 2004-06-24

Similar Documents

Publication Publication Date Title
DE69911468D1 (de) Verfahren zum direkten inlinen von virtuellen anrufen ohne on-stack-vertretung
KR950001416B1 (ko) 프로그램처리장치 및 프로그램처리방법
EP0752650A3 (de) Verfahren und Gerät zum Erzeugen eines ausführbaren Codes aus objektorientiertem C++ Quellcode
US6292939B1 (en) Method of reducing unnecessary barrier instructions
TW355773B (en) System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
ATE235078T1 (de) Genaues verfahren zum inlinen von virtuellen anrufen
ATE459946T1 (de) Softwarearchitektur eines terminals für chipkartengebrauch
EP0651327A3 (de) Rekompilation von Computerprogrammen für verbesserte Optimierung
DE69905875T2 (de) Dynamische umsetzung von statisch gebundenen funktionsaufrufen in dynamisch gebundenen funktionsaufrufen ohne rekompilierung
ATE541260T1 (de) Verfahren für rechnerunterstütztes testen von softwareanwendungskomponenten
EP0778521A3 (de) System und Verfahren für Run-Time-Optimierung von Funktionsaufrufen auf privaten Variabelen in einem sicheren Interpretierer
US20110302563A1 (en) Program structure recovery using multiple languages
ATE459917T1 (de) Verringern von mit privaten variablen in parallelen programmen assoziiertem speicherreferenz-overhead
JPH11212837A (ja) 言語処理方法及び言語処理装置並びに言語処理プログラムを記録した記憶媒体
EP0860774A3 (de) Verfahren und Vorrichtung zur Kontrolle von dynamisch verknüpften Prozeduranrufen
DK1018018T3 (da) Fremgangsmåde til diagnosticering
BR9910625A (pt) Arquitetura para um nó de serviço de telecomunicações, e, processos para introduzir ou modificar aplicações de serviço de telecomunicações armazenadas em um nó de serviço de telecomunicações, e para operar um nó de serviço de telecomunicaçoes provendo serviços
EP0950947A3 (de) Statische Bindung von dynamisch abgesendeten Anrufen in Anwesenheit von dynamischer Verknüpfung und Ladung
KR20120037801A (ko) 병렬 프로그램의 루프 스케줄을 조절하는 장치 및 방법
JP3439449B2 (ja) プロファイル情報収集装置及びコンピュータ可読記録媒体
KR20130077673A (ko) 메소드 특수화를 이용한 확장된 널 포인터 검사 제거 방법
WO1999063431A3 (en) Preprocessor for encapsulating software source scripts
CN105740035B (zh) 一种实现Flex动态加载新增类的方法和系统
JPH04336333A (ja) 原始プログラムの自動インライン展開方式
ATE207217T1 (de) Verfahren zur vermittlung von transaktionsschritten

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee