diff options
author | James Y Knight <jyknight@google.com> | 2019-01-10 16:07:20 +0000 |
---|---|---|
committer | James Y Knight <jyknight@google.com> | 2019-01-10 16:07:20 +0000 |
commit | 62df5eed16a07c4dd183c71d69d6858b5fa19652 (patch) | |
tree | e9d9c43424b364b6ed2ee4524e26e16ab34e7047 /llvm/lib/ExecutionEngine/Interpreter/Execution.cpp | |
parent | 20c7844f50a2f2c555bfc6d9b3d2376a6f154511 (diff) | |
download | llvm-62df5eed16a07c4dd183c71d69d6858b5fa19652.zip llvm-62df5eed16a07c4dd183c71d69d6858b5fa19652.tar.gz llvm-62df5eed16a07c4dd183c71d69d6858b5fa19652.tar.bz2 |
[opaque pointer types] Remove some calls to generic Type subtype accessors.
That is, remove many of the calls to Type::getNumContainedTypes(),
Type::subtypes(), and Type::getContainedType(N).
I'm not intending to remove these accessors -- they are
useful/necessary in some cases. However, removing the pointee type
from pointers would potentially break some uses, and reducing the
number of calls makes it easier to audit.
llvm-svn: 350835
Diffstat (limited to 'llvm/lib/ExecutionEngine/Interpreter/Execution.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Interpreter/Execution.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp b/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp index 39cf6d4..98dca11 100644 --- a/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp +++ b/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp @@ -1778,17 +1778,14 @@ void Interpreter::visitExtractElementInst(ExtractElementInst &I) { void Interpreter::visitInsertElementInst(InsertElementInst &I) { ExecutionContext &SF = ECStack.back(); - Type *Ty = I.getType(); - - if(!(Ty->isVectorTy()) ) - llvm_unreachable("Unhandled dest type for insertelement instruction"); + VectorType *Ty = cast<VectorType>(I.getType()); GenericValue Src1 = getOperandValue(I.getOperand(0), SF); GenericValue Src2 = getOperandValue(I.getOperand(1), SF); GenericValue Src3 = getOperandValue(I.getOperand(2), SF); GenericValue Dest; - Type *TyContained = Ty->getContainedType(0); + Type *TyContained = Ty->getElementType(); const unsigned indx = unsigned(Src3.IntVal.getZExtValue()); Dest.AggregateVal = Src1.AggregateVal; @@ -1814,9 +1811,7 @@ void Interpreter::visitInsertElementInst(InsertElementInst &I) { void Interpreter::visitShuffleVectorInst(ShuffleVectorInst &I){ ExecutionContext &SF = ECStack.back(); - Type *Ty = I.getType(); - if(!(Ty->isVectorTy())) - llvm_unreachable("Unhandled dest type for shufflevector instruction"); + VectorType *Ty = cast<VectorType>(I.getType()); GenericValue Src1 = getOperandValue(I.getOperand(0), SF); GenericValue Src2 = getOperandValue(I.getOperand(1), SF); @@ -1827,7 +1822,7 @@ void Interpreter::visitShuffleVectorInst(ShuffleVectorInst &I){ // bytecode can't contain different types for src1 and src2 for a // shufflevector instruction. - Type *TyContained = Ty->getContainedType(0); + Type *TyContained = Ty->getElementType(); unsigned src1Size = (unsigned)Src1.AggregateVal.size(); unsigned src2Size = (unsigned)Src2.AggregateVal.size(); unsigned src3Size = (unsigned)Src3.AggregateVal.size(); |