[llvm][Support] Add isZero method for TypeSize. [NFC]
authorFrancesco Petrogalli <francesco.petrogalli@arm.com>
Fri, 27 Mar 2020 20:41:06 +0000 (20:41 +0000)
committerFrancesco Petrogalli <francesco.petrogalli@arm.com>
Fri, 27 Mar 2020 21:03:44 +0000 (21:03 +0000)
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
llvm/lib/Analysis/ConstantFolding.cpp
llvm/lib/Target/AArch64/AArch64CallLowering.cpp

index f66c043..35db423 100644 (file)
@@ -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
index 87c22b3..0adabf2 100644 (file)
@@ -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);
index 080c1f1..aace22a 100644 (file)
@@ -420,7 +420,7 @@ bool AArch64CallLowering::lowerFormalArguments(
   SmallVector<ArgInfo, 8> 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()};