[PATCH] D113349: [SCEV] Fix and validate ValueExprMap/ExprValueMap consistency

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 6 12:50:08 PDT 2021


nikic created this revision.
nikic added reviewers: reames, mkazantsev.
Herald added subscribers: javed.absar, hiraditya, nemanjai.
nikic requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This adds validation for consistency of ValueExprMap and ExprValueMap, and fixes identified issues:

- Addrec construction directly wrote to ValueExprMap in a few places, without updating ExprValueMap. Add a helper to ensures they stay consistent. The adjustment in forgetSymbolicName() explicitly drops the old value from the map, so that we don't rely on it being overwritten.
- forgetMemoizedResultsImpl() was dropping the SCEV from ExprValueMap, but not dropping the corresponding entries from ValueExprMap.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D113349

Files:
  llvm/include/llvm/Analysis/ScalarEvolution.h
  llvm/lib/Analysis/ScalarEvolution.cpp
  llvm/test/CodeGen/PowerPC/more-dq-form-prepare.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D113349.385291.patch
Type: text/x-patch
Size: 30971 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211106/97268e04/attachment.bin>


More information about the llvm-commits mailing list