
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.
Alias Analysis
Determining if two pointers or references in a program may refer to the same memory location.
Data Flow Analysis
An analysis technique that gathers information about the possible set of values calculated at various points in a computer program.
Peephole Optimization
A local pass over the generated code to improve it by identifying and replacing certain sub-sequences with more efficient ones.
Constant Propagation
Simplifying expressions and assignments by replacing variables that have constant values with the actual values.
Register Allocation
The process of assigning a large number of target program variables onto a small number of CPU registers to optimize runtime performance.
Loop Unrolling
Expanding a loop by repeating the instructions within the loop body to reduce the number of iterations and control overhead.
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.
Dead Code Elimination
The process of removing code which does not affect the program output (dead code), reducing resource consumption and improving execution time.
Inlining
The process of substituting a function call with the actual code of the function, removing the call overhead and enabling other optimizations.
Control Flow Graph (CFG) Construction
Creation of a graphical representation of all paths that might be traversed through a program during its execution.
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.
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.
Strength Reduction
Substitution of expensive operations with equivalent but less costly operations.
Inter-procedural Optimization
Optimizations that analyze and optimize across function boundaries, in contrast to intra-procedural optimizations within a single function.
© Hypatia.Tech. 2024 All rights reserved.