DE69911468D1 - Verfahren zum direkten inlinen von virtuellen anrufen ohne on-stack-vertretung - Google Patents
Verfahren zum direkten inlinen von virtuellen anrufen ohne on-stack-vertretungInfo
- 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
Links
- 230000014509 gene expression Effects 0.000 abstract 4
- 230000003068 static 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
- G06F9/4491—Optimising based on receiver type
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)
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)
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 |
-
1998
- 1998-10-09 US US09/169,341 patent/US6223340B1/en not_active Expired - Lifetime
-
1999
- 1999-10-07 JP JP2000576348A patent/JP2002527811A/ja active Pending
- 1999-10-07 WO PCT/US1999/023349 patent/WO2000022509A2/en active IP Right Grant
- 1999-10-07 AT AT99954767T patent/ATE250239T1/de not_active IP Right Cessation
- 1999-10-07 DE DE69911468T patent/DE69911468T2/de not_active Expired - Fee Related
- 1999-10-07 EP EP99954767A patent/EP1145111B1/de not_active Expired - Lifetime
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 |