aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaCodeComplete.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2019-05-24 10:03:11 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2019-05-24 10:03:11 +0000
commit95b8d9bbf852428fc738bb93c78ef7b00f39341f (patch)
treecfd2ae0884d113480973daa6a1b39041ad8baa68 /clang/lib/Sema/SemaCodeComplete.cpp
parent980f7605156e76fe2310fccca1581e5860c1512e (diff)
downloadllvm-95b8d9bbf852428fc738bb93c78ef7b00f39341f.zip
llvm-95b8d9bbf852428fc738bb93c78ef7b00f39341f.tar.gz
llvm-95b8d9bbf852428fc738bb93c78ef7b00f39341f.tar.bz2
[SelectionDAG] computeKnownBits - support constant pool values from target
This patch adds the overridable TargetLowering::getTargetConstantFromLoad function which allows targets to return any constant value loaded by a LoadSDNode node - only X86 makes use of this so far but everything should be in place for other targets. computeKnownBits then uses this function to improve codegen, notably vector code after legalization. A future commit will do the same for ComputeNumSignBits but computeKnownBits sees the bigger benefit. This required a couple of fixes: * SimplifyDemandedBits must early-out for getTargetConstantFromLoad cases to prevent infinite loops of constant regeneration (similar to what we already do for BUILD_VECTOR). * Fix a DAGCombiner::visitTRUNCATE issue as we had trunc(shl(v8i32),v8i16) <-> shl(trunc(v8i16),v8i32) infinite loops after legalization on AVX512 targets. Differential Revision: https://reviews.llvm.org/D61887 llvm-svn: 361620
Diffstat (limited to 'clang/lib/Sema/SemaCodeComplete.cpp')
0 files changed, 0 insertions, 0 deletions