Home | History | Annotate | Download | only in ir

Lines Matching refs:Expression

18 struct Expression;
21 typedef std::unordered_map<const Variable*, std::unique_ptr<Expression>*> DefinitionMap;
26 struct Expression : public IRNode {
47 Expression(Position position, Kind kind, const Type& type)
53 * Returns true if this expression is constant. compareConstant must be implemented for all
61 * Compares this constant expression against another constant expression of the same type. It is
65 virtual bool compareConstant(const Context& context, const Expression& other) const {
70 * Returns true if evaluating the expression potentially has side effects. Expressions may never
78 * variables occurring in this expression and its subexpressions. Similar simplifications, such
79 * as folding a constant binary expression down to a single value, may also be performed.
80 * Returns a new expression which replaces this expression, or null if no replacements were
81 * made. If a new expression is returned, this expression is no longer valid.
83 virtual std::unique_ptr<Expression> constantPropagate(const IRGenerator& irGenerator,