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()
410 const Expression *DefiningExpr = nullptr;
430 const Expression &E;
432 explicit ExactEqualsExpression(const Expression &E) : E(E) {} in ExactEqualsExpression()
436 bool operator==(const Expression &Other) const { in operator ==()
441 template <> struct DenseMapInfo<const Expression *> {
442 static const Expression *getEmptyKey() { in getEmptyKey()
444 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getEmptyKey()
445 return reinterpret_cast<const Expression *>(Val); in getEmptyKey()
448 static const Expression *getTombstoneKey() { in getTombstoneKey()
450 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getTombstoneKey()
451 return reinterpret_cast<const Expression *>(Val); in getTombstoneKey()
454 static unsigned getHashValue(const Expression *E) { in getHashValue()
462 static bool isEqual(const ExactEqualsExpression &LHS, const Expression *RHS) { in isEqual()
468 static bool isEqual(const Expression *LHS, const Expression *RHS) { in isEqual()
524 DenseMap<Value *, const Expression *> ValueToExpression;
554 DenseMap<const Expression *, SmallPtrSet<Instruction *, 2>>
611 using ExpressionClassMap = DenseMap<const Expression *, CongruenceClass *>;
674 const Expression *Expr;
678 ExprResult(const Expression *Expr, Value *ExtraDep = nullptr, in ExprResult()
696 static ExprResult some(const Expression *Expr, Value *ExtraDep = nullptr) { in some()
699 static ExprResult some(const Expression *Expr, in some()
703 static ExprResult some(const Expression *Expr, Value *ExtraDep, in some()
711 const Expression *createBinaryExpression(unsigned, Type *, Value *, Value *,
724 const Expression *createVariableOrConstant(Value *V) const;
737 CongruenceClass *createCongruenceClass(Value *Leader, const Expression *E) { in createCongruenceClass()
764 const Expression *makePossiblePHIOfOps(Instruction *,
780 ExprResult checkExprResults(Expression *, Instruction *, Value *) const;
783 const Expression *performSymbolicLoadCoercion(Type *, Value *, LoadInst *,
786 const Expression *performSymbolicLoadEvaluation(Instruction *) const;
787 const Expression *performSymbolicStoreEvaluation(Instruction *) const;
790 const Expression *performSymbolicPHIEvaluation(ArrayRef<ValPair>,
793 const Expression *performSymbolicAggrValueEvaluation(Instruction *) const;
800 CongruenceClass *getClassForExpression(const Expression *E) const;
801 void performCongruenceFinding(Instruction *, const Expression *);
802 void moveValueToNewCongruenceClass(Instruction *, const Expression *,
837 Value *findPHIOfOpsLeader(const Expression *, const Instruction *,
849 void markPhiOfOpsChanged(const Expression *E);
867 void deleteExpression(const Expression *E) const;
905 static bool equalsLoadStoreHelper(const T &LHS, const Expression &RHS) { in equalsLoadStoreHelper()
911 bool LoadExpression::equals(const Expression &Other) const { in equals()
915 bool StoreExpression::equals(const Expression &Other) const { in equals()
968 void NewGVN::deleteExpression(const Expression *E) const { in deleteExpression()
1071 const Expression *NewGVN::createBinaryExpression(unsigned Opcode, Type *T, in createBinaryExpression()
1104 NewGVN::ExprResult NewGVN::checkExprResults(Expression *E, Instruction *I, in checkExprResults()
1260 const Expression *NewGVN::createVariableOrConstant(Value *V) const { in createVariableOrConstant()
1397 const Expression *NewGVN::performSymbolicStoreEvaluation(Instruction *I) const { in performSymbolicStoreEvaluation()
1448 const Expression *
1522 const Expression *NewGVN::performSymbolicLoadEvaluation(Instruction *I) const { in performSymbolicLoadEvaluation()
1733 const Expression *
1830 const Expression *
1973 const Expression *E = nullptr; in performSymbolicEvaluation()
2242 void NewGVN::moveValueToNewCongruenceClass(Instruction *I, const Expression *E, in moveValueToNewCongruenceClass()
2330 void NewGVN::markPhiOfOpsChanged(const Expression *E) { in markPhiOfOpsChanged()
2335 void NewGVN::performCongruenceFinding(Instruction *I, const Expression *E) { in performCongruenceFinding()
2670 const Expression *E = Res.Expr; in findLeaderForInst()
2693 const Expression *
3098 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()