Results 1 -
7 of
7
PROPAN: A Retargetable System for Postpass Optimisations and Analyses
, 2000
"... Propan is a system that allows for the generation of machine-dependent postpass optimisations and analyses on assembly level. It has been especially designed to perform high-quality optimisations for irregular architectures. All information about the target architecture is specied in the machine des ..."
Abstract
-
Cited by 16 (4 self)
- Add to MetaCart
Propan is a system that allows for the generation of machine-dependent postpass optimisations and analyses on assembly level. It has been especially designed to perform high-quality optimisations for irregular architectures. All information about the target architecture is specied in the machine description language Tdl. For each target architecture a phase-coupled code optimiser is generated which can perform integrated global instruction scheduling, register reassignment, and resource allocation by integer linear programming (ILP). All relevant hardware characteristics of the target processor are precisely incorporated in the generated integer linear programs. Two dierent ILP models are available so that the most appropriate modelling can be selected individually for each target architecture. The integer linear programs can be solved either exactly or by the use of ILP-based approximations. This allows for high quality solutions to be calculated in acceptable time. A set of practic...
Code Generation for Embedded Processors
- 13th International Symposium on System Synthesis
, 2000
"... The increasing use of programmable processors as IP blocks in embedded system design creates a need for C/C++ compilers capable of generating efficient machine code. Many of today's compilers for embedded processors suffer from insufficient code quality in terms of code size and performance. Th ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
The increasing use of programmable processors as IP blocks in embedded system design creates a need for C/C++ compilers capable of generating efficient machine code. Many of today's compilers for embedded processors suffer from insufficient code quality in terms of code size and performance. This violates the tight chip area and realtime constraints often imposed on embedded systems. The reason is that embedded processors typically show architectural features which are not well handled by classical compiler technology. This paper provides a survey of methods and techniques dedicated to efficient code generation for embedded processors. Emphasis is put on DSP and multimedia processors, for which better compiler technology is definitely required. In addition, some frontend aspects and recent trends in research and industry are briefly covered. The goal of these recent efforts in embedded code generation is to facilitate the step from assembly to high-level language progra...
Graph-Based Code Selection Techniques for Embedded Processors
- ACM Transactions on Design Automation of Electronic Systems
, 2000
"... There is an efficient and optimal algorithm [1] available for code selection based on tree parsing. This can be implemented using tree parsing and dynamic programming. Given a cost metric for instruction patterns, ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
There is an efficient and optimal algorithm [1] available for code selection based on tree parsing. This can be implemented using tree parsing and dynamic programming. Given a cost metric for instruction patterns,
ILP-based Approximations for Retargetable Code Optimization
, 2001
"... ... this article novel approximation techniques for ILP-based code optimization are presented. The presented approximation techniques mostly produce optimal results while reducing the computation time by orders of magnitude compared to the exact solution. The PROPAN framework has been retargeted to ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
... this article novel approximation techniques for ILP-based code optimization are presented. The presented approximation techniques mostly produce optimal results while reducing the computation time by orders of magnitude compared to the exact solution. The PROPAN framework has been retargeted to several representative standard digital signal processors. Practical experiments demonstrate the applicability of this approach.
Verified Code Generation for Embedded Systems
, 2002
"... Digital signal processors provide specialized SIMD (single instruction multiple data) operations designed to dramatically increase performance in embedded systems. While these operations are simple to understand, their unusual functions and their parallelism make it di#cult for automatic code genera ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Digital signal processors provide specialized SIMD (single instruction multiple data) operations designed to dramatically increase performance in embedded systems. While these operations are simple to understand, their unusual functions and their parallelism make it di#cult for automatic code generation algorithms to use them e#ectively. In this paper, we present a new optimizing code generation method that can deploy these operations successfully while also verifying that the generated code is a correct translation of the input program.
Graph based Code Selection Techniques for Embedded Processors
- ACM Design Automation of Electronic Systems
, 2000
"... Code selection is an important task in code generation for programmable processors, where the goal is to find an eicient mapping of machine-independent intermediate code to processor-specific machine instructions. Traditional approaches to code selection are based on tree parsing, which enables fast ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Code selection is an important task in code generation for programmable processors, where the goal is to find an eicient mapping of machine-independent intermediate code to processor-specific machine instructions. Traditional approaches to code selection are based on tree parsing, which enables fast and optimal code selection for intermediate code given as a set of data-flow trees. While this approach is generally useful in compilers for general-purpose processors, it may lead to poor code quality in the case of embedded processors. The reason is that the special architectural features of embedded processors require to perform code selection on data-flow graphs, which are a more general representation of intermediate code. In this paper, we present data-flow graph based code selection techniques for two architectural families of embedded processors: media processors with support for SIMD instructions and fixed-point DSPs with irregular data paths. Both techniques exploit the fact that, in the area of embedded systems, high code quality is a much more important goal than high compilation speed. We demonstrate that certain architectural features can only be utilized by graph based code selection, while in other cases this approach leads to a signicant increase in code quality as compared to tree based code selection.
Retargetable Graph-Coloring Register Allocation for Irregular Architectures
- COMPUTERS AND CHEMICAL ENGINEERING
, 2003
"... Global register allocation is one of the most important optimizations in a compiler. Since the early 80's, register allocation by graph coloring has been the dominant approach. The traditional formulation of graph-coloring register allocation implicitly assumes a single bank of non-overlapping g ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Global register allocation is one of the most important optimizations in a compiler. Since the early 80's, register allocation by graph coloring has been the dominant approach. The traditional formulation of graph-coloring register allocation implicitly assumes a single bank of non-overlapping general-purpose registers and does not handle irregular architectural features like overlapping register pairs, special purpose registers, and multiple register banks. We present a generalization of graph-coloring register allocation that can handle all such irregularities. The algorithm

