aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/ModuleManager.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-11-10 22:50:50 +0000
committerCraig Topper <craig.topper@intel.com>2017-11-10 22:50:50 +0000
commitffd48e3c27b2dc92629acb27d1cd5beb57b4cfbf (patch)
treef1421246407fd4cd245a533696f09f848652a22f /clang/lib/Serialization/ModuleManager.cpp
parent8c6917872c527efff391cc4e1861769764a38a19 (diff)
downloadllvm-ffd48e3c27b2dc92629acb27d1cd5beb57b4cfbf.zip
llvm-ffd48e3c27b2dc92629acb27d1cd5beb57b4cfbf.tar.gz
llvm-ffd48e3c27b2dc92629acb27d1cd5beb57b4cfbf.tar.bz2
[SelectionDAG] Teach SelectionDAGBuilder's getUniformBase for gather/scatter handling to accept GEPs with more than 2 operands if the middle operands are all 0s
Currently we can only get a uniform base from a simple GEP with 2 operands. This causes us to miss address folding opportunities for simple global array accesses as the test case shows. This patch adds support for larger GEPs if the other indices are 0 since those don't require any additional computations to be inserted. We may also want to handle constant splats of zero here, but I'm leaving that for future work when I have a real world example. Differential Revision: https://reviews.llvm.org/D39911 llvm-svn: 317947
Diffstat (limited to 'clang/lib/Serialization/ModuleManager.cpp')
0 files changed, 0 insertions, 0 deletions