Kill and collapse outstanding DomainValues.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 7 Nov 2011 23:08:21 +0000 (23:08 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 7 Nov 2011 23:08:21 +0000 (23:08 +0000)
commitb26c7727c9a45613d9bae69995cfd719c57c5614
treefc4faf0805970b46a9cea0314099f74ee0e17897
parenta29fc806fe02cea76f7896b7e344bb919dd7ac25
Kill and collapse outstanding DomainValues.

DomainValues that are only used by "don't care" instructions are now
collapsed to the first possible execution domain after all basic blocks
have been processed.  This typically means the PS domain on x86.

For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are
completely collapsed to the PS domain instead of containing a mix of
execution domains created by isel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144037 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/ExecutionDepsFix.cpp
test/CodeGen/X86/avx-intrinsics-x86.ll
test/CodeGen/X86/avx-logic.ll
test/CodeGen/X86/nontemporal.ll
test/CodeGen/X86/sse-align-3.ll
test/CodeGen/X86/sse2-blend.ll
test/CodeGen/X86/sse2.ll
test/CodeGen/X86/vec_shuffle.ll