aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/FileSystemStatCache.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-07-07 09:06:58 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-07-07 09:06:58 +0000
commit0dcb366268eebecaad88dcc6ae8166b0f61e9b7f (patch)
treed4cb45aabcda4668febc8687e39613ca414f5bda /clang/lib/Basic/FileSystemStatCache.cpp
parent55beb64bd063196acda5dd51e7e63f2ceae48ee7 (diff)
downloadllvm-0dcb366268eebecaad88dcc6ae8166b0f61e9b7f.zip
llvm-0dcb366268eebecaad88dcc6ae8166b0f61e9b7f.tar.gz
llvm-0dcb366268eebecaad88dcc6ae8166b0f61e9b7f.tar.bz2
[x86] Teach the new vector shuffle lowering code to handle what is
essentially a DAG combine that never gets a chance to run. We might typically expect DAG combining to remove shuffles-of-splats and other similar patterns, but we don't get a chance to run the DAG combiner when we recursively form sub-shuffles during the lowering of a shuffle. So instead hand-roll a really important combine directly into the lowering code to detect shuffles-of-splats, especially shuffles of an all-zero splat which needn't even have the same element width, etc. This lets the new vector shuffle lowering handle shuffles which implement things like zero-extension really nicely. This will become even more important when I wire the legalization of zero-extension to vector shuffles with the new widening legalization strategy. llvm-svn: 212444
Diffstat (limited to 'clang/lib/Basic/FileSystemStatCache.cpp')
0 files changed, 0 insertions, 0 deletions