[all-commits] [llvm/llvm-project] 910733: [BasicAA] Fix handling of indirect assumption base...

Nikita Popov via All-commits all-commits at lists.llvm.org
Thu Jul 25 03:25:40 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 91073380ac5a0dceebdd09f360a1dc194d7ee93f
      https://github.com/llvm/llvm-project/commit/91073380ac5a0dceebdd09f360a1dc194d7ee93f
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-25 (Thu, 25 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/pr98978.ll

  Log Message:
  -----------
  [BasicAA] Fix handling of indirect assumption based results (#100130)

If a result is potentially based on a not yet proven assumption,
BasicAA will remember it inside AssumptionBasedResults and remove
the cache entry if an assumption higher up is later disproved.
However, we currently miss the case where another cache entry ends
up depending on such an AssumptionBased result.

Fix this by introducing an additional AssumptionBased state for
cache entries. If such a result is used, we'll still increment
AAQI.NumAssumptionUses, which means that the using entry will
also become AssumptionBased and be cleared if the assumption is
disproved.

At the end of the root query, convert remaining AssumptionBased
results into definitive results.

Fixes https://github.com/llvm/llvm-project/issues/98978.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list