/external/llvm/lib/Target/AMDGPU/ |
AMDGPUTargetTransformInfo.cpp | 44 const GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(&I); 45 if (!GEP || GEP->getAddressSpace() != AMDGPUAS::PRIVATE_ADDRESS) 48 const Value *Ptr = GEP->getPointerOperand();
|
AMDGPUPromoteAlloca.cpp | 354 GetElementPtrInst *GEP = cast<GetElementPtrInst>(Ptr); 356 auto I = GEPIdx.find(GEP); 360 static Value* GEPToVectorIndex(GetElementPtrInst *GEP) { 362 if (GEP->getNumOperands() != 3) 365 ConstantInt *I0 = dyn_cast<ConstantInt>(GEP->getOperand(1)); 369 return GEP->getOperand(2); 409 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(AllocaUser); 410 if (!GEP) { 418 Value *Index = GEPToVectorIndex(GEP); 420 // If we can't compute a vector index from this GEP, then we can' [all...] |
/external/llvm/lib/Target/NVPTX/ |
NVVMReflect.cpp | 177 const ConstantExpr *GEP = cast<ConstantExpr>(Str); 179 const Value *Sym = GEP->getOperand(0);
|
NVPTXInferAddressSpaces.cpp | 31 // %1 = gep [10 x float], [10 x float]* %0, i64 0, i64 %i 39 // %1 = gep [10 x float] addrspace(3)* @a, i64 0, i64 %i 317 GetElementPtrInst *GEP = cast<GetElementPtrInst>(I); 319 GEP->getSourceElementType(), NewPointerOperands[0], 320 SmallVector<Value *, 4>(GEP->idx_begin(), GEP->idx_end())); 321 NewGEP->setIsInBounds(GEP->isInBounds());
|
/external/swiftshader/third_party/LLVM/unittests/Transforms/Utils/ |
Cloning.cpp | 127 GetElementPtrInst *GEP = GetElementPtrInst::Create(V, ops); 128 EXPECT_FALSE(this->clone(GEP)->isInBounds()); 130 GEP->setIsInBounds(); 131 EXPECT_TRUE(this->clone(GEP)->isInBounds());
|
/frameworks/compile/libbcc/lib/ |
RSX86TranslateGEPPass.cpp | 43 // Walk a GEP instruction and return true if any type indexed is a struct. 44 bool GEPIndexesStructType(const llvm::GetElementPtrInst *GEP) { 45 for (llvm::gep_type_iterator GTI = gep_type_begin(GEP), 46 GTE = gep_type_end(GEP); 63 // Compute the byte offset for a GEP from the GEP's base pointer operand. 69 llvm::Value *computeGEPOffset(llvm::GetElementPtrInst *GEP) { 72 for (llvm::gep_type_iterator GTI = gep_type_begin(GEP), 73 GTE = gep_type_end(GEP); 87 Offset = incrementOffset(Offset, Incr, GEP); [all...] |
/external/swiftshader/third_party/LLVM/lib/Target/ARM/ |
ARMGlobalMerge.cpp | 153 Constant *GEP = ConstantExpr::getInBoundsGetElementPtr(MergedGV, Idx); 154 Globals[k]->replaceAllUsesWith(GEP);
|
/external/llvm/lib/Analysis/ |
VectorUtils.cpp | 98 /// \brief Find the operand of the GEP that should be checked for consecutive 101 unsigned llvm::getGEPInductionOperand(const GetElementPtrInst *Gep) { 102 const DataLayout &DL = Gep->getModule()->getDataLayout(); 103 unsigned LastOperand = Gep->getNumOperands() - 1; 104 unsigned GEPAllocSize = DL.getTypeAllocSize(Gep->getResultElementType()); 107 while (LastOperand > 1 && match(Gep->getOperand(LastOperand), m_Zero())) { 109 gep_type_iterator GEPTI = gep_type_begin(Gep); 112 // If it's a type with the same allocation size as the result of the GEP we 122 /// \brief If the argument is a GEP, then returns the operand identified by 126 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr) [all...] |
/external/llvm/lib/CodeGen/ |
GlobalMerge.cpp | 462 Constant *GEP = 464 Globals[k]->replaceAllUsesWith(GEP); 473 GlobalAlias::create(Tys[idx], AddrSpace, Linkage, Name, GEP, &M);
|
/external/llvm/unittests/Linker/ |
LinkModulesTest.cpp | 86 Value *GEP = Builder.CreateGEP(AT, GV, GEPIndices, "switch.gep"); 87 Value *Load = Builder.CreateLoad(GEP, "switch.load");
|
/external/swiftshader/third_party/LLVM/lib/Transforms/InstCombine/ |
InstCombineAddSub.cpp | 401 Value *InstCombiner::EmitGEPOffset(User *GEP) { 403 gep_type_iterator GTI = gep_type_begin(GEP); 404 Type *IntPtrTy = TD.getIntPtrType(GEP->getContext()); 407 // If the GEP is inbounds, we know that none of the addressing operations will 409 bool isInBounds = cast<GEPOperator>(GEP)->isInBounds(); 415 for (User::op_iterator i = GEP->op_begin() + 1, e = GEP->op_end(); i != e; 428 GEP->getName()+".offs"); 437 Result = Builder->CreateAdd(Result, Scale, GEP->getName()+".offs"); 446 GEP->getName()+".idx", isInBounds /*NUW*/) [all...] |
InstCombineLoadStoreAlloca.cpp | 60 Instruction *GEP = 62 InsertNewInstBefore(GEP, *It); 66 return ReplaceInstUsesWith(AI, GEP); 107 // see if a trivial 'gep P, 0, 0' will help matters. Only do this for 177 // load(gep null, ...) -> unreachable 269 /// NewGEPIndices - If SrcPTy is an aggregate type, we can emit a "noop gep" 276 // see if a trivial 'gep P, 0, 0' will help matters. Only do this for 329 // emit a GEP to index into its first field. 397 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr)) { 398 if (isa<AllocaInst>(GEP->getOperand(0))) [all...] |
InstCombinePHI.cpp | 135 // This is true if all GEP bases are allocas and if all indices into them are 148 GetElementPtrInst *GEP= dyn_cast<GetElementPtrInst>(PN.getIncomingValue(i)); 149 if (!GEP || !GEP->hasOneUse() || GEP->getType() != FirstInst->getType() || 150 GEP->getNumOperands() != FirstInst->getNumOperands()) 153 AllInBounds &= GEP->isInBounds(); 157 (!isa<AllocaInst>(GEP->getOperand(0)) || 158 !GEP->hasAllConstantIndices())) 163 if (FirstInst->getOperand(op) == GEP->getOperand(op) [all...] |
/external/llvm/lib/Transforms/Scalar/ |
StraightLineStrengthReduce.cpp | 88 GEP, // &B[..][i * S][..] 100 // Note that Index and Stride of a GEP candidate do not necessarily have the 173 void allocateCandidatesAndFindBasisForGEP(GetElementPtrInst *GEP); 190 GetElementPtrInst *GEP); 192 // GEP and the bump is not divisible by the element size of the GEP, this 194 // basis using an ugly GEP. 237 static bool isGEPFoldable(GetElementPtrInst *GEP, 240 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I [all...] |
/external/llvm/lib/Transforms/Utils/ |
CodeExtractor.cpp | 357 GetElementPtrInst *GEP = GetElementPtrInst::Create( 359 RewriteVal = new LoadInst(GEP, "loadgep_" + inputs[i]->getName(), TI); 457 GetElementPtrInst *GEP = GetElementPtrInst::Create( 459 codeReplacer->getInstList().push_back(GEP); 460 StoreInst *SI = new StoreInst(StructValues[i], GEP); 482 GetElementPtrInst *GEP = GetElementPtrInst::Create( 484 codeReplacer->getInstList().push_back(GEP); 485 Output = GEP; 598 GetElementPtrInst *GEP = GetElementPtrInst::Create( 601 new StoreInst(outputs[out], GEP, NTRet) [all...] |
/external/llvm/tools/bugpoint/ |
Miscompilation.cpp | [all...] |
/external/llvm/unittests/Transforms/Utils/ |
Cloning.cpp | 136 GetElementPtrInst *GEP = 138 EXPECT_FALSE(this->clone(GEP)->isInBounds()); 140 GEP->setIsInBounds(); 141 EXPECT_TRUE(this->clone(GEP)->isInBounds());
|
/external/swiftshader/third_party/LLVM/lib/Transforms/IPO/ |
ArgumentPromotion.cpp | 73 /// A vector used to hold the indices of a single GEP instruction 318 // We can only promote this argument if all of the uses are loads, or are GEP 352 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(V)) { 353 V = GEP->getPointerOperand(); 356 Indices.reserve(GEP->getNumIndices()); 357 for (User::op_iterator II = GEP->idx_begin(), IE = GEP->idx_end(); 362 // We found a non-constant GEP index for this argument? Bail out 371 // Direct loads are equivalent to a GEP with a single 0 index. 377 // not (GEP+)loads, or any (GEP+)loads that are not safe to promote [all...] |
/external/swiftshader/third_party/LLVM/lib/Transforms/Utils/ |
CodeExtractor.cpp | 319 GetElementPtrInst *GEP = 321 RewriteVal = new LoadInst(GEP, "loadgep_" + inputs[i]->getName(), TI); 421 GetElementPtrInst *GEP = 424 codeReplacer->getInstList().push_back(GEP); 425 StoreInst *SI = new StoreInst(StructValues[i], GEP); 447 GetElementPtrInst *GEP 450 codeReplacer->getInstList().push_back(GEP); 451 Output = GEP; 562 GetElementPtrInst *GEP = 566 new StoreInst(outputs[out], GEP, NTRet) [all...] |
/external/swiftshader/third_party/LLVM/tools/bugpoint/ |
Miscompilation.cpp | [all...] |
/external/llvm/lib/Transforms/IPO/ |
ArgumentPromotion.cpp | 92 /// A vector used to hold the indices of a single GEP instruction 466 // We can only promote this argument if all of the uses are loads, or are GEP 502 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(V)) { 503 V = GEP->getPointerOperand(); 506 Indices.reserve(GEP->getNumIndices()); 507 for (User::op_iterator II = GEP->idx_begin(), IE = GEP->idx_end(); 512 // We found a non-constant GEP index for this argument? Bail out 521 // Direct loads are equivalent to a GEP with a single 0 index. 527 // not (GEP+)loads, or any (GEP+)loads that are not safe to promote [all...] |
LowerTypeTests.cpp | 76 if (auto GEP = dyn_cast<GEPOperator>(V)) { 78 bool Result = GEP->accumulateConstantOffset(DL, APOffset); 82 return containsValue(DL, GlobalLayout, GEP->getPointerOperand(), 356 Constant *GEP = ConstantExpr::getInBoundsGetElementPtr( 359 // Create an alias instead of RAUW'ing the gep directly. On x86 this ensures 363 BAI->ByteArray->replaceAllUsesWith(GEP); 366 Int8Ty, 0, GlobalValue::PrivateLinkage, "bits", GEP, M); [all...] |
/external/llvm/lib/Transforms/InstCombine/ |
InstCombineLoadStoreAlloca.cpp | 80 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(I)) { 81 // If the GEP has all zero indices, it doesn't offset the pointer. If it 84 std::make_pair(I, IsOffset || !GEP->hasAllZeroIndices())); 202 Instruction *GEP = 204 IC.InsertNewInstBefore(GEP, *It); 208 return IC.replaceInstUsesWith(AI, GEP); 694 // Then we know that we can replace %x in the GEP with i64 0. 696 // FIXME: We could fold any GEP index to zero that would cause UB if it were 705 // Find the first non-zero index of a GEP. If all indices are zero, return 754 // FIXME: If the GEP is not inbounds, and there are extra indices after th [all...] |
InstCombinePHI.cpp | 126 // This is true if all GEP bases are allocas and if all indices into them are 139 GetElementPtrInst *GEP= dyn_cast<GetElementPtrInst>(PN.getIncomingValue(i)); 140 if (!GEP || !GEP->hasOneUse() || GEP->getType() != FirstInst->getType() || 141 GEP->getNumOperands() != FirstInst->getNumOperands()) 144 AllInBounds &= GEP->isInBounds(); 148 (!isa<AllocaInst>(GEP->getOperand(0)) || 149 !GEP->hasAllConstantIndices())) 154 if (FirstInst->getOperand(op) == GEP->getOperand(op) [all...] |
/external/llvm/unittests/IR/ |
ConstantsTest.cpp | 313 Constant *GEP = ConstantExpr::getGetElementPtr( 315 EXPECT_DEATH(Global->replaceAllUsesWith(GEP), 381 auto *GEP = ConstantExpr::getGetElementPtr(IntTy, Placeholder, C1); 382 ASSERT_EQ(GEP->getOperand(0), Placeholder); 385 new GlobalVariable(*M, PtrTy, false, GlobalValue::ExternalLinkage, GEP); 386 ASSERT_EQ(GEP, Ref->getInitializer()); 393 ASSERT_EQ(GEP, Ref->getInitializer()); 394 ASSERT_EQ(GEP->getOperand(0), Alias);
|