DE69622305T2 - Verfahren und Gerät für einen optimierenden Kompiler - Google Patents

Verfahren und Gerät für einen optimierenden Kompiler

Info

Publication number
DE69622305T2
DE69622305T2 DE69622305T DE69622305T DE69622305T2 DE 69622305 T2 DE69622305 T2 DE 69622305T2 DE 69622305 T DE69622305 T DE 69622305T DE 69622305 T DE69622305 T DE 69622305T DE 69622305 T2 DE69622305 T2 DE 69622305T2
Authority
DE
Germany
Prior art keywords
optimizing compiler
compiler
optimizing
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
DE69622305T
Other languages
English (en)
Other versions
DE69622305D1 (de
Inventor
Daniel D Grove
David C Schwartz
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
Application granted granted Critical
Publication of DE69622305D1 publication Critical patent/DE69622305D1/de
Publication of DE69622305T2 publication Critical patent/DE69622305T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
DE69622305T 1995-03-31 1996-03-22 Verfahren und Gerät für einen optimierenden Kompiler Expired - Fee Related DE69622305T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/414,267 US5659754A (en) 1995-03-31 1995-03-31 Method and apparatus for an improved optimizing compiler

Publications (2)

Publication Number Publication Date
DE69622305D1 DE69622305D1 (de) 2002-08-22
DE69622305T2 true DE69622305T2 (de) 2003-03-13

Family

ID=23640703

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69622305T Expired - Fee Related DE69622305T2 (de) 1995-03-31 1996-03-22 Verfahren und Gerät für einen optimierenden Kompiler

Country Status (5)

Country Link
US (1) US5659754A (de)
EP (1) EP0735468B1 (de)
JP (1) JPH0922362A (de)
CA (1) CA2172772A1 (de)
DE (1) DE69622305T2 (de)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3650649B2 (ja) * 1995-06-16 2005-05-25 松下電器産業株式会社 最適化装置
US6202203B1 (en) 1995-12-06 2001-03-13 International Business Machines Corporation Method of, system for, and computer program product for providing global value numbering
US5790859A (en) * 1995-12-21 1998-08-04 International Business Machines Corporation Method of, system for, and computer program product for efficient identification of private variables in program loops by an optimizing compiler
US6135650A (en) * 1995-12-22 2000-10-24 Sun Microsystems, Inc. Method and system for wrapper routine optimization
US5790867A (en) * 1996-01-02 1998-08-04 International Business Machines Corporation Compiler with extended redundant copy elimination
US5901317A (en) * 1996-03-25 1999-05-04 Sun Microsystems, Inc. Method and system for register allocation using multiple interference graphs
US5768596A (en) * 1996-04-23 1998-06-16 Silicon Graphics, Inc. System and method to efficiently represent aliases and indirect memory operations in static single assignment form during compilation
US5946491A (en) * 1996-06-06 1999-08-31 International Business Machines Corporation Register allocation method and apparatus for gernerating spill code as a function of register pressure compared to dual thresholds
US5930510A (en) * 1996-11-19 1999-07-27 Sun Microsystems, Inc. Method and apparatus for an improved code optimizer for pipelined computers
US5937195A (en) * 1996-11-27 1999-08-10 Hewlett-Packard Co Global control flow treatment of predicated code
US5946492A (en) * 1997-02-19 1999-08-31 International Business Machines Corporation Compiler that reduces call stack size through identification of stackless variables
US6286135B1 (en) * 1997-03-26 2001-09-04 Hewlett-Packard Company Cost-sensitive SSA-based strength reduction algorithm for a machine with predication support and segmented addresses
US5999735A (en) * 1997-04-01 1999-12-07 Intel Corporation Method for constructing a static single assignment language accommodating complex symbolic memory references
US6002879A (en) * 1997-04-01 1999-12-14 Intel Corporation Method for performing common subexpression elimination on a rack-N static single assignment language
US5991540A (en) * 1997-04-01 1999-11-23 Intel Corporation Method for identifying partial redundancies in existing processor architectures
US6016398A (en) * 1997-04-01 2000-01-18 Intel Corporation Method for using static single assignment to color out artificial register dependencies
US6101326A (en) * 1997-05-29 2000-08-08 Hewlett-Packard Company Method and apparatus for frame elimination for simple procedures with tail calls
US6026241A (en) * 1997-06-13 2000-02-15 Silicon Graphics, Inc. System, method, and computer program product for partial redundancy elimination based on static single assignment form during compilation
US5933644A (en) * 1997-06-18 1999-08-03 Sun Microsystems, Inc. Method and apparatus for conflict-based block reordering
US6009272A (en) * 1997-06-30 1999-12-28 Sun Microsystems, Inc. Register allocation via selective spilling
US6249910B1 (en) * 1998-05-04 2001-06-19 Hewlett-Packard Company Apparatus and method for incrementally update static single assignment form for cloned variable name definitions
US6102968A (en) * 1998-05-21 2000-08-15 Lucent Technologies Inc. Method for automatically closing open reactive systems
US6064820A (en) * 1998-05-27 2000-05-16 Hewlett-Packard Company Apparatus and method to incrementally update single static assignment (SSA) form
US6151706A (en) * 1998-06-16 2000-11-21 Silicon Graphics, Inc. Method, system, and computer program product for extending sparse partial redundancy elimination to support speculative code motion within an optimizing compiler
US6301704B1 (en) * 1998-06-16 2001-10-09 Silicon Graphics, Inc. Method, system, and computer program product for using static single assignment form as a program representation and a medium for performing global scalar optimization
US6128775A (en) * 1998-06-16 2000-10-03 Silicon Graphics, Incorporated Method, system, and computer program product for performing register promotion via load and store placement optimization within an optimizing compiler
US6182284B1 (en) * 1998-09-30 2001-01-30 Hewlett-Packard Company Method and system for eliminating phi instruction resource interferences and redundant copy instructions from static-single-assignment-form computer code
US6317876B1 (en) * 1999-06-08 2001-11-13 Hewlett-Packard Company Method and apparatus for determining a maximum number of live registers
US6594761B1 (en) * 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
US6481008B1 (en) * 1999-06-30 2002-11-12 Microsoft Corporation Instrumentation and optimization tools for heterogeneous programs
US6779114B1 (en) 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
US6363523B1 (en) 1999-11-12 2002-03-26 Sun Microsystems, Inc. Optimization of N-base typed arithmetic expressions
US7100164B1 (en) * 2000-01-06 2006-08-29 Synopsys, Inc. Method and apparatus for converting a concurrent control flow graph into a sequential control flow graph
US6654952B1 (en) * 2000-02-03 2003-11-25 Sun Microsystems, Inc. Region based optimizations using data dependence graphs
US6687807B1 (en) 2000-04-18 2004-02-03 Sun Microystems, Inc. Method for apparatus for prefetching linked data structures
JP2001306332A (ja) * 2000-04-20 2001-11-02 Nec Corp 局所変数以外の記憶位置を用いるように拡張されたssa形式を使用して、過度のオーバーヘッドを避ける方法
US6725363B1 (en) 2000-07-31 2004-04-20 Sun Microsystems, Inc. Method for filtering instructions to get more precise event counts
US6675372B1 (en) 2000-10-31 2004-01-06 Sun Microsystems, Inc. Counting speculative and non-speculative events
US7086044B2 (en) * 2001-03-22 2006-08-01 International Business Machines Corporation Method, article of manufacture and apparatus for performing automatic intermodule call linkage optimization
US20040015874A1 (en) * 2001-05-14 2004-01-22 David Ungar Method and apparatus for finding resource allocation errors in virtual machine compilers
JP3763518B2 (ja) * 2001-05-29 2006-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイラ、そのコンパイル方法およびプログラム
US20030079210A1 (en) * 2001-10-19 2003-04-24 Peter Markstein Integrated register allocator in a compiler
US7278137B1 (en) 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
US6996802B2 (en) 2002-03-18 2006-02-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using initialization order and calling order constraints
US7010783B2 (en) * 2002-03-18 2006-03-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using reduced dynamic memory allocation
US7181737B2 (en) * 2002-03-18 2007-02-20 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using static procedure return addresses
US7370321B2 (en) * 2002-11-14 2008-05-06 Microsoft Corporation Systems and methods to read, optimize, and verify byte codes for a multiplatform jit
US7281237B2 (en) * 2003-01-16 2007-10-09 Sun Microsystems, Inc. Run-time verification of annotated software code
US7389501B1 (en) * 2003-02-18 2008-06-17 Microsoft Corporation System and method for register allocation using SSA construction
US7536674B2 (en) * 2003-08-13 2009-05-19 Intel Corporation Method and system for configuring network processing software to exploit packet flow data locality
US7210135B2 (en) * 2003-08-26 2007-04-24 Microsoft Corporation Data flow analysis of transactional processes
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US7353499B2 (en) 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US8220058B2 (en) * 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US7730459B2 (en) * 2003-09-30 2010-06-01 Intel Corporation Generating executable code based on code performance data
US7340732B2 (en) * 2003-11-26 2008-03-04 Sun Microsystems, Inc. Updating profile frequency for procedure inlining
US10109141B2 (en) 2003-12-24 2018-10-23 Intel Corporation Method and apparatus for establishing trust in smart card readers
US7568193B2 (en) * 2004-01-28 2009-07-28 Ati Technologies, Inc. Method and apparatus for static single assignment form dead code elimination
US7568191B2 (en) * 2004-01-30 2009-07-28 Ati Technologies, Inc. Method and apparatus for superword register value numbering
US7398520B2 (en) * 2004-06-07 2008-07-08 Microsoft Corporation Efficient construction of pruned SSA form
US7469404B2 (en) * 2004-06-30 2008-12-23 Intel Corporation Bank assignment for partitioned register banks
US7324106B1 (en) * 2004-07-27 2008-01-29 Nvidia Corporation Translation of register-combiner state into shader microcode
US7539983B2 (en) * 2005-01-14 2009-05-26 Microsoft Corporation Tool for processing software programs using modified live-ness definition
WO2006074576A1 (en) * 2005-01-14 2006-07-20 Intel Corporation Method and apparatus for generating execution equivalence information
US7681187B2 (en) * 2005-03-31 2010-03-16 Nvidia Corporation Method and apparatus for register allocation in presence of hardware constraints
US7693690B2 (en) * 2005-08-09 2010-04-06 Nec Laboratories America, Inc. Disjunctive image computation for sequential systems
US8359586B1 (en) 2007-08-20 2013-01-22 The Mathworks, Inc. Code generation
US8484611B2 (en) * 2007-10-15 2013-07-09 International Business Machines Corporation Method and system for simplified assembly of information processing applications
US8312426B2 (en) * 2008-01-07 2012-11-13 International Business Machines Corporation Method and system for simplified service composition in web environment
US8239828B2 (en) * 2008-01-08 2012-08-07 International Business Machines Corporation Method of recovering from software failures using replanning
US8245122B2 (en) * 2008-01-08 2012-08-14 International Business Machines Corporation Method and system for modeling user requests, applications and components used in dynamic application assembly
US8966465B2 (en) 2008-02-12 2015-02-24 Oracle International Corporation Customization creation and update for multi-layer XML customization
US8875306B2 (en) 2008-02-12 2014-10-28 Oracle International Corporation Customization restrictions for multi-layer XML customization
US8788542B2 (en) 2008-02-12 2014-07-22 Oracle International Corporation Customization syntax for multi-layer XML customization
US8640149B2 (en) 2008-03-26 2014-01-28 International Business Machines Corporation Method and apparatus for dynamic web service composition and invocation
US8949140B2 (en) 2008-04-21 2015-02-03 International Business Machines Corporation Method and system for dynamic software reconfiguration triggered by component- or system- initiated events
US8898624B2 (en) * 2008-05-05 2014-11-25 International Business Machines Corporation Method and apparatus for simplified assembly of parametric information processing applications
US8296748B2 (en) * 2008-07-24 2012-10-23 Intel Corporation Method and system for intermediate representation of source code
US8799319B2 (en) 2008-09-19 2014-08-05 Oracle International Corporation System and method for meta-data driven, semi-automated generation of web services based on existing applications
US8996658B2 (en) 2008-09-03 2015-03-31 Oracle International Corporation System and method for integration of browser-based thin client applications within desktop rich client architecture
US9122520B2 (en) 2008-09-17 2015-09-01 Oracle International Corporation Generic wait service: pausing a BPEL process
US8484630B2 (en) * 2008-12-23 2013-07-09 International Business Machines Corporation Code motion based on live ranges in an optimizing compiler
CA2684226A1 (en) * 2009-10-30 2011-04-30 Ibm Canada Limited - Ibm Canada Limitee Eleminating redundant operations for common properties using shared real registers
US8578343B2 (en) * 2010-01-15 2013-11-05 Oracle America, Inc. System and method for overflow detection using partial evaluations
US8656377B2 (en) * 2010-06-10 2014-02-18 Microsoft Corporation Tracking variable information in optimized code
US8954942B2 (en) * 2011-09-30 2015-02-10 Oracle International Corporation Optimizations using a BPEL compiler
US20130159122A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Optimizer as an appstore service
US8910134B2 (en) * 2013-01-03 2014-12-09 Oracle International Corporation System for applying transformation to improve graph analysis
US9286032B2 (en) 2013-03-15 2016-03-15 International Business Machines Corporation Automated software composition
US9582255B1 (en) 2015-08-28 2017-02-28 International Business Machines Corporation Method of splitting register live ranges
US9971570B2 (en) 2015-12-15 2018-05-15 Oracle International Corporation Automated generation of memory consumption aware code
US10802806B1 (en) * 2019-03-29 2020-10-13 Advanced Micro Devices, Inc. Generating vectorized control flow using reconverging control flow graphs
GB202010839D0 (en) * 2020-07-14 2020-08-26 Graphcore Ltd Variable allocation
CN115268936B (zh) * 2022-09-27 2022-12-27 之江实验室 一种用于计算图编译的优化方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4571678A (en) * 1982-11-05 1986-02-18 International Business Machines Corporation Register allocation and spilling via graph coloring
US4763255A (en) * 1984-10-31 1988-08-09 International Business Machines Corporation Method for generating short form instructions in an optimizing compiler
US4782444A (en) * 1985-12-17 1988-11-01 International Business Machine Corporation Compilation using two-colored pebbling register allocation method such that spill code amount is invariant with basic block's textual ordering
US5249295A (en) * 1990-06-20 1993-09-28 Rice University Digital computer register allocation and code spilling using interference graph coloring
US5293631A (en) * 1991-08-06 1994-03-08 Hewlett-Packard Company Analysis and optimization of array variables in compiler for instruction level parallel processor
US5327561A (en) * 1991-09-20 1994-07-05 International Business Machines Corporation System and method for solving monotone information propagation problems
US5355494A (en) * 1991-12-12 1994-10-11 Thinking Machines Corporation Compiler for performing incremental live variable analysis for data-parallel programs
US5448737A (en) * 1992-03-17 1995-09-05 International Business Machines Corporation System and method for optimizing computer code using a compact data flow representation
US5418958A (en) * 1992-07-15 1995-05-23 Sun Microsystems, Inc. Register allocation by decomposing, re-connecting and coloring hierarchical program regions
US5367651A (en) * 1992-11-30 1994-11-22 Intel Corporation Integrated register allocation, instruction scheduling, instruction reduction and loop unrolling
US5367684A (en) * 1992-11-30 1994-11-22 Intel Corporation Register allocation using an improved register candidate usage matrix
JP3280449B2 (ja) * 1993-03-01 2002-05-13 富士通株式会社 コンパイル装置

Also Published As

Publication number Publication date
JPH0922362A (ja) 1997-01-21
DE69622305D1 (de) 2002-08-22
EP0735468A2 (de) 1996-10-02
EP0735468B1 (de) 2002-07-17
US5659754A (en) 1997-08-19
CA2172772A1 (en) 1996-10-01
EP0735468A3 (de) 1998-03-18

Similar Documents

Publication Publication Date Title
DE69622305D1 (de) Verfahren und Gerät für einen optimierenden Kompiler
DE69635710D1 (de) Eingabegerät für bilderzeugungsverfahren und -gerät
DE69633376D1 (de) Messvorrichtung für intraokulare Substanzen
DE69636571D1 (de) Testkarte für Analysen
DE69608697T2 (de) Trennungsgerät für magnetisierbare teilen
DE69609265D1 (de) Verfahren und Vorrichtung für Gasbehandlung
DE69505417T2 (de) Konvergente vorrichtung für plasmajet
DE69518762T2 (de) Verbindungsvorrichtung für Leitungen
DE69628941D1 (de) Anordnung für sicherheitsgurt
DE69603694T2 (de) Kuvertiervorrichtung für Dokumente und Verfahren dafür
DE69614214D1 (de) Reinigungsvorrichtung für Walzen
DE29604682U1 (de) Vorrichtung für die Inspektion von Rohrleitungen
DE59603548D1 (de) Haltevorrichtung für Rohre
DE69601832D1 (de) Vorschubvorrichtung für Gurte
DE59608072D1 (de) Vorrichtung für nivellierzwecke
DE29502708U1 (de) Inspektionsvorrichtung
DE59611264D1 (de) Verfahren und vorrichtung zum spülen
DE29510652U1 (de) Verschlußvorrichtung für Halsschmuck
DE69626381T2 (de) Führungselement zum integralformen und verfahren dazu
DE69626602D1 (de) Vorrichtung für trickeffekte
DE59604851D1 (de) Trennvorrichtung für einen gegenstand
DE29617947U1 (de) Eingabevorrichtung für Maschinensteuerungen
DE59607036D1 (de) Wisch-Wasch-Vorrichtung für Fahrzeuge
DE59603849D1 (de) Lackierung für einen Gegenstand
DE69624325D1 (de) Vorrichtung zum Einführen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee