ctetreau marked an inline comment as done. ctetreau added inline comments.
================ Comment at: llvm/include/llvm/IR/DerivedTypes.h:430 + /// Construct a VectorType that has the same shape as some other VectorType + static VectorType *get(Type *ElementType, VectorType *Other) { + return VectorType::get(ElementType, Other->getElementCount()); ---------------- ctetreau wrote: > efriedma wrote: > > It seems confusing to overload get() this way. > There's a bunch of code that is "I want a vector with the same shape as some > other vector, but with a different element type" > > Currently, there's a bunch of variants like: > > ``` > auto *V2 = VectorType::Get(SomeTy, V1->getNumElements()); > auto *V3 = VectorType::Get(SomeTy, V4->getElementType()); > ``` > > Really, for all variants of this operation, the first is potentially buggy if > v1 is scalable, and it can always be replaced with the second and be correct > (unless you are specifically trying to get a fixed width vector that has the > same minimum number of elements as some potentially scalable vector, but > that's a strange special case and I'd ask in code review that the author > specifically pass false). But really, the quantity that you get out of the > second argument is always noise. This change makes the following equivalent: > > ``` > auto *V2 = VectorType::Get(SomeTy, V1->getElementType()); > auto *V3 = VectorType::Get(SomeTy, V1); > assert(V2->getType() == V3->getType()); > ``` > > If V1 was scalable, then V2 is scalable, and vice versa. If you like, I can > improve the documentation for this function, but I think it adds value. In this example, "getElementType" should be "getElementCount", but I assume you get the idea... Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77587/new/ https://reviews.llvm.org/D77587 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits