]> granicus.if.org Git - llvm/commit
[X86] Use APInt instead of SmallBitVector for tracking Zeroable elements in shuffle...
authorCraig Topper <craig.topper@gmail.com>
Mon, 27 Feb 2017 16:15:30 +0000 (16:15 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 27 Feb 2017 16:15:30 +0000 (16:15 +0000)
commitb84e77adb3d743ed8a0bc22bef93a871b6a08212
tree05485a6a9513a6ccaf826e55294c0ffcd270926c
parent72dbe0cc0e5240838584487791a812107f4c8f3e
[X86] Use APInt instead of SmallBitVector for tracking Zeroable elements in shuffle lowering

Summary:
SmallBitVector uses a malloc for more than 58 bits on a 64-bit target and more than 27 bits on a 32-bit target. Some of the vector types we deal with here use more than those number of elements and therefore cause a malloc.

APInt on the other hand supports up to 64 bits without a malloc. That's the maximum number of bits we need here so we can avoid a malloc for all cases by using APInt.

Reviewers: RKSimon

Reviewed By: RKSimon

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D30390

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296354 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp