(1) Field of the Invention
The present invention relates to a compiler that converts a source program described in a high-level language such as C++ language into a machine language, and especially to optimization by a compiler.
(2) Description of the Related Art
A high-performance compiler that can exploit effectively a high function that a processor has is much sought after as the function of the processor is greatly improved in recent year. In other words, the compiler that generates effectively advanced and specific instructions that the target processor executes is demanded.
For example, a processor that executes operation instructions in various fixed-point formats required for media processing such as digital signal processing and a high-performance processor that executes SIMD (Single Instruction Multiple Data) type instructions are developed. The compiler that targets such a processor is required to optimize a code size and execution speed by effectively generating the operation instructions in the various fixed-point formats and the SIMD type instructions.
It is not necessarily said, however, that a conventional compiler generates effectively advanced and specific instructions that the processor executes in regard to a source program described in a high-level language such as C++ language. Consequently, in the development of applications for media processing and others that require strict conditions in terms of the code size and the execution speed, a user has no choice but to describe critical points in assembler instructions under the present conditions. But there is a problem that the programming by the assembler instructions not only requires more man-hours but also is vastly inferior in maintainability and portability compared with the development using a high-level language such as C++ language.
Additionally, the conventional compiler has within itself optimization processing for generating the advanced and specific instructions and the like that the processor executes. In other words, a processing module for optimization using effectively features of the target processor is included in the compiler itself and integrated. Consequently, when a function of the compiler is extended or the specifications of the target compiler are changed, it is necessary to reconfigure the whole compiler. There is a problem that an upgrading of the version and the like of the compiler must be repeated for each time.