[PATCH] D111533: [SCEV] Invalidate user SCEVs along with operand SCEVs to avoid cache corruption

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 11 10:03:15 PDT 2021


nikic added a comment.

Compile-time on CTMark: https://llvm-compile-time-tracker.com/compare.php?from=943b3048484b7e3cf04f4d51c23c82fcece2185d&to=5e2c6abab42241c06680941be06fddcb9279e63d&stat=instructions

It doesn't look terrible at least, though some individual files go up by up to 7%. However, I suspect that as implemented this will make some of our already bad cases worse, i.e. when we're scanning over a large use-def graph, and this will effectively revisit SCEVs through an additional SCEV-level use graph. Passing in the Visited set and retaining it across a whole forgetValue()/forgetLoop() call would probably make things better at little additional complexity.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111533/new/

https://reviews.llvm.org/D111533



More information about the llvm-commits mailing list