Lines Matching defs:ExprResult

684   struct ExprResult {
689 ExprResult(const Expression *Expr, Value *ExtraDep = nullptr,
692 ExprResult(const ExprResult &) = delete;
693 ExprResult(ExprResult &&Other)
699 ExprResult &operator=(const ExprResult &Other) = delete;
700 ExprResult &operator=(ExprResult &&Other) = delete;
702 ~ExprResult() { assert(!ExtraDep && "unhandled ExtraDep"); }
706 static ExprResult none() { return {nullptr, nullptr, nullptr}; }
707 static ExprResult some(const Expression *Expr, Value *ExtraDep = nullptr) {
710 static ExprResult some(const Expression *Expr,
714 static ExprResult some(const Expression *Expr, Value *ExtraDep,
721 ExprResult createExpression(Instruction *) const;
803 ExprResult checkExprResults(Expression *, Instruction *, Value *) const;
804 ExprResult performSymbolicEvaluation(Instruction *,
811 ExprResult performSymbolicCallEvaluation(Instruction *) const;
817 ExprResult performSymbolicCmpEvaluation(Instruction *) const;
818 ExprResult performSymbolicPredicateInfoEvaluation(IntrinsicInst *) const;
875 void addAdditionalUsers(ExprResult &Res, Instruction *User) const;
1139 NewGVN::ExprResult NewGVN::checkExprResults(Expression *E, Instruction *I,
1142 return ExprResult::none();
1152 return ExprResult::some(createConstantExpression(C));
1158 return ExprResult::some(createVariableExpression(V));
1164 return ExprResult::some(createVariableOrConstant(CC->getLeader()), V);
1172 return ExprResult::some(CC->getDefiningExpr(), V);
1176 return ExprResult::none();
1182 NewGVN::ExprResult NewGVN::createExpression(Instruction *I) const {
1260 return ExprResult::some(E);
1599 NewGVN::ExprResult
1603 return ExprResult::none();
1609 return ExprResult::none();
1627 return ExprResult::some(createVariableOrConstant(FirstOp),
1633 return ExprResult::some(createConstantExpression(cast<Constant>(FirstOp)),
1636 return ExprResult::none();
1640 NewGVN::ExprResult NewGVN::performSymbolicCallEvaluation(Instruction *I) const {
1648 return ExprResult::some(createVariableOrConstant(ReturnedValue));
1660 return ExprResult::none();
1666 return ExprResult::none();
1669 return ExprResult::some(
1674 return ExprResult::some(createCallExpression(CI, DefiningAccess));
1676 return ExprResult::some(
1679 return ExprResult::none();
1880 NewGVN::ExprResult NewGVN::performSymbolicCmpEvaluation(Instruction *I) const {
1900 return ExprResult::some(
1906 return ExprResult::some(
1909 return ExprResult::some(
1970 return ExprResult::some(createConstantExpression(C), PI);
1977 return ExprResult::some(
1983 return ExprResult::some(
1996 NewGVN::ExprResult
2074 return ExprResult::none();
2076 return ExprResult::none();
2078 return ExprResult::some(E);
2099 void NewGVN::addAdditionalUsers(ExprResult &Res, Instruction *User) const {