huntergr added inline comments.

================
Comment at: llvm/include/llvm/IR/DataLayout.h:454
+    auto BaseSize = getTypeSizeInBits(Ty);
+    return { (BaseSize.getKnownMinSize() + 7) / 8, BaseSize.isScalable() };
   }
----------------
rovka wrote:
> We already overload operator /, why not overload + as well so we don't have 
> to change the body of this method?
Scaling a size with * or / has a clear meaning to me, since it's independent of 
vscale; getting a vector that's half the size or four times larger just works.

Using + (or -) on the other hand doesn't seem to be as clear; I wasn't sure if 
a standalone int should be automatically treated as being the same as the 
TypeSize, or always considered Fixed. If we try for the former I can imagine 
quite a few bugs arising.

I could add a roundBitsToNearestByteSize method to move the arithmetic 
elsewhere if that would be acceptable?


================
Comment at: llvm/include/llvm/IR/DataLayout.h:656
+                     
getTypeSizeInBits(VTy->getElementType()).getKnownMinSize();
+    return ScalableSize(MinBits, EltCnt.Scalable);
   }
----------------
rovka wrote:
> Maybe just return VTy->getElementCount() * 
> getTypeSizeInBits(VTy->getElementType()).getFixedSize().
There's no support for generating a TypeSize from an ElementCount in that way; 
is that an interface you feel is useful?

(I'll certainly change the `getKnownMinSize` to `getFixedSize` though, since 
we're just referring to a scalar)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D53137/new/

https://reviews.llvm.org/D53137



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to