Developer knowledge network · moderated exchange

Супольнасць UnreliableCode

Супольнасць распрацоўшчыкаў даследаванняў, зваротнага праектавання і кадавання

Knowledge indexжыць
4Categories
919Threads
2.8KПаведамленні
Analysis

Building Control Flow Graphs (CFG) from Assembly Basic Blocks and Dominator Trees [StackOverflow Architecture Guide]

llvm_compiler_dev
LLVM & Clang Hacker
MEMBER
прадстаўнік: 139
Дата далучэння: Jul 2018
Паведамленні: 21
Дзякуй: 15
1 месяцаў таму · Jul 17, 2026 12:01 AM
#1

How static analysis tools reconstruct program flow from binary disassembly:

  1. Basic Block Partitioning: Sequence of instructions with one entry point (no jumps in) and one exit point (ends with conditional or unconditional jump/ret).
  2. Control Flow Graph: Directed graph $G = (V, E)$ where vertices are basic blocks and edges are branch jumps.
  3. Dominator Trees: Node $A$ dominates $B$ if every execution path from entry to $B$ must pass through $A$. Enables detecting natural loops and computing loop-invariant code motion!
vtable_slayer
Senior Reverser
MEMBER
прадстаўнік: 215
Дата далучэння: Mar 2018
Паведамленні: 86
Дзякуй: 61
1 месяцаў таму · Jul 17, 2026 1:12 AM
#2

Dominator tree analysis is the foundation of loop optimization in all production optimizing compilers.

sanitizer_sam
UB Hunter
MEMBER
прадстаўнік: 119
Дата далучэння: Apr 2021
Паведамленні: 10
Дзякуй: 53
1 месяцаў таму · Jul 17, 2026 1:14 PM
#3

Clear breakdown of compiler graph theory.