CA2166252A1 - Global Variable Coalescing - Google Patents
Global Variable CoalescingInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency 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.
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)
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)
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 |
-
1995
- 1995-12-28 CA CA002166252A patent/CA2166252C/en not_active Expired - Fee Related
-
1996
- 1996-10-07 US US08/726,039 patent/US5850549A/en not_active Expired - Fee Related
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 |