[PATCH] D98627: [JumpThreading] Do not use AA after a block has been destroyed. PR43276

Max Kazantsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 15 04:39:51 PDT 2021


mkazantsev created this revision.
mkazantsev added reviewers: nikic, hfinkel, skatkov, aqjune, kazu.
Herald added subscribers: jfb, hiraditya.
mkazantsev requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

JumpThreading uses Alias Analysis that keeps references to basic blocks in its
internals. At the same time, JumpThreading may delete basic blocks. Under
some circumstances, it may end up querying AA about some blocks that have
been destroyed by this moment. It results in UB.

The proposed solution is to give up using the alias analysis after we've removed
a basic block.


https://reviews.llvm.org/D98627

Files:
  llvm/lib/Transforms/Scalar/JumpThreading.cpp
  llvm/test/Transforms/JumpThreading/pr43276.ll
  llvm/test/Transforms/JumpThreading/thread-loads.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98627.330609.patch
Type: text/x-patch
Size: 6120 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210315/3952a1b8/attachment.bin>


More information about the llvm-commits mailing list