Robustifying Debug Information Updates in LLVM via Control-Flow Conformance Analysis
summary
Tool MetaLoc instruments LLVM optimization passes, uses control-flow conformance analysis to infer correct debug-location updates, and emits patch skeletons for developer fixes. It classifies source/destination instructions from four LLVM APIs, checks whether any optimized-path contains a destination but not its source, and then chooses preserve/merge or drop. Running across LLVM optimizer passes yields 46 update errors found and patched, with patches and 22 regression tests merged upstream.
AI-written summary · about
chapters (9)
- 0:00Debug info in LLVM
- 1:50Compiler optimizations invalidate locations
- 4:36Debug location update errors
- 7:25Testing-based bug detection limits
- 8:09Robustifying debug location updates
- 10:20Control-flow conformance analysis
- 13:30Metalog implementation and evaluation
- 14:52Summary and contributions
- 15:36Q&A
related talks
53mFrom Within: Compiler Testing and Validation via Compilers
59mCompiler-assisted Translation Validation
22mReconciling High-level Optimizations and Low-level Code in LLVM
27mCompiler Support for Control-Flow Linearization Using Architectural Mimicry
24mGenerating BPF Verifier Friendly Code with Clang
18mCompiling countermeasures against fault attacks with “Tracing LLVM”
16mReconciling Optimization With Secure Compilation
55mHow Compilers Work: Introduction to LLVM Passes
