A simple algorithm which uses an indexed temporary table to perform reduction of operator strength in strongly connected regions is presented. Several extensions, including linear function test replacement, are discus...
详细信息
A simple algorithm which uses an indexed temporary table to perform reduction of operator strength in strongly connected regions is presented. Several extensions, including linear function test replacement, are discussed. These algorithms should fit well into an integrated package of local optimization algorithms.
Methods of compile-time program analysis for automatic codeoptimization usually include control flow analysis, in which possible execution flow paths are modeled, and data flow analysis, in which data relatiohsips ar...
详细信息
Methods of compile-time program analysis for automatic codeoptimization usually include control flow analysis, in which possible execution flow paths are modeled, and data flow analysis, in which data relatiohsips are modeled. One representation of data relations in a program, via use-definition chains, is examined in the light of a particular example problem—the global elimination of “useless” computation. Two elimination algorithms which use differently organized use-definition chains are presented and compared for space complexity on two pathologically different families of flow graphs. Algorithms to compute chains of both varieties are also developed.
The "profitability" of codeoptimizations is defined in terms of a Markov model of program flow. A system of linear equations for the expected frequency of execution of blocks of a program is derived. A solu...
详细信息
The problem of determining the points in a program at which variables are “live” (will be used again) is introduced and discussed. Two solutions, one which uses a simple iterative algorithm and one which uses an alg...
详细信息
The problem of determining the points in a program at which variables are “live” (will be used again) is introduced and discussed. Two solutions, one which uses a simple iterative algorithm and one which uses an algorithm based on “Cocke–Allen interval” analysis, are presented and analyzed. These algorithms are compared on “self replicating“ families of reducible program flow graphs. The results are inconclusive in that the interval method requires fewer bit-vector steps on some graphs and more on others. If n is the number of nodes in a program flow graph and the number of edges is linearly proportional to n, then both algorithms require O(noptimization of compiled code
compiler
flow graph reducibility
interval analysis
live variables
algorithmic complexity
暂无评论