Lines Matching refs:Expression

165 Expression::~Expression() = default;
300 CongruenceClass(unsigned ID, Value *Leader, const Expression *E) in CongruenceClass()
331 const Expression *getDefiningExpr() const { return DefiningExpr; } in getDefiningExpr()
411 const Expression *DefiningExpr = nullptr;
431 const Expression &E;
433 explicit ExactEqualsExpression(const Expression &E) : E(E) {} in ExactEqualsExpression()
437 bool operator==(const Expression &Other) const { in operator ==()
442 template <> struct DenseMapInfo<const Expression *> {
443 static const Expression *getEmptyKey() { in getEmptyKey()
445 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getEmptyKey()
446 return reinterpret_cast<const Expression *>(Val); in getEmptyKey()
449 static const Expression *getTombstoneKey() { in getTombstoneKey()
451 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getTombstoneKey()
452 return reinterpret_cast<const Expression *>(Val); in getTombstoneKey()
455 static unsigned getHashValue(const Expression *E) { in getHashValue()
463 static bool isEqual(const ExactEqualsExpression &LHS, const Expression *RHS) { in isEqual()
469 static bool isEqual(const Expression *LHS, const Expression *RHS) { in isEqual()
524 DenseMap<Value *, const Expression *> ValueToExpression;
550 DenseMap<const Expression *, SmallPtrSet<Instruction *, 2>>
607 using ExpressionClassMap = DenseMap<const Expression *, CongruenceClass *>;
667 const Expression *createExpression(Instruction *) const;
668 const Expression *createBinaryExpression(unsigned, Type *, Value *, Value *,
681 const Expression *createVariableOrConstant(Value *V) const;
694 CongruenceClass *createCongruenceClass(Value *Leader, const Expression *E) { in createCongruenceClass()
721 const Expression *makePossiblePHIOfOps(Instruction *,
740 const Expression *checkSimplificationResults(Expression *, Instruction *,
742 const Expression *performSymbolicEvaluation(Value *,
744 const Expression *performSymbolicLoadCoercion(Type *, Value *, LoadInst *,
747 const Expression *performSymbolicLoadEvaluation(Instruction *) const;
748 const Expression *performSymbolicStoreEvaluation(Instruction *) const;
749 const Expression *performSymbolicCallEvaluation(Instruction *) const;
751 const Expression *performSymbolicPHIEvaluation(ArrayRef<ValPair>,
754 const Expression *performSymbolicAggrValueEvaluation(Instruction *) const;
755 const Expression *performSymbolicCmpEvaluation(Instruction *) const;
756 const Expression *performSymbolicPredicateInfoEvaluation(Instruction *) const;
761 CongruenceClass *getClassForExpression(const Expression *E) const;
762 void performCongruenceFinding(Instruction *, const Expression *);
763 void moveValueToNewCongruenceClass(Instruction *, const Expression *,
796 Value *findPHIOfOpsLeader(const Expression *, const Instruction *,
813 void markPhiOfOpsChanged(const Expression *E);
831 void deleteExpression(const Expression *E) const;
870 static bool equalsLoadStoreHelper(const T &LHS, const Expression &RHS) { in equalsLoadStoreHelper()
876 bool LoadExpression::equals(const Expression &Other) const { in equals()
880 bool StoreExpression::equals(const Expression &Other) const { in equals()
933 void NewGVN::deleteExpression(const Expression *E) const { in deleteExpression()
1036 const Expression *NewGVN::createBinaryExpression(unsigned Opcode, Type *T, in createBinaryExpression()
1056 if (const Expression *SimplifiedE = checkSimplificationResults(E, I, V)) in createBinaryExpression()
1064 const Expression *NewGVN::checkSimplificationResults(Expression *E, in checkSimplificationResults()
1122 const Expression *NewGVN::createExpression(Instruction *I) const { in createExpression()
1153 if (const Expression *SimplifiedE = checkSimplificationResults(E, I, V)) in createExpression()
1162 if (const Expression *SimplifiedE = checkSimplificationResults(E, I, V)) in createExpression()
1168 if (const Expression *SimplifiedE = checkSimplificationResults(E, I, V)) in createExpression()
1173 if (const Expression *SimplifiedE = checkSimplificationResults(E, I, V)) in createExpression()
1178 if (const Expression *SimplifiedE = checkSimplificationResults(E, I, V)) in createExpression()
1193 if (const Expression *SimplifiedE = checkSimplificationResults(E, I, V)) in createExpression()
1231 const Expression *NewGVN::createVariableOrConstant(Value *V) const { in createVariableOrConstant()
1362 const Expression *NewGVN::performSymbolicStoreEvaluation(Instruction *I) const { in performSymbolicStoreEvaluation()
1413 const Expression *
1489 const Expression *NewGVN::performSymbolicLoadEvaluation(Instruction *I) const { in performSymbolicLoadEvaluation()
1531 const Expression *
1627 const Expression *NewGVN::performSymbolicCallEvaluation(Instruction *I) const { in performSymbolicCallEvaluation()
1733 const Expression *
1815 const Expression *
1856 const Expression *NewGVN::performSymbolicCmpEvaluation(Instruction *I) const { in performSymbolicCmpEvaluation()
1977 const Expression *
1980 const Expression *E = nullptr; in performSymbolicEvaluation()
2259 void NewGVN::moveValueToNewCongruenceClass(Instruction *I, const Expression *E, in moveValueToNewCongruenceClass()
2347 void NewGVN::markPhiOfOpsChanged(const Expression *E) { in markPhiOfOpsChanged()
2352 void NewGVN::performCongruenceFinding(Instruction *I, const Expression *E) { in performCongruenceFinding()
2498 const Expression *E = createExpression(I); in processOutgoingEdges()
2690 const Expression *E = performSymbolicEvaluation(TransInst, Visited); in findLeaderForInst()
2712 const Expression *
3107 const Expression *Symbolized = nullptr; in valueNumberInstruction()
3788 CongruenceClass *NewGVN::getClassForExpression(const Expression *E) const { in getClassForExpression()
3798 Value *NewGVN::findPHIOfOpsLeader(const Expression *E, in findPHIOfOpsLeader()