Compiler optimizations
Adaptive optimization
Adaptive optimization is a technique in computer science that performs dynamic recompilation of portions of a program based on the current execution profile.
Adaptive optimization is a technique in computer science that performs dynamic recompilation of portions of a program based on the current execution profile.
Automatic parallelization
Automatic parallelization, also auto parallelization, autoparallelization, or parallelization, the last one of which implies automation when used in context, refers to converti...
Automatic parallelization, also auto parallelization, autoparallelization, or parallelization, the last one of which implies automation when used in context, refers to converti...
Available expression
In the field of compiler optimizations, available expressions is an analysis algorithm that determines for each point in the program the set of expressions that need not be recomputed.
In the field of compiler optimizations, available expressions is an analysis algorithm that determines for each point in the program the set of expressions that need not be recomputed.
Basic block
In computing, a basic block is a portion of the code within a program with certain desirable properties that make it highly amenable to analysis.
In computing, a basic block is a portion of the code within a program with certain desirable properties that make it highly amenable to analysis.
Bounds-checking elimination
In computer science, bounds-checking elimination is a compiler optimization useful in programming languages or runtimes that enforce bounds checking, the practice of consistently checking every ...
In computer science, bounds-checking elimination is a compiler optimization useful in programming languages or runtimes that enforce bounds checking, the practice of consistently checking every ...
Common subexpression elimination
In computer science, common subexpression elimination (CSE) is a compiler optimization that searches for instances of identical expressions (i.e., they all evaluate to the same value), and analy...
In computer science, common subexpression elimination (CSE) is a compiler optimization that searches for instances of identical expressions (i.e., they all evaluate to the same value), and analy...
Compiler optimization
Compiler optimization is the process of tuning the output of a compiler to minimize or maximize some attributes of an executable computer program.
Compiler optimization is the process of tuning the output of a compiler to minimize or maximize some attributes of an executable computer program.
Constant folding
Constant folding and constant propagation are related compiler optimizations used by many modern compilers.
Constant folding and constant propagation are related compiler optimizations used by many modern compilers.
Copy elision
In C++ computer programming, copy elision refers to a compiler optimization technique that eliminates unnecessary copying of objects.
In C++ computer programming, copy elision refers to a compiler optimization technique that eliminates unnecessary copying of objects.
Copy propagation
In compiler theory, copy propagation is the process of replacing the occurrences of targets of direct assignments with their values.
In compiler theory, copy propagation is the process of replacing the occurrences of targets of direct assignments with their values.
cpuinfo falsification
cpuinfo falsification is a lowest common denominator technique that can be used on GNU operating systems to provide backwards compatible behaviour of the compiler and software tools.
cpuinfo falsification is a lowest common denominator technique that can be used on GNU operating systems to provide backwards compatible behaviour of the compiler and software tools.
Dead code
In computer programming, dead code is a code in the source code of a program which is executed but whose result is never used in any other computation.
In computer programming, dead code is a code in the source code of a program which is executed but whose result is never used in any other computation.
Dead code elimination
In compiler theory, dead code elimination is a compiler optimization to remove code which does not affect the program results.
In compiler theory, dead code elimination is a compiler optimization to remove code which does not affect the program results.
Enabling transformation
In computer science, an enabling transformation is a compiler optimization that increases the effectiveness of other compiler optimizations.
In computer science, an enabling transformation is a compiler optimization that increases the effectiveness of other compiler optimizations.
Frameworks supporting the polyhedral model
There are many frameworks supporting the polyhedral model.
There are many frameworks supporting the polyhedral model.
Global value numbering
Global value numbering (GVN) is a compiler optimization based on the SSA intermediate representation.
Global value numbering (GVN) is a compiler optimization based on the SSA intermediate representation.
Induction variable
In computer science, an induction variable is a variable that gets increased or decreased by a fixed amount on every iteration of a loop, or is a linear function of another induction variable.
In computer science, an induction variable is a variable that gets increased or decreased by a fixed amount on every iteration of a loop, or is a linear function of another induction variable.
Inline caching
Inline caching is an optimization technique employed by some language runtimes, and first developed for Smalltalk.
Inline caching is an optimization technique employed by some language runtimes, and first developed for Smalltalk.
Inline expansion
In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the callee.
In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the callee.
Instruction scheduling
In computer science, instruction scheduling is a compiler optimization used to improve instruction-level parallelism, which improves performance on machines with instruction pipelines.
In computer science, instruction scheduling is a compiler optimization used to improve instruction-level parallelism, which improves performance on machines with instruction pipelines.
Instruction selection
In computer science, instruction selection is the stage of a compiler backend that transforms its tree-based middle-level intermediate representation (IR) into a low-level IR very close to its f...
In computer science, instruction selection is the stage of a compiler backend that transforms its tree-based middle-level intermediate representation (IR) into a low-level IR very close to its f...
Interprocedural optimization
Interprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or me...
Interprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or me...
Java performance
Java performance is the performance of a compiled Java program.
Java performance is the performance of a compiled Java program.
Jump threading
In computing, jump threading is a compiler optimization.
In computing, jump threading is a compiler optimization.
Lazy evaluation
In programming language theory, lazy evaluation or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed and which also avoids repea...
In programming language theory, lazy evaluation or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed and which also avoids repea...
Link-time optimization
Link-time optimization is a type of program optimization performed by a compiler to a program at link time.
Link-time optimization is a type of program optimization performed by a compiler to a program at link time.
Loop fission
Loop fission (or loop distribution) is a compiler optimization technique attempting to break a loop into multiple loops over the same index range but each taking only a part of the loop's body.
Loop fission (or loop distribution) is a compiler optimization technique attempting to break a loop into multiple loops over the same index range but each taking only a part of the loop's body.
Loop fusion
Loop fusion, also called loop jamming, is a compiler optimization, a loop transformation, which replaces multiple loops with a single one.
Loop fusion, also called loop jamming, is a compiler optimization, a loop transformation, which replaces multiple loops with a single one.
Loop interchange
In compiler theory, loop interchange is the process of exchanging the order of two iteration variables.
In compiler theory, loop interchange is the process of exchanging the order of two iteration variables.
Loop inversion
Loop inversion is a compiler optimization, a loop transformation, which replaces a while loop by an if block containing a do..while loop.
Loop inversion is a compiler optimization, a loop transformation, which replaces a while loop by an if block containing a do..while loop.
Loop nest optimization
In computer science and in particular compiler design, Loop nest optimization is an optimization technique that applies a set of loop transformations for the purpose of locality optimization or ...
In computer science and in particular compiler design, Loop nest optimization is an optimization technique that applies a set of loop transformations for the purpose of locality optimization or ...
Loop optimization
In compiler theory, loop optimization plays an important role in improving cache performance, making effective use of parallel processing capabilities, and reducing overheads associated with exe...
In compiler theory, loop optimization plays an important role in improving cache performance, making effective use of parallel processing capabilities, and reducing overheads associated with exe...
Loop splitting
Loop splitting is a compiler optimization technique.
Loop splitting is a compiler optimization technique.
Loop tiling
Loop tiling, also known as loop blocking, or strip mine and interchange, is a loop optimization used by compilers to make the execution of certain types of loops more efficient.
Loop tiling, also known as loop blocking, or strip mine and interchange, is a loop optimization used by compilers to make the execution of certain types of loops more efficient.
Loop unswitching
Loop unswitching is a compiler optimization.
Loop unswitching is a compiler optimization.
Loop unwinding
Loop unwinding, also known as loop unrolling, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of its binary size.
Loop unwinding, also known as loop unrolling, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of its binary size.
Loop-invariant code motion
In computer programming, loop-invariant code consists of statements or expressions (in an imperative programming language) which can be moved outside the body of a loop without affecting the sem...
In computer programming, loop-invariant code consists of statements or expressions (in an imperative programming language) which can be moved outside the body of a loop without affecting the sem...
Manifest expression
A manifest expression is a programming language construct that a compiler can analyse to deduce which values it can take without having to execute the program.
A manifest expression is a programming language construct that a compiler can analyse to deduce which values it can take without having to execute the program.
Object code optimizer
An object code optimizer, sometimes also known as a post pass optimizer or, for small sections of code, peephole optimizer, takes the output from a source language compile step - the...
An object code optimizer, sometimes also known as a post pass optimizer or, for small sections of code, peephole optimizer, takes the output from a source language compile step - the...
Partial evaluation
In computing, partial evaluation is a technique for several different types of program optimization by specialization.
In computing, partial evaluation is a technique for several different types of program optimization by specialization.
Partial redundancy elimination
In compiler theory, partial redundancy elimination (PRE) is a compiler optimization that eliminates expressions that are redundant on some but not necessarily all paths through a program.
In compiler theory, partial redundancy elimination (PRE) is a compiler optimization that eliminates expressions that are redundant on some but not necessarily all paths through a program.
Peephole optimization
In compiler theory, peephole optimization is a kind of optimization performed over a very small set of instructions in a segment of generated code.
In compiler theory, peephole optimization is a kind of optimization performed over a very small set of instructions in a segment of generated code.
Polytope model
The polyhedral model is a mathematical framework for loop nest optimization in program optimization.
The polyhedral model is a mathematical framework for loop nest optimization in program optimization.
Profile-guided optimization
Profile-guided optimization is a compiler optimization technique in computer programming to improve program runtime performance.
Profile-guided optimization is a compiler optimization technique in computer programming to improve program runtime performance.
Promise (computing)
A promise is the final item in a Stream.
A promise is the final item in a Stream.
Redundant code
In computer programming, redundant code is source code or compiled code in a computer program that has any form of redundancy, such as recomputing a value that has previously been calculated and...
In computer programming, redundant code is source code or compiled code in a computer program that has any form of redundancy, such as recomputing a value that has previously been calculated and...
Register allocation
In compiler optimization, register allocation is the process of assigning a large number of target program variables onto a small number of CPU registers.
In compiler optimization, register allocation is the process of assigning a large number of target program variables onto a small number of CPU registers.
Rematerialization
Rematerialization or remat is a compiler optimization which saves time by recomputing a value instead of loading it from memory.
Rematerialization or remat is a compiler optimization which saves time by recomputing a value instead of loading it from memory.
Return value optimization
Return value optimization, or simply RVO, is a C++-specific compiler optimization technique that involves eliminating the temporary object created to hold a function's return value.
Return value optimization, or simply RVO, is a C++-specific compiler optimization technique that involves eliminating the temporary object created to hold a function's return value.
Scalable locality
Software is said to exhibit scalable locality if it can continue to make use of processors that out-pace their memory systems, to solve ever larger problems.
Software is said to exhibit scalable locality if it can continue to make use of processors that out-pace their memory systems, to solve ever larger problems.
Scalable parallelism
Software is said to exhibit scalable parallelism if it can make use of additional processors to solve larger problems, i.e. this term refers to software for which Gustafson's law holds.
Software is said to exhibit scalable parallelism if it can make use of additional processors to solve larger problems, i.e. this term refers to software for which Gustafson's law holds.
Software pipelining
In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining.
In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining.
Sparse conditional constant propagation
In computer science, sparse conditional constant propagation is an optimization frequently applied in compilers after conversion to static single assignment form (SSA).
In computer science, sparse conditional constant propagation is an optimization frequently applied in compilers after conversion to static single assignment form (SSA).
Strength reduction
In software engineering, strength reduction is a compiler optimization where expensive operations are replaced with equivalent but less expensive operations.
In software engineering, strength reduction is a compiler optimization where expensive operations are replaced with equivalent but less expensive operations.
Superoptimization
Superoptimization is the task of finding the optimal code sequence for a single, loop-free sequence of instructions.
Superoptimization is the task of finding the optimal code sequence for a single, loop-free sequence of instructions.
Superword Level Parallelism
Superword level parallelism is a vectorization technique based on loop unrolling and basic block vectorization.
Superword level parallelism is a vectorization technique based on loop unrolling and basic block vectorization.
Trace scheduling
Trace scheduling is an optimization technique used in compilers for computer programs.
Trace scheduling is an optimization technique used in compilers for computer programs.
Unreachable code
In computer programming, unreachable code is part of the source code of a program which can never be executed because there exists no control flow path to the code from the rest of the program.
In computer programming, unreachable code is part of the source code of a program which can never be executed because there exists no control flow path to the code from the rest of the program.
Vectorization (parallel computing)
Vectorization, in parallel computing, is a special case of parallelization, in which software programs that by default perform one operation at a time on a single thread are modified to perform ...
Vectorization, in parallel computing, is a special case of parallelization, in which software programs that by default perform one operation at a time on a single thread are modified to perform ...
Whole program optimization
In computer programming, whole program optimization is the compiler optimization of a program using information about all the modules in the program.
In computer programming, whole program optimization is the compiler optimization of a program using information about all the modules in the program.
Yield method
The Yield method is used in java multi Threading for forcefully skip the current running thread and send it to end of running queue.
The Yield method is used in java multi Threading for forcefully skip the current running thread and send it to end of running queue.
Settings