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

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
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Implementation of the Debugging Support for the LLVM Outlining Optimization

Maja Vukasović, Vojislav Tomašević, Đorđe Todorović
Real-time simulation and control systems
article

Implementation of the Debugging Support for the LLVM Outlining Optimization

Maja Vukasović, Vojislav Tomašević, Đorđe Todorović
article en

Abstract

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.

Openalex Percentile: Top 85%
Real-time simulation and control systems
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Implementation of the Debugging Support for the LLVM Outlining Optimization — Maja Vukasović, Vojislav Tomašević, et al. · (2025) | TGRS Research Map | TGRS