summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJingyue Wu <jingyue@google.com>2014-07-16 23:25:00 +0000
committerJingyue Wu <jingyue@google.com>2014-07-16 23:25:00 +0000
commit0bdc027e3161c8ab557d4cd19c3b463aef8ed196 (patch)
tree3361755ec91281a5f007bfc6da9cdba08a31612c /clang/lib/CodeGen/CodeGenModule.cpp
parent3e49fda0d4f2de4c22a4cedfd9c2d2e5b0589f9c (diff)
downloadbcm5719-llvm-0bdc027e3161c8ab557d4cd19c3b463aef8ed196.tar.gz
bcm5719-llvm-0bdc027e3161c8ab557d4cd19c3b463aef8ed196.zip
Partially revert r210444 due to performance regression
Summary: Converting outermost zext(a) to sext(a) causes worse code when the computation of zext(a) could be reused. For example, after converting ... = array[zext(a)] ... = array[zext(a) + 1] to ... = array[sext(a)] ... = array[zext(a) + 1], the program computes sext(a), which is actually unnecessary. I added one test in split-gep-and-gvn.ll to illustrate this scenario. Also, with r211281 and r211084, we annotate more "nuw" tags to computation involving CUDA intrinsics such as threadIdx.x. These annotations help with splitting GEP a lot, rendering the benefit we get from this reverted optimization only marginal. Test Plan: make check-all Reviewers: eliben, meheff Reviewed By: meheff Subscribers: jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D4542 llvm-svn: 213209
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud