HomeSort by: relevance | last modified time | path
    Searched defs:GEP (Results 1 - 25 of 45) sorted by relevancy

1 2

  /src/external/apache2/llvm/dist/llvm/lib/FuzzMutate/
IRMutator.cpp 205 GetElementPtrInst *GEP = nullptr;
233 GEP = cast<GetElementPtrInst>(&Inst);
234 Modifications.push_back([GEP]() { GEP->setIsInBounds(true); });
235 Modifications.push_back([GEP]() { GEP->setIsInBounds(false); });
  /src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/
AMDGPUInstructionSelector.h 71 const MachineInstr &GEP;
75 GEPInfo(const MachineInstr &GEP) : GEP(GEP), Imm(0) { }
AMDGPUTargetTransformInfo.cpp 173 const GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(&I);
174 if (!GEP)
177 unsigned AS = GEP->getAddressSpace();
190 const Value *Ptr = GEP->getPointerOperand();
207 (!isa<GlobalVariable>(GEP->getPointerOperand()) &&
208 !isa<Argument>(GEP->getPointerOperand())))
215 // Check if GEP depends on a value defined by this loop itself.
217 for (const Value *Op : GEP->operands()) {
247 << *L << " due to " << *GEP << '\n');
252 // If we got a GEP in a small BB from inner loop then increase max tri
    [all...]
