[all-commits] [llvm/llvm-project] a6074b: [BasicAA] Drop dependency on Loop Info. PR43276

max-azul via All-commits all-commits at lists.llvm.org
Tue Mar 16 21:44:12 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a6074b092cd526c1a5c4dc4237ee867a65339cbf
      https://github.com/llvm/llvm-project/commit/a6074b092cd526c1a5c4dc4237ee867a65339cbf
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-03-17 (Wed, 17 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/BasicAliasAnalysis.h
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/test/Analysis/BasicAA/invalidation.ll
    A llvm/test/Transforms/JumpThreading/pr43276.ll
    M llvm/unittests/Transforms/Vectorize/VPlanSlpTest.cpp

  Log Message:
  -----------
  [BasicAA] Drop dependency on Loop Info. PR43276

BasicAA stores a reference to LoopInfo inside. This imposes an implicit
requirement of keeping it up to date whenever we modify the IR (in particular,
whenever we modify terminators of blocks that belong to loops). Failing
to do so leads to incorrect state of the LoopInfo.

Because general AA does not require loop info updates and provides to API to
update it properly, the users of AA reasonably assume that there is no need to
update the loop info. It may be a reason of bugs, as example in PR43276 shows.

This patch drops dependence of BasicAA on LoopInfo to avoid this problem.

This may potentially pessimize the result of queries to BasicAA.

Differential Revision: https://reviews.llvm.org/D98627
Reviewed By: nikic




More information about the All-commits mailing list