[all-commits] [llvm/llvm-project] b7d870: [AssumptionCache] Avoid dangling llvm.assume calls...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Sat Feb 6 10:18:58 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b7d870eae7fdadcf10d0f177faa7409c2e37d776
      https://github.com/llvm/llvm-project/commit/b7d870eae7fdadcf10d0f177faa7409c2e37d776
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2021-02-06 (Sat, 06 Feb 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/AssumptionCache.h
    M llvm/lib/Analysis/AssumptionCache.cpp
    M llvm/lib/Analysis/CodeMetrics.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/lib/Transforms/Utils/PredicateInfo.cpp
    M llvm/test/Analysis/AssumptionCache/basic.ll

  Log Message:
  -----------
  [AssumptionCache] Avoid dangling llvm.assume calls in the cache

PR49043 exposed a problem when it comes to RAUW llvm.assumes. While
D96106 would fix it for GVNSink, it seems a more general concern. To
avoid future problems this patch moves away from the vector of weak
reference model used in the assumption cache. Instead, we track the
llvm.assume calls with a callback handle which will remove itself from
the cache if the call is deleted.

Fixes PR49043.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D96168




More information about the All-commits mailing list