]> granicus.if.org Git - llvm/commit
[Attributor] Regularly clear dependences to remove spurious ones
authorJohannes Doerfert <jdoerfert@anl.gov>
Wed, 28 Aug 2019 16:58:52 +0000 (16:58 +0000)
committerJohannes Doerfert <jdoerfert@anl.gov>
Wed, 28 Aug 2019 16:58:52 +0000 (16:58 +0000)
commit08d064c8f1beb5495bd456b16a73bf5617a12b42
tree1c5fbfd97c6b3987512a5572ef8ecd4a3bbe89d2
parentdda5f16734764466813c957132e7d3eeb69cee6a
[Attributor] Regularly clear dependences to remove spurious ones

As dependences between abstract attributes can become stale, e.g., if
one was sufficient to imply another one at some point but it has since
been wakened to the point it is not usable for the formerly implied one.
To weed out spurious dependences, and thereby eliminate unneeded
updates, we introduce an option to determine how often the dependence
cache is cleared and recomputed during the fixpoint iteration.

Note that the initial value was determined such that we see a positive
result on our tests.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370230 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Transforms/IPO/Attributor.h
lib/Transforms/IPO/Attributor.cpp
test/Transforms/FunctionAttrs/align.ll
test/Transforms/FunctionAttrs/nonnull.ll
test/Transforms/FunctionAttrs/noreturn_sync.ll