From c66d1f38f6f11ee6bafb0a3f2c06f3bbf4413ab2 Mon Sep 17 00:00:00 2001 From: Francesco Petrogalli Date: Fri, 27 Mar 2020 20:41:06 +0000 Subject: [PATCH] [llvm][Support] Add isZero method for TypeSize. [NFC] Summary: The method is used where TypeSize is implicitly cast to integer for being checked against 0. Reviewers: sdesmalen, efriedma Reviewed By: sdesmalen, efriedma Subscribers: efriedma, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76748 --- llvm/include/llvm/Support/TypeSize.h | 3 +++ llvm/lib/Analysis/ConstantFolding.cpp | 2 +- llvm/lib/Target/AArch64/AArch64CallLowering.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/llvm/include/llvm/Support/TypeSize.h b/llvm/include/llvm/Support/TypeSize.h index f66c043..35db423 100644 --- a/llvm/include/llvm/Support/TypeSize.h +++ b/llvm/include/llvm/Support/TypeSize.h @@ -149,6 +149,9 @@ public: // Returns true if the type size is non-zero. bool isNonZero() const { return MinSize != 0; } + // Returns true if the type size is zero. + bool isZero() const { return MinSize == 0; } + // Casts to a uint64_t if this is a fixed-width size. // // This interface is deprecated and will be removed in a future version diff --git a/llvm/lib/Analysis/ConstantFolding.cpp b/llvm/lib/Analysis/ConstantFolding.cpp index 87c22b3..0adabf2 100644 --- a/llvm/lib/Analysis/ConstantFolding.cpp +++ b/llvm/lib/Analysis/ConstantFolding.cpp @@ -363,7 +363,7 @@ Constant *llvm::ConstantFoldLoadThroughBitcast(Constant *C, Type *DestTy, Constant *ElemC; do { ElemC = C->getAggregateElement(Elem++); - } while (ElemC && DL.getTypeSizeInBits(ElemC->getType()) == 0); + } while (ElemC && DL.getTypeSizeInBits(ElemC->getType()).isZero()); C = ElemC; } else { C = C->getAggregateElement(0u); diff --git a/llvm/lib/Target/AArch64/AArch64CallLowering.cpp b/llvm/lib/Target/AArch64/AArch64CallLowering.cpp index 080c1f1..aace22a 100644 --- a/llvm/lib/Target/AArch64/AArch64CallLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64CallLowering.cpp @@ -420,7 +420,7 @@ bool AArch64CallLowering::lowerFormalArguments( SmallVector SplitArgs; unsigned i = 0; for (auto &Arg : F.args()) { - if (DL.getTypeStoreSize(Arg.getType()) == 0) + if (DL.getTypeStoreSize(Arg.getType()).isZero()) continue; ArgInfo OrigArg{VRegs[i], Arg.getType()}; -- 2.7.4