Explore tens of thousands of sets crafted by our community.
Compiler Back-End Processes
15
Flashcards
0/15
Instruction Scheduling
Reordering the instructions to avoid pipeline stalls and improve parallelism without changing the outcome of the program.
Strength Reduction
Substitution of expensive operations with equivalent but less costly operations.
Dead Code Elimination
The process of removing code which does not affect the program output (dead code), reducing resource consumption and improving execution time.
Control Flow Graph (CFG) Construction
Creation of a graphical representation of all paths that might be traversed through a program during its execution.
Machine Code Generation
The final step of the back-end that translates an intermediate representation of the source program into machine code specific for a target CPU architecture.
Loop Unrolling
Expanding a loop by repeating the instructions within the loop body to reduce the number of iterations and control overhead.
Peephole Optimization
A local pass over the generated code to improve it by identifying and replacing certain sub-sequences with more efficient ones.
Data Flow Analysis
An analysis technique that gathers information about the possible set of values calculated at various points in a computer program.
Inter-procedural Optimization
Optimizations that analyze and optimize across function boundaries, in contrast to intra-procedural optimizations within a single function.
Inlining
The process of substituting a function call with the actual code of the function, removing the call overhead and enabling other optimizations.
Profile Guided Optimization (PGO)
An optimization technique using data collected from profiling runs of the program (e.g., execution frequency of code paths) to inform and guide compilation strategies.
Register Allocation
The process of assigning a large number of target program variables onto a small number of CPU registers to optimize runtime performance.
Constant Propagation
Simplifying expressions and assignments by replacing variables that have constant values with the actual values.
Alias Analysis
Determining if two pointers or references in a program may refer to the same memory location.
Escape Analysis
Analyzing the scope in which pointers (or references) can be accessed to optimize memory usage and enable stack allocation instead of heap allocation where possible.
© Hypatia.Tech. 2024 All rights reserved.