[all-commits] [llvm/llvm-project] d9715a: [SCEV] Don't try to reuse expressions with offset

Nikita Popov via All-commits all-commits at lists.llvm.org
Fri Feb 25 00:20:51 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d9715a726674046b177221873d63578dce383feb
      https://github.com/llvm/llvm-project/commit/d9715a726674046b177221873d63578dce383feb
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-02-25 (Fri, 25 Feb 2022)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/test/CodeGen/X86/dag-update-nodetomatch.ll
    M llvm/test/Transforms/LoopIdiom/memset-runtime-32bit.ll
    M llvm/test/Transforms/LoopIdiom/memset-runtime-64bit.ll

  Log Message:
  -----------
  [SCEV] Don't try to reuse expressions with offset

SCEVs ExprValueMap currently tracks not only which IR Values
correspond to a given SCEV expression, but additionally stores that
it may be expanded in the form X+Offset. In theory, this allows
reusing existing IR Values in more cases.

In practice, this doesn't seem to be particularly useful (the test
changes are rather underwhelming) and adds a good bit of complexity.
Per https://github.com/llvm/llvm-project/issues/53905, we have an
invalidation issue with these offseted expressions.

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




More information about the All-commits mailing list