Lines Matching refs:Expression

169 Expression::~Expression() = default;
304 CongruenceClass(unsigned ID, Value *Leader, const Expression *E) in CongruenceClass()
335 const Expression *getDefiningExpr() const { return DefiningExpr; } in getDefiningExpr()
414 const Expression *DefiningExpr = nullptr;
434 const Expression &E;
436 explicit ExactEqualsExpression(const Expression &E) : E(E) {} in ExactEqualsExpression()
440 bool operator==(const Expression &Other) const { in operator ==()
445 template <> struct DenseMapInfo<const Expression *> {
446 static const Expression *getEmptyKey() { in getEmptyKey()
448 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getEmptyKey()
449 return reinterpret_cast<const Expression *>(Val); in getEmptyKey()
452 static const Expression *getTombstoneKey() { in getTombstoneKey()
454 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getTombstoneKey()
455 return reinterpret_cast<const Expression *>(Val); in getTombstoneKey()
458 static unsigned getHashValue(const Expression *E) { in getHashValue()
466 static bool isEqual(const ExactEqualsExpression &LHS, const Expression *RHS) { in isEqual()
472 static bool isEqual(const Expression *LHS, const Expression *RHS) { in isEqual()
528 DenseMap<Value *, const Expression *> ValueToExpression;
554 DenseMap<const Expression *, SmallPtrSet<Instruction *, 2>>
611 using ExpressionClassMap = DenseMap<const Expression *, CongruenceClass *>;
673 const Expression *Expr;
677 ExprResult(const Expression *Expr, Value *ExtraDep = nullptr, in ExprResult()
695 static ExprResult some(const Expression *Expr, Value *ExtraDep = nullptr) { in some()
698 static ExprResult some(const Expression *Expr, in some()
702 static ExprResult some(const Expression *Expr, Value *ExtraDep, in some()
710 const Expression *createBinaryExpression(unsigned, Type *, Value *, Value *,
723 const Expression *createVariableOrConstant(Value *V) const;
736 CongruenceClass *createCongruenceClass(Value *Leader, const Expression *E) { in createCongruenceClass()
763 const Expression *makePossiblePHIOfOps(Instruction *,
782 ExprResult checkExprResults(Expression *, Instruction *, Value *) const;
785 const Expression *performSymbolicLoadCoercion(Type *, Value *, LoadInst *,
788 const Expression *performSymbolicLoadEvaluation(Instruction *) const;
789 const Expression *performSymbolicStoreEvaluation(Instruction *) const;
792 const Expression *performSymbolicPHIEvaluation(ArrayRef<ValPair>,
795 const Expression *performSymbolicAggrValueEvaluation(Instruction *) const;
802 CongruenceClass *getClassForExpression(const Expression *E) const;
803 void performCongruenceFinding(Instruction *, const Expression *);
804 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()
1101 NewGVN::ExprResult NewGVN::checkExprResults(Expression *E, Instruction *I, in checkExprResults()
1253 const Expression *NewGVN::createVariableOrConstant(Value *V) const { in createVariableOrConstant()
1383 const Expression *NewGVN::performSymbolicStoreEvaluation(Instruction *I) const { in performSymbolicStoreEvaluation()
1434 const Expression *
1511 const Expression *NewGVN::performSymbolicLoadEvaluation(Instruction *I) const { in performSymbolicLoadEvaluation()
1705 const Expression *
1787 const Expression *
1930 const Expression *E = nullptr; in performSymbolicEvaluation()
2205 void NewGVN::moveValueToNewCongruenceClass(Instruction *I, const Expression *E, in moveValueToNewCongruenceClass()
2293 void NewGVN::markPhiOfOpsChanged(const Expression *E) { in markPhiOfOpsChanged()
2298 void NewGVN::performCongruenceFinding(Instruction *I, const Expression *E) { in performCongruenceFinding()
2637 const Expression *E = Res.Expr; in findLeaderForInst()
2660 const Expression *
3062 const Expression *Symbolized = nullptr; in valueNumberInstruction()
3746 CongruenceClass *NewGVN::getClassForExpression(const Expression *E) const { in getClassForExpression()
3756 Value *NewGVN::findPHIOfOpsLeader(const Expression *E, in findPHIOfOpsLeader()