CA2166252A1 - Global Variable Coalescing - Google Patents

Global Variable Coalescing

Info

Publication number
CA2166252A1
CA2166252A1 CA2166252A CA2166252A CA2166252A1 CA 2166252 A1 CA2166252 A1 CA 2166252A1 CA 2166252 A CA2166252 A CA 2166252A CA 2166252 A CA2166252 A CA 2166252A CA 2166252 A1 CA2166252 A1 CA 2166252A1
Authority
CA
Canada
Prior art keywords
variables
global
data
size
global variable
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.)
Granted
Application number
CA2166252A
Other languages
French (fr)
Other versions
CA2166252C (en
Inventor
Robert James Blainey
Christopher Michael Donawa
James Lawrence Mcinnes
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.)
IBM Canada Ltd
Original Assignee
IBM Canada Ltd
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 IBM Canada Ltd filed Critical IBM Canada Ltd
Priority to CA002166252A priority Critical patent/CA2166252C/en
Priority to US08/726,039 priority patent/US5850549A/en
Publication of CA2166252A1 publication Critical patent/CA2166252A1/en
Application granted granted Critical
Publication of CA2166252C publication Critical patent/CA2166252C/en
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/44Encoding
    • G06F8/443Optimisation
    • 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

Abstract

An interprocedural compilation method for aggregating global data variables in external storage to maximize data locality. Using the information displayed in a weighted interference graph in which node weights represent the size of data stored in each global variable and edges between variables represent access relationships between the globals, the global variables can be mapped into aggregates based on this frequency of access, while preventing the cumulative data size in any aggregate from exceeding a memory size restriction.
CA002166252A 1995-12-28 1995-12-28 Global variable coalescing Expired - Fee Related CA2166252C (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA002166252A CA2166252C (en) 1995-12-28 1995-12-28 Global variable coalescing
US08/726,039 US5850549A (en) 1995-12-28 1996-10-07 Global variable coalescing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002166252A CA2166252C (en) 1995-12-28 1995-12-28 Global variable coalescing

Publications (2)

Publication Number Publication Date
CA2166252A1 true CA2166252A1 (en) 1997-06-29
CA2166252C CA2166252C (en) 1999-08-24

Family

ID=4157249

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002166252A Expired - Fee Related CA2166252C (en) 1995-12-28 1995-12-28 Global variable coalescing

Country Status (2)

Country Link
US (1) US5850549A (en)
CA (1) CA2166252C (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337173B1 (en) * 1997-12-04 2008-02-26 Netscape Communications Corporation Compiler having global element optimization
US6072952A (en) * 1998-04-22 2000-06-06 Hewlett-Packard Co. Method and apparatus for coalescing variables
CA2288614C (en) * 1999-11-08 2004-05-11 Robert J. Blainey Loop allocation for optimizing compilers
CA2321016A1 (en) * 2000-09-27 2002-03-27 Ibm Canada Limited-Ibm Canada Limitee Interprocedural dead store elimination
GB2377038A (en) * 2001-04-10 2002-12-31 I2 Ltd Method for identifying patterns in sequential event streams
US7185328B2 (en) * 2002-05-30 2007-02-27 Microsoft Corporation System and method for improving a working set
US7069548B2 (en) * 2002-06-28 2006-06-27 Intel Corporation Inter-procedure global register allocation method
US7275242B2 (en) * 2002-10-04 2007-09-25 Hewlett-Packard Development Company, L.P. System and method for optimizing a program
US7310799B2 (en) * 2002-12-31 2007-12-18 International Business Machines Corporation Reducing load instructions via global data reordering
EP1679626A4 (en) * 2003-10-31 2006-12-13 Fujitsu Ltd Design support device, design support method, design support program, and recording medium
US7765534B2 (en) * 2004-04-30 2010-07-27 International Business Machines Corporation Compiler with cache utilization optimizations
US7555748B2 (en) * 2004-08-30 2009-06-30 International Business Machines Corporation Method and apparatus for improving data cache performance using inter-procedural strength reduction of global objects
US7472382B2 (en) * 2004-08-30 2008-12-30 International Business Machines Corporation Method for optimizing software program using inter-procedural strength reduction
JP4559937B2 (en) * 2005-09-01 2010-10-13 株式会社東芝 Program generator
US7590977B2 (en) * 2005-10-13 2009-09-15 International Business Machines Corporation Method and system for reducing memory reference overhead associated with threadprivate variables in parallel programs
US20090055628A1 (en) * 2007-08-21 2009-02-26 International Business Machine Corporation Methods and computer program products for reducing load-hit-store delays by assigning memory fetch units to candidate variables
US8392878B2 (en) * 2007-10-31 2013-03-05 National Instruments Corporation In-place structure in a graphical program
US11321236B2 (en) * 2018-01-08 2022-05-03 Microsoft Technology Licensing, Llc. Reduced instructions to generate global variable addresses

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428793A (en) * 1989-11-13 1995-06-27 Hewlett-Packard Company Method and apparatus for compiling computer programs with interproceduural register allocation
US5107418A (en) * 1990-06-11 1992-04-21 Supercomputer Systems Limited Partnership Method for representing scalar data dependences for an optimizing compiler
IL100989A (en) * 1991-02-27 1995-10-31 Digital Equipment Corp Analyzing inductive expressions in a multilanguage optimizing compiler
US5367683A (en) * 1992-06-26 1994-11-22 Digital Equipment Corporation Smart recompilation of performing matchup/difference after code generation
US5446899A (en) * 1992-06-26 1995-08-29 Digital Equipment Corporation Hint generation in smart recompilation
US5535392A (en) * 1992-06-26 1996-07-09 Digital Equipment Corporation Using hint generation to cause portions of object files to remain the same
US5625822A (en) * 1992-06-26 1997-04-29 Digital Equipment Corporation Using sorting to do matchup in smart recompilation
CA2102089C (en) * 1993-10-29 1999-05-25 David M. Gillies Recompilation of computer programs for enhanced optimization

Also Published As

Publication number Publication date
CA2166252C (en) 1999-08-24
US5850549A (en) 1998-12-15

Similar Documents

Publication Publication Date Title
CA2166252A1 (en) Global Variable Coalescing
AU7741494A (en) Multiprocessor data memory sharing
EP0621599A3 (en) Memory control and memory data search.
AU1265195A (en) Secure computer memory card
DE69609862T2 (en) DATA ACCESS
DE69612676T2 (en) Ferroelectric random access memory
AU5226996A (en) High memory capacity dimm with data and state memory
AU6632196A (en) Data exchange system comprising portable data processing units
DE69630758D1 (en) Ferroelectric memory and data reading method from this memory
WO1998013740A3 (en) Method and apparatus for aliasing memory data in an advanced microprocessor
AU2729299A (en) Method and access means for determining the storage address of a data value in amemory device
EP0617383A3 (en) Data storage device.
DE59602959D1 (en) DATA STORAGE OPERABLE ON DATA BUS
FR2694119B1 (en) Reading circuit for memory, with recharging and balancing before reading.
GB2304948B (en) Semiconductor memory device including fast access data output paths
EP0649095A3 (en) Nonvolatile storage with high speed data access.
DE69619752T2 (en) Television data storage device
DE69625038D1 (en) Dynamic random access memory
DE69422453T2 (en) Double access memory
EP0621602A3 (en) Random access memory.
DE69620528T2 (en) Dynamic random access memory
EP0618551A3 (en) Data storage apparatus having memory area having predetermined logic type.
DE69615597D1 (en) Shared memory access device
AU5728294A (en) Portable memory device and method of securing the integrity of stored data therein
GB2282248B (en) Data memory

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed