[PATCH] D79698: Run Coverage pass before other *San passes under new pass manager
Arthur Eubanks via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu May 14 15:15:10 PDT 2020
aeubanks added a comment.
In D79698#2037305 <https://reviews.llvm.org/D79698#2037305>, @leonardchan wrote:
> Just to followup on this: We believe the root cause of the error we're running into is that some sancov guards in one comdat are being referenced by symbols in another comdat, so due to linking order, the other comdat in question is referencing a sancov guard that was in a discarded comdat group. I posted full details of this on llvm-dev <http://lists.llvm.org/pipermail/llvm-dev/2020-May/141583.html>. We believe we're running into this error now because with this patch, inlining occurs after the sanitizers are run.
>
> Based on some discussion in http://lists.llvm.org/pipermail/llvm-dev/2020-May/141558.html, it seems appropriate that the solution for this is to just run sanitizers after inlining, so we would avoid this error that's brought about by inlining after sanitizer runs. Since this has been breaking us for a few days, and unless other folks don't mind, I'm thinking it might be appropriate to temporarily revert this until there's a fix for either
Maybe the fix is to use `registerScalarOptimizerLateEPCallback()` instead of `registerPipelineStartEPCallback()`. But I'm not sure how to test that, could you try that and lmk if that fixes the issue?
> (1) running sanitizers after inlining or
> (2) changing which comdat groups the sancov guards get placed in (such that guards in one group aren't referenced by functions defined in another group)
>
> I'm not sure how long it would take to implement either solution, so I think temporarily reverting might be ok here.
Sure, feel free to revert.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D79698/new/
https://reviews.llvm.org/D79698
More information about the cfe-commits
mailing list