METHOD AND SYSTEM FOR DETERMINING INTER-COMPILATION UNIT ALIAS INFORMATION

    公开(公告)号:CA2166369A1

    公开(公告)日:1997-06-30

    申请号:CA2166369

    申请日:1995-12-29

    Applicant: IBM CANADA

    Abstract: A system and method for determining alias information at the intercompilation unit level of a compilation process includes the steps of determining antialias sets from the alias information provided by the first stage of the compilation process, calculating pessimistic inter-compilation unit alias sets and refining these sets, after transitive closure as appropriate, with the anti-alias sets.

    LOOP ALLOCATION FOR OPTIMIZING COMPILERS

    公开(公告)号:CA2288614A1

    公开(公告)日:2001-05-08

    申请号:CA2288614

    申请日:1999-11-08

    Applicant: IBM CANADA

    Abstract: Loop allocation for optimizing compilers includes the generation of a progra m dependence graph for a source code segment. Control dependence graph representations of the nested loops, from innermost to outermost, are generated and data dependence graph representations are generated for each level of nested loop as constrained by the control dependence graph. An interference graph is generated with the nodes of the data dependence graph. Weights are generated for the edges of the interference graph reflecting the affinity between statements represented by the nodes joined by the edges. Nodes in the interference graph are given weights reflecting resource usage by the statements associated with the nodes. The interference graph is partitioned using a profitability test based on the weights of edges and nodes and on a correctness test based on the reachability of nodes in the data dependence graph. Code is emitted based on the partitioned interference graph.

    Global Variable Coalescing
    4.
    发明专利

    公开(公告)号:CA2166252A1

    公开(公告)日:1997-06-29

    申请号:CA2166252

    申请日:1995-12-28

    Applicant: IBM CANADA

    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.

    LOOP ALLOCATION FOR OPTIMIZING COMPILERS

    公开(公告)号:CA2288614C

    公开(公告)日:2004-05-11

    申请号:CA2288614

    申请日:1999-11-08

    Applicant: IBM CANADA

    Abstract: Loop allocation for optimizing compilers includes the generation of a progra m dependence graph for a source code segment. Control dependence graph representations of the nested loops, from innermost to outermost, are generated and data dependence graph representations are generated for each level of nested loop as constrained by the control dependence graph. An interference graph is generated with the nodes of the data dependence graph. Weights are generated for the edges of the interference graph reflecting the affinity between statements represented by the nodes joined by the edges. Nodes in the interference graph are given weights reflecting resource usage by the statements associated with the nodes. The interference graph is partitioned using a profitability test based on the weights of edges and nodes and on a correctness test based on the reachability of nodes in the data dependence graph. Code is emitted based on the partitioned interference graph.

    OPTIMIZING SOURCE CODE FOR ITERATIVE EXECUTION

    公开(公告)号:CA2365375A1

    公开(公告)日:2003-06-18

    申请号:CA2365375

    申请日:2001-12-18

    Applicant: IBM CANADA

    Abstract: An embodiment of the present invention provides an optimizer for optimizing source code to generate optimized source code having instructions for instructing a central processing unit (CPU) to iteratively compute values for a primary recurrence element. A computer programmed loop for computing the primary recurrence element and subsequent recurrence elements is an example of a case involving iteratively computing the primary recurrence element. The CPU is operatively coupled to fast operating memory (FOM) and operativel y coupled to slow operating memory (SOM). SOM stores the generated optimized source code. The optimized source code includes instructions for instructing said CPU to stor e a computed value of the primary recurrence element in a storage location of FOM. The instructions also includes instructions to consign the computed value of the primary recurrence element from the storage location to another storage location of the FOM.

Patent Agency Ranking