summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/thread
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2019-07-23 12:39:08 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2019-07-23 12:39:08 +0000
commit743d45ee2536d80ecadcc78ba5fc042de3bb3749 (patch)
treed8a00e8c0dc3f0c62ee7a3be723ff6d1e4b5275f /lldb/packages/Python/lldbsuite/test/python_api/thread
parent7c35db08655182021c9ba9c7171e625eaa7e50e2 (diff)
downloadbcm5719-llvm-743d45ee2536d80ecadcc78ba5fc042de3bb3749.tar.gz
bcm5719-llvm-743d45ee2536d80ecadcc78ba5fc042de3bb3749.zip
[TargetLowering] Add SimplifyMultipleUseDemandedBits
This patch introduces the DAG version of SimplifyMultipleUseDemandedBits, which attempts to peek through ops (mainly and/or/xor so far) that don't contribute to the demandedbits/elts of a node - which means we can do this even in cases where we have multiple uses of an op, which normally requires us to demanded all bits/elts. The intention is to remove a similar instruction - SelectionDAG::GetDemandedBits - once SimplifyMultipleUseDemandedBits has matured. The InstCombine version of SimplifyMultipleUseDemandedBits can constant fold which I haven't added here yet, and so far I've only wired this up to some basic binops (and/or/xor/add/sub/mul) to demonstrate its use. We do see a couple of regressions that need to be addressed: AMDGPU unsigned dot product codegen retains an AND mask (for ZERO_EXTEND) that it previously removed (but otherwise the dotproduct codegen is a lot better). X86/AVX2 has poor handling of vector ANY_EXTEND/ANY_EXTEND_VECTOR_INREG - it prematurely gets converted to ZERO_EXTEND_VECTOR_INREG. The code owners have confirmed its ok for these cases to fixed up in future patches. Differential Revision: https://reviews.llvm.org/D63281 llvm-svn: 366799
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/thread')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud