Home | History | Annotate | Download | only in Analysis

Lines Matching refs:GEP1

755 static AliasResult aliasSameBasePointerGEPs(const GEPOperator *GEP1,
761 assert(GEP1->getPointerOperand() == GEP2->getPointerOperand() &&
764 // Try to determine whether GEP1 and GEP2 index through arrays, into structs,
767 if (GEP1->getNumIndices() != GEP2->getNumIndices() ||
768 GEP1->getNumIndices() < 2)
778 dyn_cast<ConstantInt>(GEP1->getOperand(GEP1->getNumOperands() - 1));
795 assert(GEP1->getNumIndices() > 1 && "Not enough GEP indices to examine");
796 IntermediateIndices.push_back(GEP1->getOperand(1));
800 for (unsigned i = 1, e = GEP1->getNumIndices() - 1; i != e; ++i) {
802 GEP1->getSourceElementType(), IntermediateIndices)))
804 IntermediateIndices.push_back(GEP1->getOperand(i + 1));
808 GEP1->getSourceElementType(), IntermediateIndices);
820 // GEP1 and GEP2 we cannot guarantee that the last indexed arrays don't
828 for (unsigned i = 0, e = GEP1->getNumIndices() - 1; i != e; ++i)
829 if (GEP1->getOperand(i + 1) != GEP2->getOperand(i + 1))
832 // Now we know that the array/pointer that GEP1 indexes into and that
836 // GEP1 and GEP2, we can conclude GEP1 and GEP2 don't alias.
842 if (isKnownNonEqual(GEP1->getOperand(GEP1->getNumOperands() - 1),
857 // This lets us determine that the struct that GEP1 indexes into and the
887 /// UnderlyingV1 is GetUnderlyingObject(GEP1, DL), UnderlyingV2 is the same for
889 AliasResult BasicAAResult::aliasGEP(const GEPOperator *GEP1, uint64_t V1Size,
923 DecomposeGEPExpression(GEP1, GEP1BaseOffset, GEP1VariableIndices,
953 DecomposeGEPExpression(GEP1, GEP1BaseOffset, GEP1VariableIndices,
973 if (GEP1->getPointerOperand() == GEP2->getPointerOperand()) {
974 AliasResult R = aliasSameBasePointerGEPs(GEP1, V1Size, GEP2, V2Size, DL);
984 // Subtract the GEP2 pointer from the GEP1 pointer to find out their
1010 DecomposeGEPExpression(GEP1, GEP1BaseOffset, GEP1VariableIndices,
1050 // GEP1 V2
1109 // If we know all the variables are positive, then GEP1 >= GEP1BasePtr.
1469 /// instructions GEP1 and GEP2 which have common base pointers.
1551 // We can't definitely say whether GEP1 is before or after V2 due to wrapping
1552 // arithmetic (i.e. for some values of GEP1 and V2 GEP1 < V2, and for other
1553 // values GEP1 > V2). We'll therefore only declare NoAlias if both V1Size and