In computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers).
Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster. It has been shown that some code optimization problems are NP-complete, or even undecidable. In practice, factors such as the programmer's willingness to wait for the compiler to complete its task place upper limits on the optimizations that a compiler might provide. Optimization is generally a very CPU- and memory-intensive process. In the past, computer memory limitations were also a major factor in limiting which optimizations could be performed.
Because of these factors, optimization rarely produces "optimal" output in any sense, and in fact, an "optimization" may impede performance in some cases. Rather, they are heuristic methods for improving resource usage in typical programs.[1]
^Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). Compilers: Principles, Techniques, and Tools. Reading, Massachusetts: Addison-Wesley. p. 585. ISBN 0-201-10088-6.
and 19 Related for: Optimizing compiler information
In computing, an optimizingcompiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements...
cross-compiler itself runs. A bootstrap compiler is often a temporary compiler, used for compiling a more permanent or better optimised compiler for a...
form of optimization. Use of an optimizingcompiler tends to ensure that the executable program is optimized at least as much as the compiler can predict...
The GNU Compiler Collection (GCC) is an optimizingcompiler produced by the GNU Project supporting various programming languages, hardware architectures...
executable programs. The Production Quality Compiler-Compiler, in the late 1970s, introduced the principles of compiler organization that are still widely used...
It describes the BLISS optimizingcompiler for the PDP-11, written at Carnegie Mellon University in the early 1970s. The compiler ran on a PDP-10 and was...
Peephole optimization is an optimization technique performed on a small set of compiler-generated instructions; the small set is known as the peephole...
transformation can be undertaken manually by the programmer or by an optimizingcompiler. On modern processors, loop unrolling is often counterproductive...
Interprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many...
computing offers a bytecode compiler through the compiler package, now standard with R version 2.13.0. It is possible to compile this version of R so that...
Cranelift (formerly known as Cretonne) is an optimizingcompiler backend that converts a target-independent intermediate representation into executable...
sufficiently aggressive optimizingcompiler could destroy the effectiveness of Kahan summation: for example, if the compiler simplified expressions according...
optimization. Her 1971 paper with Cocke, "A Catalog of Optimizing Transformations," provided the first description and systematization of optimizing transformations...
computing, object code or object module is the product of an assembler or compiler. In a general sense object code is a sequence of statements or instructions...
Fortran. In 2020 the existing compiler was renamed “Intel Fortran Compiler Classic” (ifort) and a new Intel Fortran Compiler for oneAPI (ifx) supporting...
Intermediate Language HHVM C-- Amsterdam Compiler Kit (ACK) Optimizingcompiler LLDB (debugger) GNU lightning GNU Compiler Collection (GCC) Pure OpenCL ROCm...
example, a compiler that runs on a PC but generates code that runs on Android devices is a cross compiler. A cross compiler is useful to compile code for...
CompCert is a formally verified optimizingcompiler for a large subset of the C99 programming language (known as Clight) which currently targets PowerPC...