User Details
- User Since
- May 19 2016, 9:07 AM (368 w, 1 d)
May 10 2022
If the parent function is inlined into multiple callers, is the outlined subprogram scope treated like any other nested lexical scope and duplicated?
If the outlined subprogram scope is duplicated when inlined, how will retained nodes on the outlined subprogram be handled in this case?
Does CodeViewDebug handle the nested subprogram scoping?
Can you add a test which validates the nested scoping is correct in the DWARF emission (covering the non-clang part of this patch)?
Apr 22 2022
In a similar fashion to how instructions are handled according to Delete an IR-level instruction, when a constant is destroyed and cannot be RAUW'd, updating the debug information uses of the constant to undef seems like the correct approach. LGTM.
Feb 2 2022
Jan 25 2022
Sep 30 2021
Sep 23 2021
May 4 2021
Mar 5 2021
Mar 4 2021
Fix the constant name flagged by tidy.
x64 windows > LLVM.Instrumentation/InstrProfiling::profiling.ll
I couldn't find a correlation between my patch and this unit test failure. This maybe related to this commit:
https://github.com/llvm/llvm-project/commit/30ad7b5dadcd90ce8df240f1fa74ee2e98a875dc
Mar 3 2021
May 30 2019
Mar 25 2019
Mar 19 2019
Update the patch to validate the section iterator before using it to lookup the section index.
Mar 18 2019
Remove the "TODO" item which is now done.
Dec 20 2018
NFC:
Remove section size checks from the global_visibility test which were used temporarily during development of the patch.
This test is meant to validate the variable scope, not the debug symbols section size.
Dec 19 2018
This patch incorporates all review feedback received thus far.
Dec 13 2018
Updated the patch based on review comments.
Dec 5 2018
Jun 10 2018
Update the tests to use retainedNodes instead of variables following the changes made in rL331841.
May 22 2018
May 15 2018
Changes committed in rL332296.
May 14 2018
In the test inheritance.ll I updated the 'variables' attribute to 'retainedNodes' to reflect the changes recently committed in rL331841.
I think this code would be a lot less confusing if we rename this to something more mechanical like getTypeIdentifier
I changed the routine names, updated the call sites, and made the comment changes.
Please let me know if you like this better.
May 8 2018
The indentation seems off which suggests the patch may contain tabs.
Fixed.
May 4 2018
The virtual base pointer offset is now encoded in the extraData field of DIDerivedType.
Apr 30 2018
Document a comment I received via email from David to keep everything in one place:
Bitcode files shouldn't generally need updating - because bitcode should be backwards compatible (& indeed usually the only reason bitcode files are checked in is to test and ensure that backwards compatibility guarantee is met)
Apr 24 2018
I updated the patch file to generalize the fix for more than just lambdas.
Apr 16 2018
Apr 9 2018
This patch was reverted in rL327414 due a build bot failure.
It depends upon a fix for C++ lambdas which hasn't landed yet. Once that patch lands, this one will be reapplied exactly as seen here.
Mar 15 2018
Mar 13 2018
Mar 12 2018
Can you add a clang IRGen test that checks the DISubprogram flags set for thunks?
I extended the existing test debug-info-thunk.cpp to make sure the DIFlagThunk flag is set on the thunk routines.
Mar 9 2018
Did this get committed?
Not yet. It looks like I'll have time to commit it on Monday if that is okay?
Feb 27 2018
Feb 20 2018
Feb 15 2018
Did you confirm that when stepping through a program in the debugger that variables are correctly shown in the Autos window depending on the source line?
Yes. When stopping at a machine instruction, only the locals visible from the corresponding lexical scope are displayed.
Thanks everyone for the wonderful feedback! I'm uploading a new diff with the requested changes thus far.
I will provide additional answers for some of the feedback I received after uploading this patch.
Feb 11 2018
Feb 5 2018
Feb 1 2018
Jan 30 2018
Jan 16 2018
Jan 9 2018
Jan 8 2018
I made the changes you requested. Specifically:
- I check for an empty identifier in addition to an empty name on the composite type.
- I updated the code to call report_fatal_error when an unexpected cycle occurs in the type graph.
- I added a lit test containing a cycle in the type graph to make sure the error is caught.
May 18 2017
Thank you Reid. I'll make the changes you requested and upload a new patch. Much appreciated.
May 8 2017
Unnamed C++ structs are given a name as of rL274401, so unnamed structs containing a method will have a name assigned to them and will not create a cycle in this case.