Lines Matching refs:Expression

168 Expression::~Expression() = default;
303 CongruenceClass(unsigned ID, Value *Leader, const Expression *E) in CongruenceClass()
334 const Expression *getDefiningExpr() const { return DefiningExpr; } in getDefiningExpr()
413 const Expression *DefiningExpr = nullptr;
433 const Expression &E;
435 explicit ExactEqualsExpression(const Expression &E) : E(E) {} in ExactEqualsExpression()
439 bool operator==(const Expression &Other) const { in operator ==()
444 template <> struct DenseMapInfo<const Expression *> {
445 static const Expression *getEmptyKey() { in getEmptyKey()
447 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getEmptyKey()
448 return reinterpret_cast<const Expression *>(Val); in getEmptyKey()
451 static const Expression *getTombstoneKey() { in getTombstoneKey()
453 Val <<= PointerLikeTypeTraits<const Expression *>::NumLowBitsAvailable; in getTombstoneKey()
454 return reinterpret_cast<const Expression *>(Val); in getTombstoneKey()
457 static unsigned getHashValue(const Expression *E) { in getHashValue()
465 static bool isEqual(const ExactEqualsExpression &LHS, const Expression *RHS) { in isEqual()
471 static bool isEqual(const Expression *LHS, const Expression *RHS) { in isEqual()
527 DenseMap<Value *, const Expression *> ValueToExpression;
553 DenseMap<const Expression *, SmallPtrSet<Instruction *, 2>>
610 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 *,
839 Value *findPHIOfOpsLeader(const Expression *, const Instruction *,
851 void markPhiOfOpsChanged(const Expression *E);
869 void deleteExpression(const Expression *E) const;
907 static bool equalsLoadStoreHelper(const T &LHS, const Expression &RHS) { in equalsLoadStoreHelper()
913 bool LoadExpression::equals(const Expression &Other) const { in equals()
917 bool StoreExpression::equals(const Expression &Other) const { in equals()
970 void NewGVN::deleteExpression(const Expression *E) const { in deleteExpression()
1073 const Expression *NewGVN::createBinaryExpression(unsigned Opcode, Type *T, in createBinaryExpression()
1106 NewGVN::ExprResult NewGVN::checkExprResults(Expression *E, Instruction *I, in checkExprResults()
1263 const Expression *NewGVN::createVariableOrConstant(Value *V) const { in createVariableOrConstant()
1393 const Expression *NewGVN::performSymbolicStoreEvaluation(Instruction *I) const { in performSymbolicStoreEvaluation()
1444 const Expression *
1519 const Expression *NewGVN::performSymbolicLoadEvaluation(Instruction *I) const { in performSymbolicLoadEvaluation()
1713 const Expression *
1810 const Expression *
1953 const Expression *E = nullptr; in performSymbolicEvaluation()
2228 void NewGVN::moveValueToNewCongruenceClass(Instruction *I, const Expression *E, in moveValueToNewCongruenceClass()
2316 void NewGVN::markPhiOfOpsChanged(const Expression *E) { in markPhiOfOpsChanged()
2321 void NewGVN::performCongruenceFinding(Instruction *I, const Expression *E) { in performCongruenceFinding()
2669 const Expression *E = Res.Expr; in findLeaderForInst()
2692 const Expression *
3095 const Expression *Symbolized = nullptr; in valueNumberInstruction()
3778 CongruenceClass *NewGVN::getClassForExpression(const Expression *E) const { in getClassForExpression()
3788 Value *NewGVN::findPHIOfOpsLeader(const Expression *E, in findPHIOfOpsLeader()