Constant folding, the Glossary
Constant folding and constant propagation are related compiler optimizations used by many modern compilers.[1]
Table of Contents
23 relations: Boolean data type, Common subexpression elimination, Compile time, Compiler, Constant (computer programming), Control-flow graph, Copy propagation, Cross compiler, Dead code, Dead-code elimination, Floating-point arithmetic, IEEE 754, Integer literal, Intrinsic function, NaN, OpenGL Shading Language, Optimizing compiler, Partial evaluation, Reaching definition, Sparse conditional constant propagation, Static single-assignment form, String literal, Use-define chain.
Boolean data type
In computer science, the Boolean (sometimes shortened to Bool) is a data type that has one of two possible values (usually denoted true and false) which is intended to represent the two truth values of logic and Boolean algebra.
See Constant folding and Boolean data type
Common subexpression elimination
In compiler theory, 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 analyzes whether it is worthwhile replacing them with a single variable holding the computed value. Constant folding and common subexpression elimination are compiler optimizations.
See Constant folding and Common subexpression elimination
Compile time
In computer science, compile time (or compile-time) describes the time window during which a language's statements are converted into binary instructions for the processor to execute.
See Constant folding and Compile time
Compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).
See Constant folding and Compiler
Constant (computer programming)
In computer programming, a constant is a value that is not altered by the program during normal execution.
See Constant folding and Constant (computer programming)
Control-flow graph
In computer science, a control-flow graph (CFG) is a representation, using graph notation, of all paths that might be traversed through a program during its execution.
See Constant folding and Control-flow graph
Copy propagation
In compiler theory, copy propagation is the process of replacing the occurrences of targets of direct assignments with their values. Constant folding and copy propagation are compiler optimizations.
See Constant folding and Copy propagation
Cross compiler
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running.
See Constant folding and Cross compiler
Dead code
The term dead code has multiple definitions.
See Constant folding and Dead code
Dead-code elimination
In compiler theory, dead-code elimination (DCE, dead-code removal, dead-code stripping, or dead-code strip) is a compiler optimization to remove dead code (code that does not affect the program results). Constant folding and dead-code elimination are compiler optimizations.
See Constant folding and Dead-code elimination
Floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic that represents subsets of real numbers using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base.
See Constant folding and Floating-point arithmetic
IEEE 754
The IEEE Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point arithmetic established in 1985 by the Institute of Electrical and Electronics Engineers (IEEE).
See Constant folding and IEEE 754
Integer literal
In computer science, an integer literal is a kind of literal for an integer whose value is directly represented in source code.
See Constant folding and Integer literal
Intrinsic function
In computer software, in compiler theory, an intrinsic function, also called built-in function or builtin function, is a function (subroutine) available for use in a given programming language whose implementation is handled specially by the compiler.
See Constant folding and Intrinsic function
NaN
In computing, NaN, standing for Not a Number, is a particular value of a numeric data type (often a floating-point number) which is undefined as a number, such as the result of 0/0.
OpenGL Shading Language
OpenGL Shading Language (GLSL) is a high-level shading language with a syntax based on the C programming language.
See Constant folding and OpenGL Shading Language
Optimizing compiler
An optimizing compiler is a compiler designed to generate code that is optimized in aspects such as minimizing program execution time, memory use, storage size, and power consumption. Constant folding and optimizing compiler are compiler optimizations.
See Constant folding and Optimizing compiler
Partial evaluation
In computing, partial evaluation is a technique for several different types of program optimization by specialization. Constant folding and partial evaluation are compiler optimizations.
See Constant folding and Partial evaluation
Reaching definition
In compiler theory, a reaching definition for a given instruction is an earlier instruction whose target variable can reach (be assigned to) the given one without an intervening assignment.
See Constant folding and Reaching definition
Sparse conditional constant propagation
In computer science, sparse conditional constant propagation (SCCP) is an optimization frequently applied in compilers after conversion to static single assignment form (SSA). Constant folding and sparse conditional constant propagation are compiler optimizations.
See Constant folding and Sparse conditional constant propagation
Static single-assignment form
In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a type of intermediate representation (IR) where each variable is assigned exactly once. Constant folding and static single-assignment form are compiler optimizations.
See Constant folding and Static single-assignment form
String literal
A string literal or anonymous string is a literal for a string value in the source code of a computer program.
See Constant folding and String literal
Use-define chain
Within computer science, a use-definition chain (or UD chain) is a data structure that consists of a use U, of a variable, and all the definitions D of that variable that can reach that use without any other intervening definitions. Constant folding and use-define chain are compiler optimizations.
See Constant folding and Use-define chain
References
[1] https://en.wikipedia.org/wiki/Constant_folding
Also known as Constant propagation.