programmer productivity and quality products depend significantly on the programmer's tools. Symbolic evaluation is a form of static program analysis in which symbolic expressions are used to denote the values of...
详细信息
programmer productivity and quality products depend significantly on the programmer's tools. Symbolic evaluation is a form of static program analysis in which symbolic expressions are used to denote the values of program variables and computations. It does not require the user to specify which path at a conditional branch to follow nor how many cycles of a loop to consider. Instead, a symbolic evaluator uses conditional expressions to represent the uncertainty that arises from branching and develops and attempts to solve recurrence relations that describe the behavior of loop variables. A symbolic evaluator for EL1, the base language of the ECL programming system, can scan an EL1 program and build a program database. An expression simplifier is the heart of the system. Its overall strategy is to simplify the operands of an expression and then call a specific simplification routine for the given operator. Figures.
An algebraic methodology has been developed for aggregating individual data types into larger more coordinated structures. Data structure encapsulation and abstraction permits separate local optimizations of these str...
详细信息
An algebraic methodology has been developed for aggregating individual data types into larger more coordinated structures. Data structure encapsulation and abstraction permits separate local optimizations of these structures. Computer programs should be written and maintained in very high-level programming languages. Since the level of these languages is too high for automatic program optimization, transformational implementation may be used to carry out the implementation of the program and to perform optimization. Data type transformations allow optimized programs to be derived from encapsulated descriptions.
An approach to code motion and hoisting, a program optimization technique, is discussed. The safety and profitability of optimization in general and hoisting in particular are analyzed. By restricting the analysis to ...
详细信息
An approach to code motion and hoisting, a program optimization technique, is discussed. The safety and profitability of optimization in general and hoisting in particular are analyzed. By restricting the analysis to a spanning tree imposed on the program graph, a linear algorithm is developed that provides sufficient but not necessary conditions for hoisting.
This paper describes a language-based approach for automatic and accurate cost-bound analysis. The approach consists of transformations for building cost-bound functions in the presence of partially known input struct...
详细信息
This paper describes a language-based approach for automatic and accurate cost-bound analysis. The approach consists of transformations for building cost-bound functions in the presence of partially known input structures, symbolic evaluation of the cost-bound function based on input size parameters, and optimizations to make the overall analysis efficient as well as accurate, all at the source-language level. The calculated cost bounds are expressed in terms of primitive cost parameters. These parameters can be obtained based on the language implementation or can be measured conservatively or approximately, yielding accurate, conservative, or approximate time or space bounds. We have implemented this approach and performed a number of experiments for analyzing Scheme programs. The results helped confirm the accuracy of the analysis.
Generating schedules for expression DAGs that use a minimal number of registers is a classical NP-complete optimization problem. Up to now an exact solution could only be computed for small DAGs (with up to 20 nodes),...
详细信息
Generating schedules for expression DAGs that use a minimal number of registers is a classical NP-complete optimization problem. Up to now an exact solution could only be computed for small DAGs (with up to 20 nodes), using a trivial O(n!) enumeration algorithm. We present a new algorithm with worst-case complexity O(n2(2n)) and very good average behavior. Applying a dynamic programming scheme and reordering techniques, our algorithm is able to defer the combinatorial explosion and to generate an optimal schedule not only for small DAGs:but also for medium-sized ones with up to 50 nodes, a class that contains nearly all DAGs encountered in typical application programs. Experiments with randomly generated DAGs and large DAGs from real application programs confirm that the new algorithm generates optimal schedules quite fast. We extend our algorithm to cope with delay slots and multiple functional units, two common features of modern superscalar processors. (C) 1998 Elsevier Science Ltd. All rights reserved.
Eliminating partially dead code has proved to be a powerful technique for the runtime optimization of sequential programs. In this article, we show how this technique can be adapted to explicitly parallel programs wit...
详细信息
Eliminating partially dead code has proved to be a powerful technique for the runtime optimization of sequential programs. In this article, we show how this technique can be adapted to explicitly parallel programs with shared memory and interleaving semantics. The basis of this adaption is a recently presented framework for efficient and precise bitvector analyses for this program setting. Whereas the framework underlying our approach allows a straightforward adaptation of the required data flow analyses to the parallel case, the transformation part of the optimization requires special care in order to preserve parallelism This preservation is an absolute must in order to guarantee that the optimization does never impair efficiency. The introduction of an appropriate natural side condition suffices to lift even the optimality result known from the sequential setting to the parallel setting. (C) 1998-Elsevier Science B.V. All rights reserved.
This paper introduces a formal model of a method for automated adjustment of parallel applications (autotuning). The software implementation of this model is described in the form of a flexible software framework for ...
详细信息
This paper introduces a formal model of a method for automated adjustment of parallel applications (autotuning). The software implementation of this model is described in the form of a flexible software framework for automatic generation of autotuners using an underlain term rewriting system and expert knowledge as a source of optimizing transformations.
Loop cleaning is a frequently used method for optimizing the run time of a program. With loop cleaning, computations are removed from a repeatedly executed region, such as a loop or recursive procedure body. The com...
详细信息
Loop cleaning is a frequently used method for optimizing the run time of a program. With loop cleaning, computations are removed from a repeatedly executed region, such as a loop or recursive procedure body. The computations are placed outside the repeatedly executed region such that the values computed by the program are not altered. A loop-cleaning procedure is presented; it uses equivalent program transformations to simultaneously remove calculations from repeatedly executed regions and place them either in front of the regions or behind them. The equivalent program transformations are shown to result in more complete loop cleaning than previous methods.
SETL is a set-theoretically oriented language of very high level whose repertoire of semantic objects includes finite sets, ordered n-tuples, and sets of ordered n-tuples usable as mappings. This paper describes the s...
详细信息
SETL is a set-theoretically oriented language of very high level whose repertoire of semantic objects includes finite sets, ordered n-tuples, and sets of ordered n-tuples usable as mappings. This paper describes the structure of an optimizer for this language. Among other methods of interest, the optimizer uses techniques which allow relations of inclusion and membership to be established, the domains and ranges of (tabulated) mappings to be estimated from above and below, and the single-valuedness of (tabulated) mappings to be proved. Once facts of this kind have been established, automatic choice of data structures becomes possible. The methods employed are based upon, and extend, known techniques of data flow analysis. [ABSTRACT FROM AUTHOR]
In China's current market, there are many cold-formed thin-walled members used to construct low-rise light steel buildings. The members are mainly manufactured by 550 MPa yield strength aluminized zinc-coated stee...
详细信息
In China's current market, there are many cold-formed thin-walled members used to construct low-rise light steel buildings. The members are mainly manufactured by 550 MPa yield strength aluminized zinc-coated steel sheets with a width of 180 mm. Since the load-carrying capacity of different section shapes significantly varies within a constant sectional area, finding the section shape with the highest load-carrying efficiency is one of the key problems. In this paper, the optimal section under axial compression is investigated. Initially, a program was written to select several candidate sections with high efficiency based on the theoretical load-carrying capacity calculation. Then, finite element analyses and loading tests were carried out on the selected sections, and the section with the highest load-carrying capacity was determined as the optimal section. The results indicate that the variation trends of the load-carrying capacity of the members with different section sizes obtained by theoretical calculation, finite element simulation, and loading test were consistent. When the ratio of web height to the sum of flange and lip width is between 1 and 2, the axial load-carrying capacity of the member is relatively high. The distortional buckling capacity is relatively higher when the lip width is larger. The short columns with optimal sections undergo local-distortional interaction buckling, whereas the long columns with optimal sections undergo the interaction among local, distortional, and overall buckling. The optimal section size, i.e., web height of 81 mm, flange width of 37.5 mm, and lip width of 12 mm, is proposed for engineering design reference.
暂无评论