- User Since
- Jul 18 2017, 11:07 AM (272 w, 3 d)
Sep 3 2019
Jul 19 2019
Sorry, but I'm not familiar with x86.
Aug 24 2018
I uploaded https://reviews.llvm.org/D51230 to try to address that. Could you take a look at it?
Aug 23 2018
Aug 17 2018
Friendly ping. Are there any more comments?
Any other comments?
Aug 16 2018
Aug 15 2018
Aug 14 2018
Aug 13 2018
Aug 9 2018
Added newline to end of tests.
Aug 8 2018
Aug 7 2018
Added __cfi_slowpath_diag to the list of functions that trap on CFI violations.
Aug 3 2018
I've rolled this into https://reviews.llvm.org/D49383.
Updated to use StringSaver. I'm still waiting on the discussion about whether or not to use dynamicEntries().
That bug should be fixed by https://reviews.llvm.org/rL338902.
No problem, and thanks for the review!
Friendly ping. This also fixes https://bugs.llvm.org/show_bug.cgi?id=38438.
That bug is fixed by https://reviews.llvm.org/D49946, which is awaiting review.
Aug 2 2018
Is there a better way to handle appending "@plt" to the name? I had to add a vector to keep the original string around so that the StringRefs are still good, but that's a bit ugly.
I'm not at all familiar with ELF or parsing x86 and ARM, so I'd appreciate feedback on how this works and if there's a way to do it more cleanly (especially the parsing).
Updated to use the new scheme suggested by pcc and eugenis, which lets other parts of LVLM (e.g., objdump) use the PLT information.
Jul 31 2018
Jul 30 2018
I can commit it.
Jul 27 2018
Thanks for the explanations! pcc, that example API was very helpful. I have the core part of it working, including integration with cfi-verify and objdump. I'll finish it up and put the patches up for review at some point.
Jul 25 2018
On AArch64, searching for adrp/ldr pairs is still a heuristic; is there not a more principled way of doing it? What about x86? And how do we get the name of the function this way?
Note that this could be combined with its parent patch, as that is now about supporting cross-DSO.
I replaced the command-line flag to specify functions with a hardcoded list of __cfi_slowpath, abort, and their @plt variants. Does that seem reasonable?
Jul 24 2018
Thanks for the comments!
I just committed https://reviews.llvm.org/rL337830, which solves this problem the way eugenis suggested.
Jul 23 2018
Jul 20 2018
Added a testcase that goes one off the end of the loop counting up (and the previous update added one that counts down one off the end).
I'm not very familiar with SCEV, so I'm not sure if I'm making the correct signed vs. unsigned ranges and comparisons here. What is the proper way to do that?
Jul 18 2018
Good call; I had figured that running it earlier might just impede other optimizations, but I forgot that it would also hide size information.
Jul 16 2018
Jul 13 2018
I committed this fix to fix the failing tests.
Jul 12 2018
Jul 11 2018
Jul 10 2018
Updated a comment.
Jul 9 2018
Thanks. I'll wait a bit to see if there are any more comments.
Jul 6 2018
I believe this addresses all of the existing comments except for how to handle detecting traps. I see Vlad just commented that he doesn't have an opinion, so if there are no further opinions I'll just play around and do what I feel is best. The current approach should still work, of course.
Jul 3 2018
Thanks for the comments! I'll try to update the patch on Friday.
Jul 2 2018
Sorry for the trouble. I see it's been fixed now.