Implementation of the Debugging Support for the LLVM Outlining Optimization
Outlining optimization has been used in compilers predominantly to decrease the code size and sometimes even to improve its efficiency.If a code segment is repeated at various places in the code, the compiler can encapsulate it into a function and then it replaces these segments with the function calls.The LLVM infrastructure supports the outlining optimization but lacks proper debugging information in such cases and an outlined function cannot be differentiated from some other compiler-generated code at debug time.This paper proposes the complete solution to this problem on three levels of abstraction: IR and Machine IR code, DWARF format, and LLDB debugger.It identifies the reason for insufficient precision of the previous debugging information and describes in detail the implementation focused on enhancing these data so that the outlined function can be exactly recognized during debugging.The implementation has been thoroughly tested through regression and custom tests and it was made publicly available.In practice, the enhanced debugging information for outlining has proven to be useful.
Authors
- Maja Vukasović (ORCID: https://orcid.org/0000-0003-0647-1922)
- Vojislav Tomašević
- Đorđe Todorović
Publication Details
- Published
- 2025-01-01
- DOI
- https://doi.org/10.15308/sinteza-2025-233-240
- Primary Topic
- Real-time simulation and control systems
- Type
- article
- Field-Weighted Citation Impact
- 0.00