AMDGPUPromoteAlloca.cpp 337 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(stripBitcasts(Ptr));
338 if (!GEP)
341 auto I = GEPIdx.find(GEP);
345 static Value* GEPToVectorIndex(GetElementPtrInst *GEP) {
347 if (GEP->getNumOperands() != 3)
350 ConstantInt *I0 = dyn_cast<ConstantInt>(GEP->getOperand(1));
354 return GEP->getOperand(2);
365 // Currently only handle the case where the Pointer Operand is a GEP.
385 // since it should be canonical form, the User should be a GEP.
455 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(AllocaUser)
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/NVPTX/
NVVMReflect.cpp 138 const ConstantExpr *GEP = cast<ConstantExpr>(Str);
140 const Value *Sym = GEP->getOperand(0);
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/IPO/
GlobalSplit.cpp 9 // This pass uses inrange annotations on GEP indices to split globals where
60 auto *GEP = dyn_cast<GEPOperator>(U);
61 if (!GEP || !GEP->getInRangeIndex() || *GEP->getInRangeIndex() != 1 ||
62 !isa<ConstantInt>(GEP->getOperand(1)) ||
63 !cast<ConstantInt>(GEP->getOperand(1))->isZero() ||
64 !isa<ConstantInt>(GEP->getOperand(2)))
120 auto *GEP = cast<GEPOperator>(U);
121 unsigned I = cast<ConstantInt>(GEP->getOperand(2))->getZExtValue()
    [all...]
ArgumentPromotion.cpp 98 /// A vector used to hold the indices of a single GEP instruction
121 // handle cases where there are both a direct load and GEP accesses.
126 // what the new GEP/Load instructions we are inserting look like.
180 // and gep+loads with the GEP indices.
253 // Loop over the operands, inserting GEP and loads in the caller as
263 // Emit a GEP and load for each element of the struct.
296 // This satisfies GEP constraints.
307 // And create a GEP to extract those indices.
439 GetElementPtrInst *GEP = cast<GetElementPtrInst>(I->user_back())
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/
RelLookupTableConverter.cpp 39 GetElementPtrInst *GEP =
41 if (!GEP || !GEP->hasOneUse())
44 LoadInst *Load = dyn_cast<LoadInst>(GEP->use_begin()->getUser());
128 GetElementPtrInst *GEP =
130 LoadInst *Load = cast<LoadInst>(GEP->use_begin()->getUser());
133 BasicBlock *BB = GEP->getParent();
140 // Place new instruction sequence before GEP.
141 Builder.SetInsertPoint(GEP);
142 Value *Index = GEP->getOperand(2)
    [all...]
  /src/external/apache2/llvm/dist/clang/lib/CodeGen/
CGBuilder.h 273 auto *GEP = cast<llvm::GetElementPtrInst>(CreateConstInBoundsGEP2_32(
278 if (!GEP->accumulateConstantOffset(DL, Offset))
279 llvm_unreachable("offset of GEP with constants is always computable");
280 return Address(GEP, Addr.getAlignment().alignmentAtOffset(
  /src/external/apache2/llvm/dist/llvm/lib/CodeGen/
StackProtector.cpp 203 // If the GEP offset is out-of-bounds, or is non-constant and so has to be
207 const GetElementPtrInst *GEP = cast<GetElementPtrInst>(I);
211 if (!GEP->accumulateConstantOffset(DL, Offset) || Offset.ugt(MaxOffset))
GlobalMerge.cpp 542 Constant *GEP =
544 Globals[k]->replaceAllUsesWith(GEP);
554 Linkage, Name, GEP, &M);
InterleavedLoadCombinePass.cpp 149 // Pa_3 = %IDX/2 + 1 #1 | GEP, step signext to i64
150 // Pa_4 = (%IDX/2)*16 + 16 #0 | GEP, multiply index by sizeof(4) for floats
151 // Pa_5 = (%IDX/2)*16 + 16 #0 | GEP, add offset of leading components
156 // Pb_3 = %IDX/2 + 2 #1 | GEP, step signext to i64
157 // Pb_4 = (%IDX/2)*16 + 32 #0 | GEP, multiply index by sizeof(4) for floats
158 // Pb_5 = (%IDX/2)*16 + 16 #0 | GEP, add offset of leading components
984 GetElementPtrInst &GEP = *cast<GetElementPtrInst>(&Ptr);
989 if (GEP.accumulateConstantOffset(DL, BaseOffset)) {
991 BasePtr = GEP.getPointerOperand();
994 // Otherwise we allow that the last index operand of the GEP i
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/
ConstraintElimination.cpp 55 auto *GEP = dyn_cast<GetElementPtrInst>(V);
56 if (GEP && GEP->getNumOperands() == 2 && GEP->isInBounds()) {
61 if (match(GEP->getOperand(GEP->getNumOperands() - 1),
65 {1, GEP->getPointerOperand()},
69 {1, GEP->getPointerOperand()},
71 return {{0, nullptr}, {1, GEP->getPointerOperand()}, {1, Op0}};
74 if (match(GEP->getOperand(GEP->getNumOperands() - 1), m_ConstantInt(CI)) &
    [all...]
StraightLineStrengthReduce.cpp 139 GEP, // &B[..][i * S][..]
151 // Note that Index and Stride of a GEP candidate do not necessarily have the
214 void allocateCandidatesAndFindBasisForGEP(GetElementPtrInst *GEP);
235 GetElementPtrInst *GEP);
238 // GEP and the bump is not divisible by the element size of the GEP, this
240 // basis using an ugly GEP.
286 static bool isGEPFoldable(GetElementPtrInst *GEP,
288 SmallVector<const Value *, 4> Indices(GEP->indices());
289 return TTI->getGEPCost(GEP->getSourceElementType(), GEP->getPointerOperand()
    [all...]
InferAddressSpaces.cpp 30 // %1 = gep [10 x float], [10 x float]* %0, i64 0, i64 %i
38 // %1 = gep [10 x float] addrspace(3)* @a, i64 0, i64 %i
442 if (auto *GEP = dyn_cast<GetElementPtrInst>(&I)) {
443 if (!GEP->getType()->isVectorTy())
444 PushPtrOperand(GEP->getPointerOperand());
606 GetElementPtrInst *GEP = cast<GetElementPtrInst>(I);
608 GEP->getSourceElementType(), NewPointerOperands[0],
609 SmallVector<Value *, 4>(GEP->indices()));
610 NewGEP->setIsInBounds(GEP->isInBounds());
MergeICmps.cpp 83 BCEAtom(GetElementPtrInst *GEP, LoadInst *LoadI, int BaseId, APInt Offset)
84 : GEP(GEP), LoadI(LoadI), BaseId(BaseId), Offset(Offset) {}
93 GEP = that.GEP;
114 GetElementPtrInst *GEP = nullptr;
157 auto *const GEP = dyn_cast<GetElementPtrInst>(Addr);
158 if (!GEP)
160 LLVM_DEBUG(dbgs() << "GEP\n");
161 if (GEP->isUsedOutsideOfBlock(LoadI->getParent()))
    [all...]
MemCpyOptimizer.cpp 967 // Support moving a constant index GEP before the call.
968 auto *GEP = dyn_cast<GetElementPtrInst>(cpyDest);
969 if (GEP && GEP->hasAllConstantIndices() &&
970 DT->dominates(GEP->getPointerOperand(), C))
971 GEP->moveBefore(C);
  /src/external/apache2/llvm/dist/llvm/lib/Target/ARM/
MVEGatherScatterLowering.cpp 87 Value *checkGEP(Value *&Offsets, FixedVectorType *Ty, GetElementPtrInst *GEP,
127 Value *Ptr, GetElementPtrInst *GEP,
139 Value *foldGEP(GetElementPtrInst *GEP, Value *&Offsets, IRBuilder<> &Builder);
218 GetElementPtrInst *GEP,
220 if (!GEP) {
227 Value *GEPPtr = GEP->getPointerOperand();
228 Offsets = GEP->getOperand(1);
233 if (GEP->getNumOperands() != 2) {
238 Offsets = GEP->getOperand(1);
267 // If none of the checks failed, return the gep's base pointe
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Instrumentation/
SanitizerCoverage.cpp 126 cl::desc("Tracing of GEP instructions"),
353 auto GEP = IRB.CreateGEP(Int8Ty, SecStartI8Ptr,
355 return std::make_pair(IRB.CreatePointerCast(GEP, Ty), SecEnd);
659 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(&Inst))
660 GepTraceTargets.push_back(GEP);
848 for (auto GEP : GepTraceTargets) {
849 IRBuilder<> IRB(GEP);
850 for (Use &Idx : GEP->indices())
  /src/external/apache2/llvm/dist/llvm/tools/bugpoint/
Miscompilation.cpp 858 Value *GEP = ConstantExpr::getGetElementPtr(InitArray->getType(),
861 ResolverArgs.push_back(GEP);
  /src/external/apache2/llvm/dist/llvm/lib/Analysis/
VectorUtils.cpp 134 /// Find the operand of the GEP that should be checked for consecutive
137 unsigned llvm::getGEPInductionOperand(const GetElementPtrInst *Gep) {
138 const DataLayout &DL = Gep->getModule()->getDataLayout();
139 unsigned LastOperand = Gep->getNumOperands() - 1;
140 TypeSize GEPAllocSize = DL.getTypeAllocSize(Gep->getResultElementType());
143 while (LastOperand > 1 && match(Gep->getOperand(LastOperand), m_Zero())) {
145 gep_type_iterator GEPTI = gep_type_begin(Gep);
148 // If it's a type with the same allocation size as the result of the GEP we
158 /// If the argument is a GEP, then returns the operand identified by
162 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr)
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/BPF/
BPFAbstractMemberAccess.cpp 157 void traceGEP(GetElementPtrInst *GEP, CallInst *Parent,
370 auto *GEP = GetElementPtrInst::CreateInBounds(Call->getArgOperand(0),
372 Call->replaceAllUsesWith(GEP);
402 // addr = GEP(base, dimenion's zero's, index)
408 // addr = GEP(base, 0, gep_index)
533 void BPFAbstractMemberAccess::traceGEP(GetElementPtrInst *GEP, CallInst *Parent,
535 for (User *U : GEP->users()) {
1025 // For any original GEP Call and Base %2 like
1043 auto *GEP = GetElementPtrInst::Create(Type::getInt8Ty(BB->getContext()),
1045 BB->getInstList().insert(Call->getIterator(), GEP);
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/InstCombine/
InstCombineLoadStoreAlloca.cpp 71 if (auto *GEP = dyn_cast<GetElementPtrInst>(I)) {
72 // If the GEP has all zero indices, it doesn't offset the pointer. If it
74 ValuesToInspect.emplace_back(I, IsOffset || !GEP->hasAllZeroIndices());
202 Instruction *GEP = GetElementPtrInst::CreateInBounds(
204 IC.InsertNewInstBefore(GEP, *It);
208 return IC.replaceInstUsesWith(AI, GEP);
234 // the new pointer. If during the chasing it sees bitcast or GEP, it will
235 // create new bitcast or GEP with the new pointer and use them in the load
294 } else if (auto *GEP = dyn_cast<GetElementPtrInst>(I)) {
295 auto *V = getReplacement(GEP->getPointerOperand())
    [all...]
InstCombinePHI.cpp 479 // This is true if all GEP bases are allocas and if all indices into them are
492 GetElementPtrInst *GEP =
494 if (!GEP || !GEP->hasOneUser() || GEP->getType() != FirstInst->getType() ||
495 GEP->getNumOperands() != FirstInst->getNumOperands())
498 AllInBounds &= GEP->isInBounds();
502 (!isa<AllocaInst>(GEP->getOperand(0)) ||
503 !GEP->hasAllConstantIndices()))
508 if (FirstInst->getOperand(op) == GEP->getOperand(op)
    [all...]
  /src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
TargetTransformInfoImpl.h 874 // Handle the case where the GEP instruction has a single operand,
881 // We assume that the cost of Scalar GEP with constant index and the
882 // cost of Vector GEP with splat constant index are the same.
889 assert(ConstIdx && "Unexpected GEP index");
964 const GEPOperator *GEP = cast<GEPOperator>(U);
965 return TargetTTI->getGEPCost(GEP->getSourceElementType(),
966 GEP->getPointerOperand(),

Completed in 49 milliseconds

1 2