BinaryExpr Class ReferenceAn expression with two arguments.
More...
#include <BinaryExpr.h>
Inheritance diagram for BinaryExpr:
[legend]List of all members.
Detailed Description
An expression with two arguments.
Polaris Expression - See also:
- Expression/BinaryExpr.h
Expression/BinaryExpr.h
Expression/Expression.cc
A BinaryExpr is an expression with two arguments. These arguments are named left and right. A BinaryExpr can be one of several kinds of expressions. The most common of these are are SUB_OP (-), DIV_OP (/), EXP_OP (**), or one of the relational operators.
Definition at line 34 of file BinaryExpr.h.
Constructor & Destructor Documentation
| BinaryExpr::BinaryExpr |
( |
const BinaryExpr & |
e |
) |
[inline] |
|
| BinaryExpr::BinaryExpr |
( |
OP_TYPE |
o, |
|
|
const Type & |
etype |
|
) |
[inline, protected] |
|
Member Function Documentation
|
|
Definition at line 3550 of file Expression.cc.
References _left(), _right(), DistributeExpr::clone(), and e.
Referenced by RangeExpr::operator=(), SubStringExpr::operator=(), GSAExpr::operator=(), LambdaCallExpr::operator=(), IntrinsicCallExpr::operator=(), FunctionCallExpr::operator=(), EqualExpr::operator=(), DoExpr::operator=(), ComplexExpr::operator=(), and ArrayRefExpr::operator=(). |
| const Expression & BinaryExpr::left_guarded |
( |
|
) |
const [virtual] |
|
| Expression & BinaryExpr::left_guarded |
( |
|
) |
[virtual] |
|
| Boolean BinaryExpr::left_valid |
( |
|
) |
const [virtual] |
|
|
|
Relinquish my ownership of my left argument and return it.
My left argument will now be marked as invalid.
Reimplemented from Expression.
Definition at line 3606 of file Expression.cc.
References _grab_left(). |
| const Expression & BinaryExpr::right_guarded |
( |
|
) |
const [virtual] |
|
| Expression & BinaryExpr::right_guarded |
( |
|
) |
[virtual] |
|
| Boolean BinaryExpr::right_valid |
( |
|
) |
const [virtual] |
|
|
|
Relinquish my ownership of my right argument and return it.
My right argument will now be marked as invalid.
Reimplemented from Expression.
Definition at line 3636 of file Expression.cc.
References _grab_right(). |
| Expression * BinaryExpr::clone |
( |
|
) |
const [virtual] |
|
|
|
Return a copy of myself.
Implements Expression.
Reimplemented in ArrayRefExpr, ComplexExpr, DoExpr, EqualExpr, FunctionCallExpr, GSAExpr, IntrinsicCallExpr, LambdaCallExpr, SSAExpr, SubStringExpr, and RangeExpr.
Definition at line 3544 of file Expression.cc.
References BinaryExpr(). |
| Boolean BinaryExpr::args_are_non_null |
( |
|
) |
const [virtual] |
|
|
|
Return a reference to list of all expression arguments of myself.
... List of no arguments
Reimplemented from Expression.
Definition at line 3654 of file Expression.cc. |
| int BinaryExpr::structures_OK |
( |
|
) |
const [virtual] |
|
|
|
Return 1 if my structures are in a valid state.
Implements Expression.
Reimplemented in ArrayRefExpr, ComplexExpr, DoExpr, EqualExpr, FunctionCallExpr, GSAExpr, IntrinsicCallExpr, LambdaCallExpr, SSAExpr, SubStringExpr, and RangeExpr.
Definition at line 3660 of file Expression.cc.
References True. |
| virtual void BinaryExpr::convert |
( |
BinRep & |
exprSet, |
|
|
Symtab & |
symtab |
|
) |
[virtual] |
|
|
|
Read in the values of my fields and my subexpressions from the given BinRep object.
Convert(BinRep) expects the BinRep to be referencing an expression set of the same type as the expression. On return, all data from the expression set has been inserted into the appropriate fields in the expression object. NOTE that this converts the expression to an intermediate form which may contain TableExpr objects.
Implements Expression.
Reimplemented in ArrayRefExpr, ComplexExpr, DoExpr, EqualExpr, FunctionCallExpr, GSAExpr, IntrinsicCallExpr, LambdaCallExpr, SSAExpr, SubStringExpr, and RangeExpr.
Referenced by exchange_expr(). |
| virtual void BinaryExpr::print_debug |
( |
ostream & |
o, |
|
|
Boolean |
debug |
|
) |
const [virtual] |
|
|
|
See Expression.h.
Implements Expression.
Reimplemented in ArrayRefExpr, ComplexExpr, DoExpr, EqualExpr, FunctionCallExpr, GSAExpr, IntrinsicCallExpr, LambdaCallExpr, SSAExpr, SubStringExpr, and RangeExpr. |
| int BinaryExpr::exchange_expr |
( |
VDL & |
vdl |
) |
[virtual] |
|
|
|
Create a node in the "expression" member and return the index.
Reimplemented from Expression.
Reimplemented in ArrayRefExpr, ComplexExpr, DoExpr, EqualExpr, FunctionCallExpr, GSAExpr, IntrinsicCallExpr, LambdaCallExpr, SSAExpr, and SubStringExpr.
Definition at line 3667 of file Expression.cc.
References CONCAT_OP, convert(), DIV_OP, EQ_OP, Expression::exchange_expr(), EXP_OP, BinRep::find_ref(), GE_OP, GT_OP, INTDIV_OP, LE_OP, LT_OP, NE_OP, Expression::op(), RATDIV_OP, SUB_OP, and BinRep::to_tuple(). |
| const Expression & BinaryExpr::_left_guarded |
( |
|
) |
const [inline, protected] |
|
|
|
Definition at line 148 of file BinaryExpr.h.
References List< T >::valid().
Referenced by _args_are_equal(), _fold_top(), arg_refs(), ArrayRefExpr::array(), FunctionCallExpr::function(), GSAExpr::gate(), RangeExpr::has_lb(), EqualExpr::index_id(), IntrinsicCallExpr::intrinsic(), DoExpr::iolist(), LambdaCallExpr::lambda_expr(), RangeExpr::lb(), left_guarded(), ComplexExpr::real_part(), and SubStringExpr::string(). |
| Expression & BinaryExpr::_left_guarded |
( |
|
) |
[inline, protected] |
|
| void BinaryExpr::_left |
( |
Expression * |
|
) |
[inline, protected] |
|
|
|
Definition at line 142 of file BinaryExpr.h.
References e, List< T >::modify(), and null_to_omega().
Referenced by ArrayRefExpr::array(), FunctionCallExpr::function(), GSAExpr::gate(), EqualExpr::index_id(), IntrinsicCallExpr::intrinsic(), DoExpr::iolist(), LambdaCallExpr::lambda_expr(), RangeExpr::lb(), left(), operator=(), ComplexExpr::real_part(), and SubStringExpr::string(). |
| Boolean BinaryExpr::_left_valid |
( |
|
) |
const [inline, protected] |
|
| Expression * BinaryExpr::_grab_left |
( |
|
) |
[inline, protected] |
|
| const Expression & BinaryExpr::_right_guarded |
( |
|
) |
const [inline, protected] |
|
|
|
Definition at line 184 of file BinaryExpr.h.
References List< T >::valid().
Referenced by _args_are_equal(), _fold_top(), arg_refs(), SubStringExpr::bound(), RangeExpr::has_ub(), ComplexExpr::imaginary_part(), EqualExpr::iteration_space(), DoExpr::iterator(), GSAExpr::parameters_guarded(), LambdaCallExpr::parameters_guarded(), IntrinsicCallExpr::parameters_guarded(), FunctionCallExpr::parameters_guarded(), right_guarded(), ArrayRefExpr::subscript(), and RangeExpr::ub(). |
| Expression & BinaryExpr::_right_guarded |
( |
|
) |
[inline, protected] |
|
| void BinaryExpr::_right |
( |
Expression * |
|
) |
[inline, protected] |
|
|
|
Definition at line 178 of file BinaryExpr.h.
References e, List< T >::modify(), and null_to_omega().
Referenced by SubStringExpr::bound(), ComplexExpr::imaginary_part(), EqualExpr::iteration_space(), DoExpr::iterator(), operator=(), GSAExpr::parameters(), LambdaCallExpr::parameters(), IntrinsicCallExpr::parameters(), FunctionCallExpr::parameters(), right(), ArrayRefExpr::subscript(), and RangeExpr::ub(). |
| Boolean BinaryExpr::_right_valid |
( |
|
) |
const [inline, protected] |
|
| Expression * BinaryExpr::_grab_right |
( |
|
) |
[inline, protected] |
|
| Expression * BinaryExpr::_fold_top |
( |
void |
|
) |
[protected, virtual] |
|
|
|
... Do nothing
Reimplemented from Expression.
Reimplemented in IntrinsicCallExpr.
Definition at line 9683 of file Expression.cc.
References _expr_can_contain_omega(), _grab_left(), _grab_right(), _left_guarded(), _left_valid(), _right_guarded(), _right_valid(), _simplify_options, DIV_OP, EQ_OP, EXP_OP, GE_OP, GT_OP, INTDIV_OP, LE_OP, LT_OP, NE_OP, OMEGA_OP, Expression::op(), RATDIV_OP, and SUB_OP. |
|
|
... Clear any matches which might have been found by ... wildcards in the left arguments
Reimplemented from Expression.
Definition at line 8533 of file Expression.cc.
References Expression::_backup(), _left_guarded(), _left_valid(), _right_guarded(), _right_valid(), e, False, Expression::left_guarded(), Expression::left_valid(), Expression::right_guarded(), Expression::right_valid(), and wildcard_compare_args(). |
Friends And Related Function Documentation
The documentation for this class was generated from the following files:
|