User Details
- User Since
- Feb 15 2018, 9:11 AM (266 w, 10 h)
Feb 13 2023
Sep 15 2022
Just a couple of typos.
A typo and a couple of nitish suggestions.
Sep 10 2022
Aug 12 2022
Aug 11 2022
Aug 9 2022
I think this is a succinct solution and I don't perceive a problem with exposing the extra SCEV method, as I've done something similar myself in the past, as mentioned above. I would like to see a comment explaining the need to call forget(), otherwise lgtm.
Aug 5 2022
Aug 4 2022
Aug 3 2022
I'm looking at the forgetValue() implementation. I think that as long as the SCEV for the value is preserved and accessable in SalvageDVI() then all is well in terms of the salvaging method.
May 3 2022
Address reviewer comments by adding a clarification in the llvm-ar tool-name test.
Apr 29 2022
Apr 28 2022
- Add managed DVIRecoveryRecords to address memory leak
Apr 27 2022
Respond to reviewer comments:
- Add missed llvm-ranlib/tool-name.test update
- Make ranlib printout consistent with ar
- Make toolname pattern check more strict
Apr 26 2022
Note that this patch also fixes Issue #55097.
Apr 20 2022
Made corrections to UpdateDbgValueInst() using @StephenTozer 's help.
Removed old comments, clarified messages in some asserts. Added some comments to methods.
Apr 19 2022
Correct diff update file.
Attempt to correct the final overwrite of the dbg.value, based on the count of DW_OP_llvm_arg operands in the expression.
Apr 6 2022
Respond to the very helpful review from @StephenTozer. Includes:
- SCEVDbgValueBuilder.appendToVectors() now merges location vectors, preventing duplicates
- Improved check for when a shorter DIExpression can be emitted
- Use isComplex() instead of the size of the expression vector
Mar 29 2022
Update some variable names and a couple of comments to improve readability.
Mar 25 2022
Change remaining Densemap (for updated location-op indexes) to a SmallVector.
Mar 22 2022
Apply @djtodoro 's change and clang-format.
Mostly refactoring of the functions that write the final salvage dbg.value. Some small corrections after a Clang-3.4 build caught a couple of corner cases (it builds fine now).
Mar 21 2022
A WIP update only, not ready for a re-review. Incorporated some of @StephenTozer 's suggestions e.g.
Restored diff. I accidentally updated this diff with a file intended for a separate issue.
-EDIT-
Diff changed in error.
Mar 10 2022
Add check for empty arglist that was missing from check for nullptr arglist member
Restore the the old behaviour for transforming DIArglist location arguments to single- location op:. When trying to determine the type of an undef Value that has become a nullptr, simply abandon the salvage attempt. This restores the NFC status of this patch.
Mar 9 2022
Mar 8 2022
Thanks @StephenTozer , these are really helpful. I will be able to address them once patch [1/2] is done, which shouldn't be much longer, so hopefully I can address your comments at the end of the week.
Mar 7 2022
Remove accidental double application of dbg.value expression restoration.
Reinstate the check for dbg.value that LSR has changed from single location-op to multi location-op. When LSR makes this change, the single location argument is changed to a DIArglist. This patch now replaces the DIArglist with a single 'undef'. This will prevent the generation of invalid dbg.value that were causing the crash as reported by @Orlando .
Mar 6 2022
Removed the naive code to check and add dwarf::DW_OP_stack_value in UpdateDbgValueInst() following @Orlando 's helpful advice and reverted to using DIExpression::prependOpcodes().
Mar 4 2022
Attempt to make UpdateDbgValueInst() more clear when adding the DW_OP_stack_value terminator.
Mar 3 2022
Mar 2 2022
Correction to failed function renaming.
Mar 1 2022
Responded to review from @Orlando (Thanks!).
Feb 25 2022
Feb 23 2022
Removed unnecessary lit test contents as per review comments.
Fixed a comment typo in ScalarEvolution.h.
Feb 22 2022
Feb 21 2022
Feb 19 2022
Feb 18 2022
Applied clang-format.