[PATCH] D77259: Clean up usages of asserting vector getters in Type

Christopher Tetreault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 10 09:19:55 PDT 2020


ctetreau marked an inline comment as done.
ctetreau added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:281
   // TODO: Handle bitcast from narrow element type to wide element type.
-  assert(SrcTy->isVectorTy() && "Shuffle of non-vector type?");
-  unsigned DestNumElts = DestTy->getVectorNumElements();
-  unsigned SrcNumElts = SrcTy->getVectorNumElements();
+  assert(SrcTy && "Shuffle of non-vector type?");
+  unsigned DestNumElts = DestTy->getNumElements();
----------------
ctetreau wrote:
> sdesmalen wrote:
> > Now that SrcTy is of type VectorType because of the `cast<>`, this assert can be removed.
> I agree and will fix it, but for the record: whenever this happens, I did it so that the assert message wouldn't change.
> 
> It might be nice if cast() had an overload that took a message that was used for the assert, but that's a problem for another day. Something like:
> 
> ```
> auto *t = cast<Foo>(bar, "This is guaranteed to be a Foo becasue it's the return value of a BarInst");
> ```
Obviously in this case, this assert will never fire. But at one point it was a dyn_cast.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D77259





More information about the llvm-commits mailing list