Home
last modified time | relevance | path

Searched refs:GEP (Results 1 – 25 of 100) sorted by relevance

1234

/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/
DSeparateConstOffsetFromGEP.cpp237 static Value *Extract(Value *Idx, GetElementPtrInst *GEP,
243 static int64_t Find(Value *Idx, GetElementPtrInst *GEP,
373 bool splitGEP(GetElementPtrInst *GEP);
400 int64_t accumulateByteOffset(GetElementPtrInst *GEP, bool &NeedsExtraction);
417 bool canonicalizeArrayIndicesToPointerSize(GetElementPtrInst *GEP);
736 Value *ConstantOffsetExtractor::Extract(Value *Idx, GetElementPtrInst *GEP, in Extract() argument
739 ConstantOffsetExtractor Extractor(GEP, DT); in Extract()
743 GEP->isInBounds()); in Extract()
754 int64_t ConstantOffsetExtractor::Find(Value *Idx, GetElementPtrInst *GEP, in Find() argument
757 return ConstantOffsetExtractor(GEP, DT) in Find()
[all …]
DNaryReassociate.cpp298 static bool isGEPFoldable(GetElementPtrInst *GEP, in isGEPFoldable() argument
301 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I) in isGEPFoldable()
303 return TTI->getGEPCost(GEP->getSourceElementType(), GEP->getPointerOperand(), in isGEPFoldable()
307 Instruction *NaryReassociatePass::tryReassociateGEP(GetElementPtrInst *GEP) { in tryReassociateGEP() argument
309 if (isGEPFoldable(GEP, TTI)) in tryReassociateGEP()
312 gep_type_iterator GTI = gep_type_begin(*GEP); in tryReassociateGEP()
313 for (unsigned I = 1, E = GEP->getNumOperands(); I != E; ++I, ++GTI) { in tryReassociateGEP()
315 if (auto *NewGEP = tryReassociateGEPAtIndex(GEP, I - 1, in tryReassociateGEP()
325 GetElementPtrInst *GEP) { in requiresSignExtension() argument
327 DL->getPointerSizeInBits(GEP->getType()->getPointerAddressSpace()); in requiresSignExtension()
[all …]
DStraightLineStrengthReduce.cpp107 GEP, // &B[..][i * S][..] enumerator
201 void allocateCandidatesAndFindBasisForGEP(GetElementPtrInst *GEP);
222 GetElementPtrInst *GEP);
273 static bool isGEPFoldable(GetElementPtrInst *GEP, in isGEPFoldable() argument
276 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I) in isGEPFoldable()
278 return TTI->getGEPCost(GEP->getSourceElementType(), GEP->getPointerOperand(), in isGEPFoldable()
296 if (C.CandidateKind == Candidate::GEP) in isFoldable()
302 static bool hasOnlyOneNonZeroIndex(GetElementPtrInst *GEP) { in hasOnlyOneNonZeroIndex() argument
304 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I) { in hasOnlyOneNonZeroIndex()
321 if (C.CandidateKind == Candidate::GEP) { in isSimplestForm()
[all …]
DMergeICmps.cpp83 BCEAtom(GetElementPtrInst *GEP, LoadInst *LoadI, int BaseId, APInt Offset) in BCEAtom()
84 : GEP(GEP), LoadI(LoadI), BaseId(BaseId), Offset(Offset) {} in BCEAtom()
93 GEP = that.GEP; in operator =()
114 GetElementPtrInst *GEP = nullptr; member
157 auto *const GEP = dyn_cast<GetElementPtrInst>(Addr); in visitICmpLoadOperand() local
158 if (!GEP) in visitICmpLoadOperand()
161 if (GEP->isUsedOutsideOfBlock(LoadI->getParent())) { in visitICmpLoadOperand()
165 const auto &DL = GEP->getModule()->getDataLayout(); in visitICmpLoadOperand()
166 if (!isDereferenceablePointer(GEP, LoadI->getType(), DL)) { in visitICmpLoadOperand()
172 APInt Offset = APInt(DL.getPointerTypeSizeInBits(GEP->getType()), 0); in visitICmpLoadOperand()
[all …]
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/IPO/
DGlobalSplit.cpp60 auto *GEP = dyn_cast<GEPOperator>(U); in splitGlobal() local
61 if (!GEP || !GEP->getInRangeIndex() || *GEP->getInRangeIndex() != 1 || in splitGlobal()
62 !isa<ConstantInt>(GEP->getOperand(1)) || in splitGlobal()
63 !cast<ConstantInt>(GEP->getOperand(1))->isZero() || in splitGlobal()
64 !isa<ConstantInt>(GEP->getOperand(2))) in splitGlobal()
117 auto *GEP = cast<GEPOperator>(U); in splitGlobal() local
118 unsigned I = cast<ConstantInt>(GEP->getOperand(2))->getZExtValue(); in splitGlobal()
124 for (unsigned I = 3; I != GEP->getNumOperands(); ++I) in splitGlobal()
125 Ops.push_back(GEP->getOperand(I)); in splitGlobal()
129 GEP->isInBounds()); in splitGlobal()
[all …]
DArgumentPromotion.cpp439 GetElementPtrInst *GEP = cast<GetElementPtrInst>(I->user_back()); in doPromotion() local
441 Operands.reserve(GEP->getNumIndices()); in doPromotion()
442 for (User::op_iterator II = GEP->idx_begin(), IE = GEP->idx_end(); in doPromotion()
468 while (!GEP->use_empty()) { in doPromotion()
469 LoadInst *L = cast<LoadInst>(GEP->user_back()); in doPromotion()
473 GEP->eraseFromParent(); in doPromotion()
631 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(V)) { in isSafeToPromoteArgument() local
632 V = GEP->getPointerOperand(); in isSafeToPromoteArgument()
635 Indices.reserve(GEP->getNumIndices()); in isSafeToPromoteArgument()
636 for (User::op_iterator II = GEP->idx_begin(), IE = GEP->idx_end(); in isSafeToPromoteArgument()
[all …]
DGlobalOpt.cpp175 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(I)) { in IsSafeComputationToRemove() local
176 if (!GEP->hasAllConstantIndices()) in IsSafeComputationToRemove()
320 } else if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(U)) { in CleanupConstantGlobalUsers() local
325 if (!isa<ConstantExpr>(GEP->getOperand(0))) { in CleanupConstantGlobalUsers()
327 ConstantFoldInstruction(GEP, DL, &GetTLI(*GEP->getFunction()))); in CleanupConstantGlobalUsers()
334 if (Init && isa<ConstantAggregateZero>(Init) && GEP->isInBounds()) in CleanupConstantGlobalUsers()
335 SubInit = Constant::getNullValue(GEP->getResultElementType()); in CleanupConstantGlobalUsers()
337 Changed |= CleanupConstantGlobalUsers(GEP, SubInit, DL, GetTLI); in CleanupConstantGlobalUsers()
339 if (GEP->use_empty()) { in CleanupConstantGlobalUsers()
340 GEP->eraseFromParent(); in CleanupConstantGlobalUsers()
[all …]
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Analysis/Utils/
DLocal.h29 Value *EmitGEPOffset(IRBuilderTy *Builder, const DataLayout &DL, User *GEP,
31 GEPOperator *GEPOp = cast<GEPOperator>(GEP);
32 Type *IntIdxTy = DL.getIndexType(GEP->getType());
44 gep_type_iterator GTI = gep_type_begin(GEP);
45 for (User::op_iterator i = GEP->op_begin() + 1, e = GEP->op_end(); i != e;
60 GEP->getName()+".offs");
73 Result = Builder->CreateAdd(Result, Scale, GEP->getName()+".offs");
87 GEP->getName() + ".idx", false /*NUW*/,
92 Result = Builder->CreateAdd(Op, Result, GEP->getName()+".offs");
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/
DGetElementPtrTypeIterator.h127 inline gep_type_iterator gep_type_begin(const User *GEP) { in gep_type_begin() argument
128 auto *GEPOp = cast<GEPOperator>(GEP); in gep_type_begin()
131 GEP->op_begin() + 1); in gep_type_begin()
134 inline gep_type_iterator gep_type_end(const User *GEP) { in gep_type_end() argument
135 return gep_type_iterator::end(GEP->op_end()); in gep_type_end()
138 inline gep_type_iterator gep_type_begin(const User &GEP) { in gep_type_begin() argument
139 auto &GEPOp = cast<GEPOperator>(GEP); in gep_type_begin()
142 GEP.op_begin() + 1); in gep_type_begin()
145 inline gep_type_iterator gep_type_end(const User &GEP) { in gep_type_end() argument
146 return gep_type_iterator::end(GEP.op_end()); in gep_type_end()
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/InstCombine/
DInstructionCombining.cpp161 Value *InstCombiner::EmitGEPOffset(User *GEP) { in EmitGEPOffset() argument
162 return llvm::EmitGEPOffset(&Builder, DL, GEP); in EmitGEPOffset()
1182 static bool shouldMergeGEPs(GEPOperator &GEP, GEPOperator &Src) { in shouldMergeGEPs() argument
1186 if (GEP.hasAllZeroIndices() && !Src.hasAllZeroIndices() && in shouldMergeGEPs()
1661 Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) { in visitGetElementPtrInst() argument
1662 SmallVector<Value*, 8> Ops(GEP.op_begin(), GEP.op_end()); in visitGetElementPtrInst()
1663 Type *GEPType = GEP.getType(); in visitGetElementPtrInst()
1664 Type *GEPEltType = GEP.getSourceElementType(); in visitGetElementPtrInst()
1665 if (Value *V = SimplifyGEPInst(GEPEltType, Ops, SQ.getWithInstruction(&GEP))) in visitGetElementPtrInst()
1666 return replaceInstUsesWith(GEP, V); in visitGetElementPtrInst()
[all …]
DInstCombinePHI.cpp406 GetElementPtrInst *GEP= dyn_cast<GetElementPtrInst>(PN.getIncomingValue(i)); in FoldPHIArgGEPIntoPHI() local
407 if (!GEP || !GEP->hasOneUse() || GEP->getType() != FirstInst->getType() || in FoldPHIArgGEPIntoPHI()
408 GEP->getNumOperands() != FirstInst->getNumOperands()) in FoldPHIArgGEPIntoPHI()
411 AllInBounds &= GEP->isInBounds(); in FoldPHIArgGEPIntoPHI()
415 (!isa<AllocaInst>(GEP->getOperand(0)) || in FoldPHIArgGEPIntoPHI()
416 !GEP->hasAllConstantIndices())) in FoldPHIArgGEPIntoPHI()
421 if (FirstInst->getOperand(op) == GEP->getOperand(op)) in FoldPHIArgGEPIntoPHI()
430 isa<ConstantInt>(GEP->getOperand(op))) in FoldPHIArgGEPIntoPHI()
433 if (FirstInst->getOperand(op)->getType() !=GEP->getOperand(op)->getType()) in FoldPHIArgGEPIntoPHI()
535 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(L->getOperand(0))) in isSafeAndProfitableToSinkLoad() local
[all …]
DInstCombineLoadStoreAlloca.cpp84 if (auto *GEP = dyn_cast<GetElementPtrInst>(I)) { in isOnlyCopiedFromConstantGlobal() local
87 ValuesToInspect.emplace_back(I, IsOffset || !GEP->hasAllZeroIndices()); in isOnlyCopiedFromConstantGlobal()
215 Instruction *GEP = GetElementPtrInst::CreateInBounds( in simplifyAllocaArraySize() local
217 IC.InsertNewInstBefore(GEP, *It); in simplifyAllocaArraySize()
221 return IC.replaceInstUsesWith(AI, GEP); in simplifyAllocaArraySize()
306 } else if (auto *GEP = dyn_cast<GetElementPtrInst>(I)) { in replace() local
307 auto *V = getReplacement(GEP->getPointerOperand()); in replace()
310 Indices.append(GEP->idx_begin(), GEP->idx_end()); in replace()
313 IC.InsertNewInstWith(NewI, *GEP); in replace()
314 NewI->takeName(GEP); in replace()
[all …]
DInstCombineCompares.cpp145 Instruction *InstCombiner::foldCmpLoadFromIndexedGlobal(GetElementPtrInst *GEP, in foldCmpLoadFromIndexedGlobal() argument
162 if (GEP->getNumOperands() < 3 || in foldCmpLoadFromIndexedGlobal()
163 !isa<ConstantInt>(GEP->getOperand(1)) || in foldCmpLoadFromIndexedGlobal()
164 !cast<ConstantInt>(GEP->getOperand(1))->isZero() || in foldCmpLoadFromIndexedGlobal()
165 isa<Constant>(GEP->getOperand(2))) in foldCmpLoadFromIndexedGlobal()
174 for (unsigned i = 3, e = GEP->getNumOperands(); i != e; ++i) { in foldCmpLoadFromIndexedGlobal()
175 ConstantInt *Idx = dyn_cast<ConstantInt>(GEP->getOperand(i)); in foldCmpLoadFromIndexedGlobal()
308 Value *Idx = GEP->getOperand(2); in foldCmpLoadFromIndexedGlobal()
313 if (!GEP->isInBounds()) { in foldCmpLoadFromIndexedGlobal()
314 Type *IntPtrTy = DL.getIntPtrType(GEP->getType()); in foldCmpLoadFromIndexedGlobal()
[all …]
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/
DPHITransAddr.cpp214 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Inst)) { in PHITranslateSubExpr() local
217 for (unsigned i = 0, e = GEP->getNumOperands(); i != e; ++i) { in PHITranslateSubExpr()
218 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr()
221 AnyChanged |= GEPOp != GEP->getOperand(i); in PHITranslateSubExpr()
226 return GEP; in PHITranslateSubExpr()
229 if (Value *V = SimplifyGEPInst(GEP->getSourceElementType(), in PHITranslateSubExpr()
241 if (GEPI->getType() == GEP->getType() && in PHITranslateSubExpr()
396 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Inst)) { in InsertPHITranslatedSubExpr() local
398 BasicBlock *CurBB = GEP->getParent(); in InsertPHITranslatedSubExpr()
399 for (unsigned i = 0, e = GEP->getNumOperands(); i != e; ++i) { in InsertPHITranslatedSubExpr()
[all …]
DTypeMetadataUtils.cpp60 } else if (auto GEP = dyn_cast<GetElementPtrInst>(User)) { in findLoadCallsAtConstantOffset() local
62 if (VPtr == GEP->getPointerOperand() && GEP->hasAllConstantIndices()) { in findLoadCallsAtConstantOffset()
63 SmallVector<Value *, 8> Indices(GEP->op_begin() + 1, GEP->op_end()); in findLoadCallsAtConstantOffset()
65 GEP->getSourceElementType(), Indices); in findLoadCallsAtConstantOffset()
DInlineCost.cpp273 bool isGEPFree(GetElementPtrInst &GEP);
275 bool accumulateGEPOffset(GEPOperator &GEP, APInt &Offset);
674 bool CallAnalyzer::accumulateGEPOffset(GEPOperator &GEP, APInt &Offset) { in accumulateGEPOffset() argument
675 unsigned IntPtrWidth = DL.getIndexTypeSizeInBits(GEP.getType()); in accumulateGEPOffset()
678 for (gep_type_iterator GTI = gep_type_begin(GEP), GTE = gep_type_end(GEP); in accumulateGEPOffset()
706 bool CallAnalyzer::isGEPFree(GetElementPtrInst &GEP) { in isGEPFree() argument
708 Operands.push_back(GEP.getOperand(0)); in isGEPFree()
709 for (User::op_iterator I = GEP.idx_begin(), E = GEP.idx_end(); I != E; ++I) in isGEPFree()
714 return TargetTransformInfo::TCC_Free == TTI.getUserCost(&GEP, Operands); in isGEPFree()
870 auto IsGEPOffsetConstant = [&](GetElementPtrInst &GEP) { in visitGetElementPtr() argument
[all …]
DMemoryBuiltins.cpp590 if (GEPOperator *GEP = dyn_cast<GEPOperator>(V)) in compute() local
591 return visitGEPOperator(*GEP); in compute()
748 SizeOffsetType ObjectSizeOffsetVisitor::visitGEPOperator(GEPOperator &GEP) { in visitGEPOperator() argument
749 SizeOffsetType PtrData = compute(GEP.getPointerOperand()); in visitGEPOperator()
750 APInt Offset(DL.getIndexTypeSizeInBits(GEP.getPointerOperand()->getType()), 0); in visitGEPOperator()
751 if (!bothKnown(PtrData) || !GEP.accumulateConstantOffset(DL, Offset)) in visitGEPOperator()
894 } else if (GEPOperator *GEP = dyn_cast<GEPOperator>(V)) { in compute_() local
895 Result = visitGEPOperator(*GEP); in compute_()
971 ObjectSizeOffsetEvaluator::visitGEPOperator(GEPOperator &GEP) { in visitGEPOperator() argument
972 SizeOffsetEvalType PtrData = compute_(GEP.getPointerOperand()); in visitGEPOperator()
[all …]
DConstantFolding.cpp309 auto *GEP = dyn_cast<GEPOperator>(CE); in IsConstantOffsetFromGlobal() local
310 if (!GEP) in IsConstantOffsetFromGlobal()
313 unsigned BitWidth = DL.getIndexTypeSizeInBits(GEP->getType()); in IsConstantOffsetFromGlobal()
321 if (!GEP->accumulateConstantOffset(DL, TmpOffset)) in IsConstantOffsetFromGlobal()
821 Constant *SymbolicallyEvaluateGEP(const GEPOperator *GEP, in SymbolicallyEvaluateGEP() argument
825 const GEPOperator *InnermostGEP = GEP; in SymbolicallyEvaluateGEP()
826 bool InBounds = GEP->isInBounds(); in SymbolicallyEvaluateGEP()
828 Type *SrcElemTy = GEP->getSourceElementType(); in SymbolicallyEvaluateGEP()
829 Type *ResElemTy = GEP->getResultElementType(); in SymbolicallyEvaluateGEP()
830 Type *ResTy = GEP->getType(); in SymbolicallyEvaluateGEP()
[all …]
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Transforms/Scalar/
DNaryReassociate.h120 Instruction *tryReassociateGEP(GetElementPtrInst *GEP);
129 GetElementPtrInst *tryReassociateGEPAtIndex(GetElementPtrInst *GEP,
134 GetElementPtrInst *tryReassociateGEPAtIndex(GetElementPtrInst *GEP,
165 bool requiresSignExtension(Value *Index, GetElementPtrInst *GEP);
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/AMDGPU/
DAMDGPUPerfHintAnalysis.cpp169 if (auto GEP = dyn_cast<GetElementPtrInst>(V)) { in isIndirectAccess() local
170 auto P = GEP->getPointerOperand(); in isIndirectAccess()
172 for (unsigned I = 1, E = GEP->getNumIndices() + 1; I != E; ++I) in isIndirectAccess()
173 WorkSet.insert(GEP->getOperand(I)); in isIndirectAccess()
241 } else if (auto *GEP = dyn_cast<GetElementPtrInst>(&I)) { in visit() local
243 auto *Ptr = GetPointerBaseWithConstantOffset(GEP, AM.BaseOffs, *DL); in visit()
246 if (TLI->isLegalAddressingMode(*DL, AM, GEP->getResultElementType(), in visit()
247 GEP->getPointerAddressSpace())) in visit()
DAMDGPUPromoteAlloca.cpp308 GetElementPtrInst *GEP = cast<GetElementPtrInst>(Ptr); in calculateVectorIndex() local
310 auto I = GEPIdx.find(GEP); in calculateVectorIndex()
314 static Value* GEPToVectorIndex(GetElementPtrInst *GEP) { in GEPToVectorIndex() argument
316 if (GEP->getNumOperands() != 3) in GEPToVectorIndex()
319 ConstantInt *I0 = dyn_cast<ConstantInt>(GEP->getOperand(1)); in GEPToVectorIndex()
323 return GEP->getOperand(2); in GEPToVectorIndex()
387 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(AllocaUser); in tryPromoteAllocaToVector() local
388 if (!GEP) { in tryPromoteAllocaToVector()
396 Value *Index = GEPToVectorIndex(GEP); in tryPromoteAllocaToVector()
401 LLVM_DEBUG(dbgs() << " Cannot compute vector index for GEP " << *GEP in tryPromoteAllocaToVector()
[all …]
DAMDGPUInstructionSelector.h63 const MachineInstr &GEP; member
67 GEPInfo(const MachineInstr &GEP) : GEP(GEP), Imm(0) { } in GEPInfo()
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/ARM/
DMVEGatherScatterLowering.cpp120 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr); in checkGEP() local
121 if (!GEP) { in checkGEP()
127 Value *GEPPtr = GEP->getPointerOperand(); in checkGEP()
134 if (GEP->getNumOperands() != 2) { in checkGEP()
139 Offsets = GEP->getOperand(1); in checkGEP()
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/IR/
DValue.cpp477 if (auto *GEP = dyn_cast<GEPOperator>(V)) { in stripPointerCastsAndOffsets() local
483 if (!GEP->hasAllZeroIndices()) in stripPointerCastsAndOffsets()
487 if (!GEP->hasAllConstantIndices()) in stripPointerCastsAndOffsets()
491 if (!GEP->isInBounds()) in stripPointerCastsAndOffsets()
495 V = GEP->getPointerOperand(); in stripPointerCastsAndOffsets()
566 if (auto *GEP = dyn_cast<GEPOperator>(V)) { in stripAndAccumulateConstantOffsets() local
568 if (!AllowNonInbounds && !GEP->isInBounds()) in stripAndAccumulateConstantOffsets()
578 if (!GEP->accumulateConstantOffset(DL, GEPOffset)) in stripAndAccumulateConstantOffsets()
588 V = GEP->getPointerOperand(); in stripAndAccumulateConstantOffsets()
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/
DInterleavedLoadCombinePass.cpp984 GetElementPtrInst &GEP = *cast<GetElementPtrInst>(&Ptr); in computePolynomialFromPointer() local
989 if (GEP.accumulateConstantOffset(DL, BaseOffset)) { in computePolynomialFromPointer()
991 BasePtr = GEP.getPointerOperand(); in computePolynomialFromPointer()
998 for (idxOperand = 1, e = GEP.getNumOperands(); idxOperand < e; in computePolynomialFromPointer()
1000 ConstantInt *IDX = dyn_cast<ConstantInt>(GEP.getOperand(idxOperand)); in computePolynomialFromPointer()
1014 computePolynomial(*GEP.getOperand(idxOperand), Result); in computePolynomialFromPointer()
1019 DL.getIndexedOffsetInType(GEP.getSourceElementType(), Indices); in computePolynomialFromPointer()
1022 unsigned ResultSize = DL.getTypeAllocSize(GEP.getResultElementType()); in computePolynomialFromPointer()
1026 BasePtr = GEP.getPointerOperand(); in computePolynomialFromPointer()

1234