Remove SequentialType from the type heirarchy.
Now that we have scalable vectors, there's a distinction that isn't getting captured in the original SequentialType: some vectors don't have a known element count, so counting the number of elements doesn't make sense. In some cases, there's a better way to express the commonality using other methods. If we're dealing with GEPs, there's GEP methods; if we're dealing with a ConstantDataSequential, we can query its element type directly. In the relatively few remaining cases, I just decided to write out the type checks. We're talking about relatively few places, and I think the abstraction doesn't really carry its weight. (See thread "[RFC] Refactor class hierarchy of VectorType in the IR" on llvmdev.) Differential Revision: https://reviews.llvm.org/D75661
This commit is contained in:
@@ -2505,7 +2505,11 @@ Error BitcodeReader::parseConstants() {
|
||||
if (Record.empty())
|
||||
return error("Invalid record");
|
||||
|
||||
Type *EltTy = cast<SequentialType>(CurTy)->getElementType();
|
||||
Type *EltTy;
|
||||
if (auto *Array = dyn_cast<ArrayType>(CurTy))
|
||||
EltTy = Array->getElementType();
|
||||
else
|
||||
EltTy = cast<VectorType>(CurTy)->getElementType();
|
||||
if (EltTy->isIntegerTy(8)) {
|
||||
SmallVector<uint8_t, 16> Elts(Record.begin(), Record.end());
|
||||
if (isa<VectorType>(CurTy))
|
||||
|
||||
Reference in New Issue
Block a user