[PATCH] D43929: [RewriteStatepoints] Fix stale parse points
Anna Thomas via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 5 12:06:23 PST 2018
anna added a comment.
Yevgeny, Just for record - Dan will be trying to drop it. There's something wrong with my local repo and rebuilding it still doesn't allow me to `git svn dcommit`.
This is the patch details:
commit 854c9fce69c2593c1a74de4ff94914574f9e2356 (HEAD -> master)
Author: Anna Thomas <anna at azul.com>
Date: Mon Mar 5 11:58:18 2018 -0500
[RewriteStatepoints] Fix stale parse points
RewriteStatepointsForGC collects parse points for further processing.
During the collection if a callsite is found in an unreachable block
(DominatorTree::isReachableFromEntry()) then all unreachable blocks are
removed by removeUnreachableBlocks(). Some of the removed blocks could
have been reachable according to DominatorTree::isReachableFromEntry().
In this case the collected parse points became stale and resulted in a
crash when accessed.
The fix is to unconditionally canonicalize the IR to
removeUnreachableBlocks and then collect the parse points.
The added test crashes with the old version and passes with this patch.
Patch by Yevgeny Rouban!
Reviewed by: Anna
Differential Revision: https://reviews.llvm.org/D43929
https://reviews.llvm.org/D43929
More information about the llvm-commits
mailing list