Adding this, since there's currently no documentation about this.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
Comment Actions
Sounds alright to me.
(non-action idle thoughts: Might be worth revisiting this documentation to make it a bit more direct/clearer that many of these optimizations (at least the vtable and ctor homing) rely on the assumption that the class is instantiated somewhere in the program (and that somewhere is built with debug info enabled) (the wording you've got here "This relies on the additional assumption that all classes that are not trivially constructible have a non-trivial constructor that is used somewhere." but maybe generalized/massaged a bit))
Comment Actions
lgtm too
Yep. While looking at the existing documentation here, I kept thinking we need some standalone documentation on all the debug info features clang supports. There is a lot to cover.
- -gmodules
- -g0, -g1 / -gmlt / -gline-tables-only
- -fstandalone-debug
- this unused types thing
- DWARF versions
- PDBs and codeview
- -fno-inline-line-tables
- various attributes (nomerge, not_tail_called, nodebug/artificial)
- -gcolumn-info
- macro info
- -gcodeview-ghash
- fission / split dwarf
- gdb indexes
- pubnames
- -gz
- debugger tuning gdb/lldb
- others