[all-commits] [llvm/llvm-project] 37d729: [SCEV] Track and invalidate ValuesAtScopes users

Nikita Popov via All-commits all-commits at lists.llvm.org
Tue Nov 30 09:21:31 PST 2021

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 37d72991c136244fe53be02f5af0ad643247a1e6
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-11-30 (Tue, 30 Nov 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/test/Transforms/IndVarSimplify/bbi-63564.ll

  Log Message:
  [SCEV] Track and invalidate ValuesAtScopes users

ValuesAtScopes maps a SCEV and a Loop to another SCEV. While we
invalidate entries if the left-hand SCEV is invalidated, we
currently don't do this for the right-hand SCEV. Fix this by
tracking users in a reverse map and using it for invalidation.

This is conceptually the same change as D114738, but using the
reverse map to avoid performance issues.

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

More information about the All-commits mailing list