diff options
author | Jingyue Wu <jingyue@google.com> | 2015-07-24 19:05:53 +0000 |
---|---|---|
committer | Jingyue Wu <jingyue@google.com> | 2015-07-24 19:05:53 +0000 |
commit | abb05aa3c69799b17b1894add8e37f7582ebc048 (patch) | |
tree | 61256433b72a1d0491b9e3f0fd28752e4886668c /llvm/lib | |
parent | fa2c630f798cd9df7b565f18cdf06821e294512e (diff) | |
download | bcm5719-llvm-abb05aa3c69799b17b1894add8e37f7582ebc048.tar.gz bcm5719-llvm-abb05aa3c69799b17b1894add8e37f7582ebc048.zip |
Remove the user-count threshold when analyzing read attributes
Summary:
This threshold limited FunctionAttrs ability to prove arguments to be read-only.
In NVPTX, a specialized instruction ld.global.nc can be used to load memory
with non-coherent texture cache. We notice that in SHOC [1] benchmark, some
function arguments are not marked with readonly because FunctionAttrs reaches
a hardcoded threshold when analysis uses.
Removing this threshold won't cause significant regression in compilation time, because the worst-case time complexity of the algorithm is still O(# of instructions) for each parameter.
Patched by Xuetian Weng.
[1] https://github.com/vetter/shoc
Reviewers: nlewycky, jingyue, nicholas
Subscribers: nicholas, test, llvm-commits
Differential Revision: http://reviews.llvm.org/D11311
llvm-svn: 243141
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/IPO/FunctionAttrs.cpp | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp index 93a549a2e90..3e7a1550735 100644 --- a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp +++ b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp @@ -425,9 +425,6 @@ determinePointerReadAttrs(Argument *A, // We don't need to track IsWritten. If A is written to, return immediately. for (Use &U : A->uses()) { - if (Count++ >= 20) - return Attribute::None; - Visited.insert(&U); Worklist.push_back(&U); } |