[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