Inline a trivial helper function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152577 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer
2012-03-12 21:18:53 +00:00
parent da253ae40f
commit a185362095

View File

@@ -722,13 +722,9 @@ unsigned APInt::countLeadingZerosSlowCase() const {
return Count; return Count;
} }
static unsigned countLeadingOnes_64(uint64_t V, unsigned skip) {
return CountLeadingOnes_64(V << skip);
}
unsigned APInt::countLeadingOnes() const { unsigned APInt::countLeadingOnes() const {
if (isSingleWord()) if (isSingleWord())
return countLeadingOnes_64(VAL, APINT_BITS_PER_WORD - BitWidth); return CountLeadingOnes_64(VAL << (APINT_BITS_PER_WORD - BitWidth));
unsigned highWordBits = BitWidth % APINT_BITS_PER_WORD; unsigned highWordBits = BitWidth % APINT_BITS_PER_WORD;
unsigned shift; unsigned shift;
@@ -739,13 +735,13 @@ unsigned APInt::countLeadingOnes() const {
shift = APINT_BITS_PER_WORD - highWordBits; shift = APINT_BITS_PER_WORD - highWordBits;
} }
int i = getNumWords() - 1; int i = getNumWords() - 1;
unsigned Count = countLeadingOnes_64(pVal[i], shift); unsigned Count = CountLeadingOnes_64(pVal[i] << shift);
if (Count == highWordBits) { if (Count == highWordBits) {
for (i--; i >= 0; --i) { for (i--; i >= 0; --i) {
if (pVal[i] == -1ULL) if (pVal[i] == -1ULL)
Count += APINT_BITS_PER_WORD; Count += APINT_BITS_PER_WORD;
else { else {
Count += countLeadingOnes_64(pVal[i], 0); Count += CountLeadingOnes_64(pVal[i]);
break; break;
} }
} }