WO2000038057A3 - Method and system for target register allocation - Google Patents

Method and system for target register allocation Download PDF

Info

Publication number
WO2000038057A3
WO2000038057A3 PCT/US1999/030804 US9930804W WO0038057A3 WO 2000038057 A3 WO2000038057 A3 WO 2000038057A3 US 9930804 W US9930804 W US 9930804W WO 0038057 A3 WO0038057 A3 WO 0038057A3
Authority
WO
WIPO (PCT)
Prior art keywords
target
location
register
allocation system
branch
Prior art date
Application number
PCT/US1999/030804
Other languages
French (fr)
Other versions
WO2000038057A2 (en
Inventor
Charles David Ii Callahan
Original Assignee
Tera Comp Company
Charles David Ii Callahan
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 Tera Comp Company, Charles David Ii Callahan filed Critical Tera Comp Company
Priority to AU27145/00A priority Critical patent/AU2714500A/en
Publication of WO2000038057A2 publication Critical patent/WO2000038057A2/en
Publication of WO2000038057A3 publication Critical patent/WO2000038057A3/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0866Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means by active credit-cards adapted therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/363Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes with the personal data of a user

Abstract

A computer-based method and system for allocating target registers to branch operations and for determining the location of target definitions for the branch operations within a computer program. The target register allocation system of the present invention allocates a target register to be specified by each branch operation. The target register is to contain the address of the target that is loaded by the target definition. The target register allocation system determines a location in the computer program for a target definition such that whenever the branch operation is executed, the allocated target register contains the address of the target of the branch. The target allocation system may determine the location to be in a dominator block of the branch operation. The target allocation system may also determine the location a target definition so that the address of the target that is loaded by the target definition can be used by multiple branch operations. The target allocation system may also determine the location of the target definition based on execution frequency of locations. The target allocation system may, when a branch operation is in a loop, determine the location of the target definition to be outside the loop. The target allocation system may, when the program is a function, give preference to a non-callee save register in allocating a target register. The target allocation system may give preference to a callee save register of a function whose invocation is located in between the determined location and the location of the branch operation on a path of execution when allocating a target register.
PCT/US1999/030804 1998-12-23 1999-12-22 Method and system for target register allocation WO2000038057A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU27145/00A AU2714500A (en) 1998-12-23 1999-12-22 Method and system for target register allocation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/221,287 1998-12-23
US09/221,287 US6321379B1 (en) 1998-12-23 1998-12-23 Method and system for target register allocation

Publications (2)

Publication Number Publication Date
WO2000038057A2 WO2000038057A2 (en) 2000-06-29
WO2000038057A3 true WO2000038057A3 (en) 2000-11-09

Family

ID=22827167

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/030804 WO2000038057A2 (en) 1998-12-23 1999-12-22 Method and system for target register allocation

Country Status (3)

Country Link
US (1) US6321379B1 (en)
AU (1) AU2714500A (en)
WO (1) WO2000038057A2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0025052D0 (en) * 2000-10-12 2000-11-29 Sgs Thomson Microelectronics Compiling computer programs including branch instructions
GB0025053D0 (en) * 2000-10-12 2000-11-29 Sgs Thomson Microelectronics Compiling computer programs including branch instructions
US6931418B1 (en) * 2001-03-26 2005-08-16 Steven M. Barnes Method and system for partial-order analysis of multi-dimensional data
US7331040B2 (en) * 2002-02-06 2008-02-12 Transitive Limted Condition code flag emulation for program code conversion
GB0202728D0 (en) * 2002-02-06 2002-03-27 Transitive Technologies Ltd Condition code flag emulation for program code conversion
US7089542B2 (en) * 2002-12-13 2006-08-08 International Business Machines Corporation Method and apparatus for finding errors in software programs using satisfiability of constraints
US7478374B2 (en) * 2004-03-22 2009-01-13 Intel Corporation Debug system having assembler correcting register allocation errors
US8352922B2 (en) * 2009-03-31 2013-01-08 International Business Machines Corporation Date and time simulation for time-sensitive applications
US8769498B2 (en) 2011-12-07 2014-07-01 International Business Machines Corporation Warning of register and storage area assignment errors
WO2013160732A1 (en) * 2012-04-26 2013-10-31 Freescale Semiconductor, Inc. Method and system for generating a memory trace of a program code executable on a programmable target

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1268557A (en) 1986-04-01 1990-05-01 Mikio Tomioka Method for displaying program executing circumstances and an apparatus using the same
US4819234A (en) 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
US5168554A (en) 1989-10-13 1992-12-01 International Business Machines Corporation Converting trace data from processors executing in parallel into graphical form
US5504932A (en) 1990-05-04 1996-04-02 International Business Machines Corporation System for executing scalar instructions in parallel based on control bits appended by compounding decoder
US5214763A (en) 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US5321837A (en) 1991-10-11 1994-06-14 International Business Machines Corporation Event handling mechanism having a process and an action association process
JP3544214B2 (en) 1992-04-29 2004-07-21 サン・マイクロシステムズ・インコーポレイテッド Method and system for monitoring processor status
JPH08507889A (en) 1993-03-15 1996-08-20 シーメンス アクチエンゲゼルシヤフト Method for mechanically generating instruction groups that can be processed in parallel from a program for a superscalar microprocessor
US6151701A (en) 1997-09-30 2000-11-21 Ahpah Software, Inc. Method for reconstructing debugging information for a decompiled executable file
US5557761A (en) 1994-01-25 1996-09-17 Silicon Graphics, Inc. System and method of generating object code using aggregate instruction movement
US5632032A (en) 1994-02-07 1997-05-20 International Business Machines Corporation Cross address space thread control in a multithreaded environment
US5533192A (en) 1994-04-21 1996-07-02 Apple Computer, Inc. Computer program debugging system and method
US5754855A (en) 1994-04-21 1998-05-19 International Business Machines Corporation System and method for managing control flow of computer programs executing in a computer system
JP2692609B2 (en) 1994-09-26 1997-12-17 日本電気株式会社 Multitask program debugging method and apparatus
US5812811A (en) 1995-02-03 1998-09-22 International Business Machines Corporation Executing speculative parallel instructions threads with forking and inter-thread communication
EP0729097A1 (en) 1995-02-07 1996-08-28 Sun Microsystems, Inc. Method and apparatus for run-time memory access checking and memory leak detection of a multi-threaded program
US5768591A (en) 1995-09-08 1998-06-16 Iq Systems Method of de-bugging host-processor software in a distributed processing system having a host processor and at least one object oriented processor
US5774721A (en) 1995-09-08 1998-06-30 Iq Systems, Inc. Method of communication between processors in a distributed processing system having a host processor and at least one object oriented processor
US5867643A (en) 1995-11-06 1999-02-02 Apple Computer, Inc. Run-time data type description mechanism for performance information in an extensible computer system
US5787245A (en) 1995-11-13 1998-07-28 Object Technology Licensing Corporation Portable debugging service utilizing a client debugger object and a server debugger object
US5893115A (en) 1995-11-29 1999-04-06 Lucent Technologies, Inc. Isochronal updating of data records
JPH1063550A (en) 1996-08-23 1998-03-06 Fujitsu Ltd Executing performance analytic display method and medium stored with program executing the method
US5961639A (en) 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US5887166A (en) 1996-12-16 1999-03-23 International Business Machines Corporation Method and system for constructing a program including a navigation instruction
US5913925A (en) 1996-12-16 1999-06-22 International Business Machines Corporation Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
EP0855648A3 (en) 1997-01-24 1999-12-22 Texas Instruments Inc. Data processing with parallel or sequential execution of program instructions
US6009269A (en) 1997-03-10 1999-12-28 Digital Equipment Corporation Detecting concurrency errors in multi-threaded programs
US6112317A (en) 1997-03-10 2000-08-29 Digital Equipment Corporation Processor performance counter for sampling the execution frequency of individual instructions
US6059840A (en) * 1997-03-17 2000-05-09 Motorola, Inc. Automatic scheduling of instructions to reduce code size
US5978902A (en) 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6058493A (en) 1997-04-15 2000-05-02 Sun Microsystems, Inc. Logging and reproduction of automated test operations for computing systems
US5901315A (en) 1997-06-13 1999-05-04 International Business Machines Corporation Method for debugging a Java application having native method dynamic load libraries
US5877766A (en) 1997-08-15 1999-03-02 International Business Machines Corporation Multi-node user interface component and method thereof for use in accessing a plurality of linked records
US6101524A (en) 1997-10-23 2000-08-08 International Business Machines Corporation Deterministic replay of multithreaded applications
US6112293A (en) 1997-11-17 2000-08-29 Advanced Micro Devices, Inc. Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result
US6002872A (en) 1998-03-31 1999-12-14 International Machines Corporation Method and apparatus for structured profiling of data processing systems and applications
US6072952A (en) * 1998-04-22 2000-06-06 Hewlett-Packard Co. Method and apparatus for coalescing variables
US6094716A (en) 1998-07-14 2000-07-25 Advanced Micro Devices, Inc. Register renaming in which moves are accomplished by swapping rename tags

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AGRAWAL H: "Dominators, super blocks, and program coverage", CONFERENCE RECORD OF POPL '94: 21ST ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, PORTLAND, OR, USA, 17 January 1994 (1994-01-17) - 21 January 1994 (1994-01-21), New York, NY, USA, ACM, USA, pages 25 - 34, XP002145472, ISBN: 0-89791-636-0, Retrieved from the Internet <URL:http://www.acm.org/pubs/articles/proceedings/plan/174675/p25-agrawal/p25-agrawal.pdf> [retrieved on 20000822] *
DAVIDSON J W ET AL.: "REDUCING THE COST OF BRANCHES BY USING REGISTERS", PROCEEDINGS OF THE 17TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE, SEATTLE, WASHINGTON, US, vol. SYMP. 17, 28 May 1990 (1990-05-28) - 31 May 1990 (1990-05-31), IEEE COMP. SOC. PRESS, LOS ALAMITOS, CA, US, pages 182 - 191, XP000144795, ISBN: 0-8186-2047-1, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/iel4/289/3676/00134524.pdf> [retrieved on 20000821] *
KNOOP J ET AL.: "THE POWER OF ASSIGNMENT MOTION", ACM SIGPLAN '95 CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI), LA JOLLA, CA, USA, ACM SIGPLAN NOTICES, vol. 30, no. 6, 18 June 1995 (1995-06-18) - 21 June 1995 (1995-06-21), ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, US, pages 233 - 245, XP000528313, ISSN: 0362-1340, Retrieved from the Internet <URL:http://www.acm.org/pubs/articles/proceedings/pldi/207110/p233-knoop/p233-knoop.pdf> [retrieved on 20000822] *
LANG T ET AL.: "REDUCED REGISTER SAVING/RESTORING IN SINGLE-WINDOW REGISTER FILES", COMPUTER ARCHITECTURE NEWS, vol. 14, no. 3, June 1986 (1986-06-01), ACM, NEW YORK, NY, US, pages 17 - 26, XP000603607, ISSN: 0163-5964 *

Also Published As

Publication number Publication date
US6321379B1 (en) 2001-11-20
AU2714500A (en) 2000-07-12
WO2000038057A2 (en) 2000-06-29

Similar Documents

Publication Publication Date Title
US7500077B2 (en) Use of region-oriented memory profiling to detect heap fragmentation and sparse memory utilization
US8453132B2 (en) System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems
US20080215845A1 (en) Methods, Systems, and Media for Managing Dynamic Storage
US8015556B2 (en) Efficient method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations
WO2000038057A3 (en) Method and system for target register allocation
CA2205797A1 (en) A system for local context spilling for graph colouring register allocators
GB2403321A (en) Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
US6158047A (en) Client/server system for fast, user transparent and memory efficient computer language translation
WO1998025196A3 (en) Dynamic branch prediction for branch instructions with multiple targets
WO2004012080A3 (en) Method for dynamically allocating and managing resources in a computerized system having multiple consumers
US9280350B2 (en) Methods and apparatus to perform adaptive pre-fetch operations in managed runtime environments
AU2001232126A1 (en) Secondary reorder buffer microprocessor
US6401182B1 (en) Method and apparatus for memory management
EP0880098A2 (en) Limited virtual address aliasing and fast context switching with multi-set virtual cache without backmaps
US20030079210A1 (en) Integrated register allocator in a compiler
US6134708A (en) Program compilation execution system
KR20030037125A (en) Apparatus and Implementation Method of Retargettable Incremental Linking Loarder for Embedded Systems
US7299467B2 (en) Method and system for minimizing memory access latency in a computer system
US6240500B1 (en) Method for dynamically placing procedures of a program in a memory
US20040268076A1 (en) Memory allocation in a multi-processor system
US6658553B1 (en) Universal pointer implementation scheme for uniformly addressing distinct memory spaces in a processor&#39;s address space
JPS63225829A (en) Global register assignment system
Pizka Thread Segment Stacks.
US20040123289A1 (en) Multi-processing inside a virtual machine
WO2003029964A3 (en) Method, data processing system and computer program for resource access co-ordination in a data processing system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase