[PATCH] D38434: [SCEV] Maintain loop use lists, and use them in forgetLoop

Sanjoy Das via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 29 15:20:09 PDT 2017


sanjoy created this revision.
Herald added a subscriber: mcrosier.

Currently we do not correctly invalidate memoized results for add recurrences
that were created directly (i.e. they were not created from a `Value`).  This
change fixes this by keeping loop use lists and using the loop use lists to
determine which SCEV expressions to invalidate.

Here are some statistics on the number of uses of in the use lists of all loops
on a clang bootstrap (config: release, no asserts):

  Count: 731310
    Min: 1
   Mean: 8.555150

50th %time: 4
95th %tile: 25
99th %tile: 53

  Max: 433


https://reviews.llvm.org/D38434

Files:
  include/llvm/Analysis/ScalarEvolution.h
  lib/Analysis/ScalarEvolution.cpp
  unittests/Analysis/ScalarEvolutionTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38434.117235.patch
Type: text/x-patch
Size: 6956 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170929/10db2b78/attachment.bin>


More information about the llvm-commits mailing list