[all-commits] [llvm/llvm-project] 46b7ed: [Attributor] Remove dependence edges eagerly
Johannes Doerfert via All-commits
all-commits at lists.llvm.org
Tue Apr 21 13:24:29 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 46b7ed0e6fdf70efb70c33beb2ec6790d4c284d4
https://github.com/llvm/llvm-project/commit/46b7ed0e6fdf70efb70c33beb2ec6790d4c284d4
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2020-04-21 (Tue, 21 Apr 2020)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
M llvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
M llvm/test/Transforms/Attributor/align.ll
M llvm/test/Transforms/Attributor/dereferenceable-1.ll
M llvm/test/Transforms/Attributor/range.ll
M llvm/test/Transforms/Attributor/returned.ll
M llvm/test/Transforms/Attributor/willreturn.ll
Log Message:
-----------
[Attributor] Remove dependence edges eagerly
If we have a dependence between an abstract attribute A to an abstract
attribute B such hat changes in A should trigger an update of B, we do
not need to keep the dependence around once the update was triggered. If
the dependence is still required the update will reinsert it into the
dependence map, if it is not we avoid triggering B in the future. This
replaces the "recompute interval" mechanism we used before to prune
stale dependences.
Number of required iterations is generally down, compile time for the
module pass (not really the CGSCC pass) is down quite a bit.
There is one test change which looks like an artifact in the undefined
behavior AA that needs to be looked at.
More information about the All-commits
mailing list