[DebugInfo] Enabling constructor homing by default in clang

A while back I tried turning on constructor homing (-debug-info-kind=constructor) by default in clang. Ctor homing is a debug info optimization that reduces the amount of debug info that is emitted for class types.

The main blocker was that for some libc++ types we avoid calling the constructor. Since then I’ve added a attribute for classes that ignores ctor homing (__attribute__((standlone_debug))) and added it to the libc++ types (7c2f58278e66).

I think at this point we can try enabling it by default in Clang – it’s currently being used in chromium and google codebases. Thought I’d email the llvm-dev list in case people have thoughts/opinions/concerns about this. (patch is at https://reviews.llvm.org/D106084)

Thanks Amy! + a few folks to highlight this.

Thanks for letting us know. Is my understanding correct that “enabling by default” means when -flimit-debuginfo would be used, or would it also affect -fstandalone-debuginfo?

As always, please watch the https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake bot after making debug info changes.


Yep, it would happen with -flimit-debug-info (-fno-standalone-debug) but won’t affect -fstandalone-debug.

Then there’s no concern for Darwin. Let’s do it!

– adrian