mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 07:31:28 +00:00
Use llvm::bit_ceil (NFC)
Note that: std::has_single_bit(X) ? X : llvm::NextPowerOf2(X); is equivalent to: std::bit_ceil(X) even for input 0.
This commit is contained in:
parent
ad95b0e977
commit
526966d07d
@ -2502,8 +2502,7 @@ TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const {
|
||||
// favorable to atomic operations:
|
||||
|
||||
// Round the size up to a power of 2.
|
||||
if (!llvm::isPowerOf2_64(Width))
|
||||
Width = llvm::NextPowerOf2(Width);
|
||||
Width = llvm::bit_ceil(Width);
|
||||
|
||||
// Set the alignment equal to the size.
|
||||
Align = static_cast<unsigned>(Width);
|
||||
|
@ -8761,8 +8761,7 @@ ABIArgInfo HexagonABIInfo::classifyArgumentType(QualType Ty,
|
||||
Align = Size <= 32 ? 32 : 64;
|
||||
if (Size <= Align) {
|
||||
// Pass in the smallest viable integer type.
|
||||
if (!llvm::isPowerOf2_64(Size))
|
||||
Size = llvm::NextPowerOf2(Size);
|
||||
Size = llvm::bit_ceil(Size);
|
||||
return ABIArgInfo::getDirect(llvm::Type::getIntNTy(getVMContext(), Size));
|
||||
}
|
||||
return DefaultABIInfo::classifyArgumentType(Ty);
|
||||
@ -8807,8 +8806,7 @@ ABIArgInfo HexagonABIInfo::classifyReturnType(QualType RetTy) const {
|
||||
// are returned indirectly.
|
||||
if (Size <= 64) {
|
||||
// Return in the smallest viable integer type.
|
||||
if (!llvm::isPowerOf2_64(Size))
|
||||
Size = llvm::NextPowerOf2(Size);
|
||||
Size = llvm::bit_ceil(Size);
|
||||
return ABIArgInfo::getDirect(llvm::Type::getIntNTy(getVMContext(), Size));
|
||||
}
|
||||
return getNaturalAlignIndirect(RetTy, /*ByVal=*/true);
|
||||
|
@ -128,8 +128,7 @@ static std::pair<Type *, bool> computeRecurrenceType(Instruction *Exit,
|
||||
++MaxBitWidth;
|
||||
}
|
||||
}
|
||||
if (!isPowerOf2_64(MaxBitWidth))
|
||||
MaxBitWidth = NextPowerOf2(MaxBitWidth);
|
||||
MaxBitWidth = llvm::bit_ceil(MaxBitWidth);
|
||||
|
||||
return std::make_pair(Type::getIntNTy(Exit->getContext(), MaxBitWidth),
|
||||
IsSigned);
|
||||
|
@ -772,8 +772,7 @@ llvm::computeMinimumValueSizes(ArrayRef<BasicBlock *> Blocks, DemandedBits &DB,
|
||||
|
||||
uint64_t MinBW = llvm::bit_width(LeaderDemandedBits);
|
||||
// Round up to a power of 2
|
||||
if (!isPowerOf2_64((uint64_t)MinBW))
|
||||
MinBW = NextPowerOf2(MinBW);
|
||||
MinBW = llvm::bit_ceil(MinBW);
|
||||
|
||||
// We don't modify the types of PHIs. Reductions will already have been
|
||||
// truncated if possible, and inductions' sizes will have been chosen by
|
||||
|
@ -576,8 +576,7 @@ bool TargetLowering::ShrinkDemandedOp(SDValue Op, unsigned BitWidth,
|
||||
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
|
||||
unsigned DemandedSize = Demanded.getActiveBits();
|
||||
unsigned SmallVTBits = DemandedSize;
|
||||
if (!isPowerOf2_32(SmallVTBits))
|
||||
SmallVTBits = NextPowerOf2(SmallVTBits);
|
||||
SmallVTBits = llvm::bit_ceil(SmallVTBits);
|
||||
for (; SmallVTBits < BitWidth; SmallVTBits = NextPowerOf2(SmallVTBits)) {
|
||||
EVT SmallVT = EVT::getIntegerVT(*DAG.getContext(), SmallVTBits);
|
||||
if (TLI.isTruncateFree(Op.getValueType(), SmallVT) &&
|
||||
|
@ -1137,8 +1137,7 @@ static unsigned getVectorTypeBreakdownMVT(MVT VT, MVT &IntermediateVT,
|
||||
unsigned LaneSizeInBits = NewVT.getScalarSizeInBits();
|
||||
|
||||
// Convert sizes such as i33 to i64.
|
||||
if (!isPowerOf2_32(LaneSizeInBits))
|
||||
LaneSizeInBits = NextPowerOf2(LaneSizeInBits);
|
||||
LaneSizeInBits = llvm::bit_ceil(LaneSizeInBits);
|
||||
|
||||
MVT DestVT = TLI->getRegisterType(NewVT);
|
||||
RegisterVT = DestVT;
|
||||
|
@ -472,9 +472,7 @@ Value *getLoadValueForLoad(LoadInst *SrcVal, unsigned Offset, Type *LoadTy,
|
||||
assert(SrcVal->getType()->isIntegerTy() && "Can't widen non-integer load");
|
||||
// If we have a load/load clobber an DepLI can be widened to cover this
|
||||
// load, then we should widen it to the next power of 2 size big enough!
|
||||
unsigned NewLoadSize = Offset + LoadSize;
|
||||
if (!isPowerOf2_32(NewLoadSize))
|
||||
NewLoadSize = NextPowerOf2(NewLoadSize);
|
||||
unsigned NewLoadSize = llvm::bit_ceil(Offset + LoadSize);
|
||||
|
||||
Value *PtrVal = SrcVal->getPointerOperand();
|
||||
// Insert the new load after the old load. This ensures that subsequent
|
||||
|
@ -11223,8 +11223,7 @@ void BoUpSLP::computeMinimumValueSizes() {
|
||||
}
|
||||
|
||||
// Round MaxBitWidth up to the next power-of-two.
|
||||
if (!isPowerOf2_64(MaxBitWidth))
|
||||
MaxBitWidth = NextPowerOf2(MaxBitWidth);
|
||||
MaxBitWidth = llvm::bit_ceil(MaxBitWidth);
|
||||
|
||||
// If the maximum bit width we compute is less than the with of the roots'
|
||||
// type, we can proceed with the narrowing. Otherwise, do nothing.
|
||||
|
Loading…
Reference in New Issue
Block a user