Refactor common value, scope, and label tracking logic out of DwarfDebug
into a common base class called DebugHandlerBase.
Update an old LLVM IR test case to avoid an assertion in LexicalScopes.
Paths
| Differential D16931
[codeview] Describe int local variables using .cv_def_range ClosedPublic Authored by rnk on Feb 5 2016, 11:59 AM.
Details Summary Refactor common value, scope, and label tracking logic out of DwarfDebug Update an old LLVM IR test case to avoid an assertion in LexicalScopes.
Diff Detail Event Timelinernk updated this object. Comment Actions Eric wanted to be CC'd, and David asked "why inheritance not composition". I could potentially see making a separate class that is specifically responsible for inserting labels before and after dbg value ranges, but I suspect I'll want to factor more stuff out of DwarfDebug and into here as time goes on. In particular, findPrologueEnd is currently duplicated. Using a base class also allows me to make most of these members protected, making it clear that they aren't intended for use by any other clients. Comment Actions I must be missing something - how does the begin/endFunction functionality that you moved into teh base class get fired for DwarfDebug? It looks like there should be a call to Base::beginFunction in DwarfDebug::beginFunction where the code was moved from?
dblaikie edited edge metadata. Comment ActionsInteraction with the existing DWARF stuff looks fine to me This revision is now accepted and ready to land.Feb 9 2016, 4:01 PM
Closed by commit rL260432: [codeview] Describe int local variables using .cv_def_range (authored by rnk). · Explain WhyFeb 10 2016, 1:00 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 47049 include/llvm/MC/MCRegisterInfo.h
lib/CodeGen/AsmPrinter/CMakeLists.txt
lib/CodeGen/AsmPrinter/CodeViewDebug.h
lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
lib/CodeGen/AsmPrinter/DebugHandlerBase.h
lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.h
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/MC/MCRegisterInfo.cpp
lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
lib/Target/X86/X86RegisterInfo.cpp
test/DebugInfo/COFF/asm.ll
test/DebugInfo/COFF/inlining.ll
test/DebugInfo/COFF/local-variables.ll
test/DebugInfo/COFF/multifile.ll
test/DebugInfo/COFF/multifunction.ll
test/DebugInfo/COFF/simple.ll
test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll
|
Sort these.