ctetreau updated this revision to Diff 258392. ctetreau added a comment. Herald added a project: clang. Herald added a subscriber: cfe-commits.
catch stragglers Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77278/new/ https://reviews.llvm.org/D77278 Files: clang/lib/CodeGen/CGBuiltin.cpp llvm/include/llvm/IR/DerivedTypes.h llvm/include/llvm/IR/Type.h llvm/lib/CodeGen/CodeGenPrepare.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp =================================================================== --- llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -4263,7 +4263,7 @@ Base = SDB->getValue(C); - unsigned NumElts = Ptr->getType()->getVectorNumElements(); + unsigned NumElts = cast<VectorType>(Ptr->getType())->getNumElements(); EVT VT = EVT::getVectorVT(*DAG.getContext(), TLI.getPointerTy(DL), NumElts); Index = DAG.getConstant(0, SDB->getCurSDLoc(), VT); IndexType = ISD::SIGNED_SCALED; Index: llvm/lib/CodeGen/CodeGenPrepare.cpp =================================================================== --- llvm/lib/CodeGen/CodeGenPrepare.cpp +++ llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -5262,7 +5262,7 @@ if (!RewriteGEP && Ops.size() == 2) return false; - unsigned NumElts = Ptr->getType()->getVectorNumElements(); + unsigned NumElts = cast<VectorType>(Ptr->getType())->getNumElements(); IRBuilder<> Builder(MemoryInst); Index: llvm/include/llvm/IR/Type.h =================================================================== --- llvm/include/llvm/IR/Type.h +++ llvm/include/llvm/IR/Type.h @@ -300,11 +300,7 @@ /// If this is a vector type, return the element type, otherwise return /// 'this'. - Type *getScalarType() const { - if (isVectorTy()) - return getVectorElementType(); - return const_cast<Type*>(this); - } + inline Type *getScalarType() const; //===--------------------------------------------------------------------===// // Type Iteration support. @@ -339,8 +335,8 @@ //===--------------------------------------------------------------------===// // Helper methods corresponding to subclass methods. This forces a cast to - // the specified subclass and calls its accessor. "getVectorNumElements" (for - // example) is shorthand for cast<VectorType>(Ty)->getNumElements(). This is + // the specified subclass and calls its accessor. "getArrayNumElements" (for + // example) is shorthand for cast<ArrayType>(Ty)->getNumElements(). This is // only intended to cover the core methods that are frequently used, helper // methods should not be added here. @@ -361,14 +357,6 @@ return ContainedTys[0]; } - inline bool getVectorIsScalable() const; - inline unsigned getVectorNumElements() const; - inline ElementCount getVectorElementCount() const; - Type *getVectorElementType() const { - assert(getTypeID() == VectorTyID); - return ContainedTys[0]; - } - Type *getPointerElementType() const { assert(getTypeID() == PointerTyID); return ContainedTys[0]; Index: llvm/include/llvm/IR/DerivedTypes.h =================================================================== --- llvm/include/llvm/IR/DerivedTypes.h +++ llvm/include/llvm/IR/DerivedTypes.h @@ -531,18 +531,6 @@ } }; -unsigned Type::getVectorNumElements() const { - return cast<VectorType>(this)->getNumElements(); -} - -bool Type::getVectorIsScalable() const { - return cast<VectorType>(this)->isScalable(); -} - -ElementCount Type::getVectorElementCount() const { - return cast<VectorType>(this)->getElementCount(); -} - bool Type::isVectorTy() const { return isa<VectorType>(this); } /// Class to represent pointers. @@ -597,8 +585,8 @@ isIntOrIntVectorTy() && "Original type expected to be a vector of integers or a scalar integer."); Type *NewType = getIntNTy(getContext(), NewBitWidth); - if (isVectorTy()) - NewType = VectorType::get(NewType, getVectorElementCount()); + if (auto *VTy = dyn_cast<VectorType>(this)) + NewType = VectorType::get(NewType, VTy->getElementCount()); return NewType; } @@ -606,6 +594,12 @@ return cast<PointerType>(getScalarType())->getAddressSpace(); } +Type *Type::getScalarType() const { + if (isVectorTy()) + return cast<VectorType>(this)->getElementType(); + return const_cast<Type *>(this); +} + } // end namespace llvm #endif // LLVM_IR_DERIVEDTYPES_H Index: clang/lib/CodeGen/CGBuiltin.cpp =================================================================== --- clang/lib/CodeGen/CGBuiltin.cpp +++ clang/lib/CodeGen/CGBuiltin.cpp @@ -7573,8 +7573,7 @@ // The vector type that is stored may be different from the // eventual type stored to memory. auto VectorTy = cast<llvm::VectorType>(Ops.back()->getType()); - auto MemoryTy = - llvm::VectorType::get(MemEltTy, VectorTy->getVectorElementCount()); + auto MemoryTy = llvm::VectorType::get(MemEltTy, VectorTy->getElementCount()); Value *Predicate = EmitSVEPredicateCast(Ops[0], MemoryTy); Value *BasePtr = Builder.CreateBitCast(Ops[1], MemoryTy->getPointerTo());
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits