Statement Class Reference#include <Statement.h>
Inheritance diagram for Statement:
[legend]List of all members.
|
Public Member Functions |
| virtual Mutator< Expression > | iterate_expressions () |
| | Return an iterator over stmt exprs.
|
| virtual int | iterate_in_exprs_valid () const |
| | Check if there are valid in_ref exprs.
|
| virtual Mutator< Expression > | iterate_in_exprs_guarded () |
| | Return an iterator over in_ref exprs.
|
| virtual int | iterate_out_exprs_valid () const |
| | Check if there are valid out_ref exprs.
|
| virtual Mutator< Expression > | iterate_out_exprs_guarded () |
| | Return an iterator over out_ref exprs.
|
| virtual int | iterate_in_out_exprs_valid () const |
| | Check if there are valid in_out_ref exprs.
|
| virtual Mutator< Expression > | iterate_in_out_exprs_guarded () |
| | Return an iterator over in_out_ref exprs.
|
| void | simplify_expressions () |
| | Statement constructor takes two argument: The statement type and the statement tag.
|
| | Statement (const char *l, STMT_TYPE st) |
| | Statement constructor takes two arguments: The statement type and the statement tag.
|
| virtual | ~Statement () |
| virtual Listable * | listable_clone () const |
| | Copy and return a pointer to any Listable item (MUST be implemented correctly by subclasses for List copy functions to work).
|
| virtual Statement * | clone () const =0 |
| virtual int | structures_OK () const =0 |
| int | in_out_refs_structures_OK () const |
| | Check in/out/act _refs sets by saving them and recomputing them, then checking the saved one against the new one.
|
| virtual void | convert (BinRep &stmt, ExprTable &etable, Symtab &symtab, const NamelistDict &namelists, const FormatDB &formats, Dictionary< NextEntry > *next_table) |
| virtual RefSet< Statement > * | build_succ (const StmtList &stmts) const |
| virtual void | build_refs () |
| | methods which will retrieve data from common fields
|
| STMT_TYPE | stmt_class () const |
| const RefSet< Statement > & | succ () const |
| const RefSet< Statement > & | pred () const |
| const RefSet< Expression > & | in_refs () const |
| const RefSet< Expression > & | out_refs () const |
| const RefSet< Expression > & | act_refs () const |
| Statement * | next_ref () const |
| | return the next element of the list.
|
| Statement * | prev_ref () const |
| | void operator delete (void * ptr, size_t size);
|
| Statement * | outer_ref () const |
| int | line () const |
| BinRep * | overflow () const |
| const char * | tag () const |
| int | tag_defined () const |
| const char * | state () const |
| List< StringElem > & | pre_directives () const |
| List< StringElem > & | post_directives () const |
| AssertionList & | assertions () const |
| | methods which insert data into common fields
|
| void | state (const char *s) |
| void | line (int l) |
| virtual void | relink_lptrs (ProgramUnit &p) |
| | Change pointers within the Statement expressions to point into the given ProgramUnit.
|
| virtual void | relink_sptrs (ProgramUnit &p) |
| | Return the stack of WorkSpaces associated with the statement.
|
| WorkSpaceStack & | work_stack () const |
| PerformanceEstimator * | perf_estimator () |
| void | set_perf_estimator (PerformanceEstimator *pe) |
| | Performance estimation data.
|
| unsigned long | profile () |
| void | set_profile (unsigned long profile) |
| virtual void | access_table (SymbolAccessMap *map) |
| | Check whether the access_table exists.
|
| Boolean | access_table_exists () |
| | Return a reference to the access_table (check access_table_exists() first!).
|
| SymbolAccessMap & | access_table () |
| | Iterate through all symbols and SymbolAccess objects.
|
| KeyIterator< Symbol, SymbolAccess > | iter_access_table_guarded () |
| | Add some other statement's access_table to mine.
|
| void | incorporate_access_table (const SymbolAccessMap &sam) |
| | Check whether any info is entered into access_table for the given Symbol.
|
| Boolean | symbol_access_exists (Symbol &sym) |
| | Once symbol_access_exists indicates that info exists, use one of the following to get an Iterator for looking through the AbstractAccess info.
|
| virtual Iterator< AbstractAccess > | iter_read_guarded (Symbol &sym) |
| | Before calling one of these routines, call symbol_access_exists to be sure an access table exists and there is data for the symbol in it.
|
| virtual Iterator< AbstractAccess > | iter_write_guarded (Symbol &sym) |
| virtual Iterator< AbstractAccess > | iter_readwrite_guarded (Symbol &sym) |
| | Insert a set of AbstractAccess objects into the SymbolAccessMap table for a statement.
|
| void | ins_access (SymbolAccessMap &map) |
| | Insert a list of AbstractAccess into the access_table.
|
| void | ins_read_access (Symbol &sym, List< AbstractAccess > &readlist) |
| | Insert a list of AbstractAccess into the access_table.
|
| void | ins_write_access (Symbol &sym, List< AbstractAccess > &writelist) |
| | Insert a list of AbstractAccess into the access_table.
|
| void | ins_readwrite_access (Symbol &sym, List< AbstractAccess > &readwritelist) |
| | Insert read AbstractAccess for a given symbol into the access_table.
|
| void | ins_read_access (Symbol &sym, AbstractAccess *) |
| | Insert write AbstractAccess for a given symbol into the access_table.
|
| void | ins_write_access (Symbol &sym, AbstractAccess *) |
| | Insert readwrite AbstractAccess for a given symbol into the access_table.
|
| void | ins_readwrite_access (Symbol &sym, AbstractAccess *) |
| | Update the flow graph information for a particular statement.
|
| void | fix_flow (StmtList &stmts) |
| | Remove flow links for this statement.
|
| void | del_flow (StmtList &stmts) |
| | called when an unspecified method is called
|
| void | error (char *) const |
| ProgramUnit * | program_unit () |
| void | program_unit (ProgramUnit *program_unit) |
| Iterator< Expression > | iterate_all_expressions () |
| | methods which retrieve statement specific data Will be redefined by sub-classes if field exists
|
| virtual const Expression & | lhs () const |
| virtual Expression & | lhs () |
| virtual const Expression & | rhs () const |
| virtual Expression & | rhs () |
| virtual Statement * | follow_ref () const |
| virtual Statement * | lead_ref () const |
| virtual Statement * | matching_if_ref () const |
| virtual Statement * | matching_endif_ref () const |
| virtual const Expression & | expr () const |
| virtual Expression & | expr () |
| virtual const Expression & | index () const |
| virtual Expression & | index () |
| virtual const Expression & | init () const |
| virtual Expression & | init () |
| virtual const Expression & | limit () const |
| virtual Expression & | limit () |
| virtual const Expression & | step () const |
| virtual Expression & | step () |
| virtual const Expression & | expr_guarded () const |
| virtual Expression & | expr_guarded () |
| virtual int | expr_valid () const |
| virtual String | get_loop_name () |
| virtual const Statement * | target_ref () const |
| virtual Statement * | target_ref () |
| virtual ASSIGN_TYPE | atype () const |
| virtual const Format * | format_ref () const |
| virtual Format * | format_ref () |
| virtual const RefList< Statement > & | label_list () const |
| virtual RefList< Statement > & | label_list () |
| virtual const List< s_control_type > & | s_control_guarded () const |
| virtual List< s_control_type > & | s_control_guarded () |
| virtual int | s_control_valid () const |
| virtual Boolean | marked_parallel () const |
| | assertion attached.
|
| virtual Boolean | marked_serial () const |
| | assertion attached.
|
| virtual RefSet< Symbol > * | private_vars_ref () const |
| | Expressions from PRIVATE assertion.
|
| virtual const Expression & | io_list_guarded () const |
| virtual Expression & | io_list_guarded () |
| virtual int | io_list_valid () const |
| virtual const Expression & | routine_guarded () const |
| virtual Expression & | routine_guarded () |
| virtual int | routine_valid () const |
| virtual const Expression & | parameters_guarded () const |
| virtual Expression & | parameters_guarded () |
| virtual int | parameters_valid () const |
| virtual int | value () const |
| | methods which insert statement specific data will be redefined by sub-classes if field exists
|
| virtual void | lhs (Expression *e) |
| virtual void | rhs (Expression *e) |
| virtual void | index (Expression *e) |
| virtual void | init (Expression *e) |
| virtual void | limit (Expression *e) |
| virtual void | step (Expression *e) |
| virtual void | expr (Expression *e) |
| virtual void | target (Statement *s) |
| virtual void | io_list (Expression *e) |
| virtual void | routine (Expression *e) |
| virtual void | parameters (Expression *e) |
| virtual void | value (int i) |
| | This one is to satisfy Listable.
|
| virtual void | print (ostream &o) const |
| | This one is to satisfy Listable.
|
| virtual void | fortran_write (ostream &o, int &indent, char *type="") const =0 |
| virtual void | print_debug (ostream &o, int debug) const =0 |
| | prints the statement if debug = 0, print only statement-specific debugging if debug = 1 (to be used in conjunction with print_fields)
|
| virtual void | write (ostream &o, int &indent, char *type="") const |
| | Write out the SymbolAccessMap.
|
| void | write_access_table (ostream &o) |
| | prints the statement in FORTRAN form with indent
|
| void | print_fields (ostream &o) const |
| | prints all additional fields (fields defined in the base class) for debugging
|
| virtual void | exchange_convert (VDL &vdl) |
| | Convert the Statement into the exchange format.
|
| CDGNode * | cdgnode () |
| void | cdgnode (CDGNode *n) |
Protected Member Functions |
| void | make_overflow (Iterator< BinRep > &iter, const char *exname) |
| | < ---- helper functions for convert ---------
|
| void | empty_overflow () |
| | Helper function: Make sure overflow is empty.
|
| int | check_common_fields (String &field, BinRep &second, ExprTable &etable, Dictionary< NextEntry > *next_table, char *caller) |
| | Convert the common fields of a statement return true if a match is found.
|
| virtual void | _setptrs (Dictionary< VoidPtrDef > &tags, const FormatDB &formats) |
| | Copies base values of this into other.
|
| void | copy_base (const Statement &other) |
| | These are fields common to all statement types.
|
| void | _add_act_refs (Expression &expr) |
| | Given an expression in the statement, add to this statement's _act_refs.
|
| void | _add_act_params (Expression &expr) |
| | Given an expression which is a parameter list, add to this statement's _act_refs.
|
| void | _add_in_refs (Expression &expr) |
| | Given an expression in the statement, add to this statement's _in_refs.
|
| void | _add_out_refs (Expression &expr) |
| | Given an expression in the statement, add to this statement's _out_refs ONLY FINDS THE INDEX VARIABLE OF AN EQUAL_OP: (A(I), I=1,N).
|
| void | _add_ioread_sets (Expression &expr) |
| | Given a top-level expression from a READ I/O list, add to the READ's in/out/act _refs.
|
| RefSet< Statement > & | modify_succ () |
| RefSet< Statement > & | modify_pred () |
| | Create a modifyable copy of _succ and _pred for internal use.
|
| void | tag (const char *s) |
| | < The tag is needed to avoid duplication.
|
Protected Attributes |
| STMT_TYPE | _type |
| | Type of statement.
|
| List< Expression > | _exprlist |
| | List of the all the expressions in a statement.
|
| List< Statement > | _successors_list |
| | List for _successors.
|
| RefSet< Statement > | _successors |
| | successors of control flow
|
| List< Statement > | _predecessors_list |
| | List for _predecessors.
|
| RefSet< Statement > | _predecessors |
| | predecessors of control flow
|
| List< Expression > | _in_refs_list |
| | List for _in_refs.
|
| RefSet< Expression > | _in_refs |
| | expressions which read memory
|
| List< Expression > | _out_refs_list |
| | List for _out_refs.
|
| RefSet< Expression > | _out_refs |
| | expressions which write memory
|
| List< Expression > | _act_refs_list |
| | List for _act_refs.
|
| RefSet< Expression > | _act_refs |
| | all memory expressions?
|
| AssertionList | _assertion_list |
| | A list of the assertions.
|
| Statement * | _outer |
| | innermost enclosing do loop
|
| List< StringElem > | _pre_directives |
| | Statement directives.
|
| List< StringElem > | _post_directives |
| | before & after the stmt
|
| String | _state |
| String | _tag |
| | xxx _loop_info;
|
| int | _line |
| | line number
|
| WorkSpaceStack | _work_stack |
| | Stack of WorkSpace objects.
|
| BinRep * | _overflow |
| | Any overflow information.
|
| SymbolAccessMap * | _access_table |
| | by symbol for statement, or whole block if this is a block-type stmt, like DO
|
| CDGNode * | _cdgnode |
| | Control Dependence Graph node.
|
| PerformanceEstimator * | _perf_estimator |
| unsigned long | _stmtProfile |
| ProgramUnit * | _program_unit |
Friends |
| class | StmtList |
| ostream & | operator<< (ostream &o, const Statement &st) |
| | This outputs the statement with all debugging info (ie-all fields!).
|
Constructor & Destructor Documentation
| Statement::Statement |
( |
const char * |
l, |
|
|
STMT_TYPE |
st |
|
) |
|
|
Member Function Documentation
| void Statement::make_overflow |
( |
Iterator< BinRep > & |
iter, |
|
|
const char * |
exname |
|
) |
[protected] |
|
| void Statement::empty_overflow |
( |
|
) |
[protected] |
|
|
|
Convert the common fields of a statement return true if a match is found.
Discard (rebuild later) convert_expr_list(second, _in_refs, _in_refs_list, etable, caller);
Discard (rebuild later) convert_expr_list(second, _out_refs, _out_refs_list, etable, caller);
Discard (rebuild later) convert_expr_list(second, _act_refs, _act_refs_list, etable, caller);
Definition at line 1605 of file Statement.cc.
References _assertion_list, _line, _outer, _pre_directives, _predecessors, _predecessors_list, _successors, _successors_list, _tag, convert_assert_list(), convert_stmt_list(), convert_string_list(), List< T >::entries(), and temp_stmt_ptr(). |
| virtual void Statement::_setptrs |
( |
Dictionary< VoidPtrDef > & |
tags, |
|
|
const FormatDB & |
formats |
|
) |
[protected, virtual] |
|
|
|
Copies base values of this into other.
Reimplemented in ArithmeticIfStmt, AssignedGotoStmt, AssignStmt, BlockEntryStmt, BlockExitStmt, ComputedGotoStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, StmtPointer, and WhileStmt.
Referenced by BlockExitStmt::_setptrs(), BlockEntryStmt::_setptrs(), WhileStmt::_setptrs(), AssignedGotoStmt::_setptrs(), ComputedGotoStmt::_setptrs(), ArithmeticIfStmt::_setptrs(), GotoStmt::_setptrs(), IOStmt::_setptrs(), AssignStmt::_setptrs(), ElseStmt::_setptrs(), ImpliedGotoStmt::_setptrs(), ElseIfStmt::_setptrs(), IfStmt::_setptrs(), EndDoStmt::_setptrs(), and DoStmt::_setptrs(). |
| void Statement::copy_base |
( |
const Statement & |
other |
) |
[protected] |
|
|
|
These are fields common to all statement types.
... _loop_info = other._loop_info;
Definition at line 1323 of file Statement.cc.
References _access_table, _act_refs, _assertion_list, _exprlist, _in_refs, _line, _out_refs, _outer, _overflow, _post_directives, _pre_directives, _predecessors, _state, _successors, _tag, _type, RefSet< T >::clear(), SymbolAccessMap::clone(), List< T >::make_static_list(), and List< T >::modify().
Referenced by AllocateStmt::AllocateStmt(), ArithmeticIfStmt::ArithmeticIfStmt(), AssignedGotoStmt::AssignedGotoStmt(), AssignmentStmt::AssignmentStmt(), AssignStmt::AssignStmt(), BlockEntryStmt::BlockEntryStmt(), BlockExitStmt::BlockExitStmt(), CallStmt::CallStmt(), ComputedGotoStmt::ComputedGotoStmt(), DeallocateStmt::DeallocateStmt(), DirectiveStmt::DirectiveStmt(), DoStmt::DoStmt(), ElseIfStmt::ElseIfStmt(), ElseStmt::ElseStmt(), EndDoStmt::EndDoStmt(), EndIfStmt::EndIfStmt(), EntryStmt::EntryStmt(), FlowEntryStmt::FlowEntryStmt(), FlowExitStmt::FlowExitStmt(), GotoStmt::GotoStmt(), IfStmt::IfStmt(), ImpliedGotoStmt::ImpliedGotoStmt(), IOStmt::IOStmt(), LabelStmt::LabelStmt(), NullifyStmt::NullifyStmt(), BlockExitStmt::operator=(), BlockEntryStmt::operator=(), WhileStmt::operator=(), DirectiveStmt::operator=(), NullifyStmt::operator=(), DeallocateStmt::operator=(), AllocateStmt::operator=(), AssignedGotoStmt::operator=(), ComputedGotoStmt::operator=(), ArithmeticIfStmt::operator=(), GotoStmt::operator=(), LabelStmt::operator=(), ReturnStmt::operator=(), EntryStmt::operator=(), CallStmt::operator=(), FlowExitStmt::operator=(), FlowEntryStmt::operator=(), PauseStmt::operator=(), StopStmt::operator=(), IOStmt::operator=(), AssignStmt::operator=(), ElseStmt::operator=(), EndIfStmt::operator=(), ImpliedGotoStmt::operator=(), ElseIfStmt::operator=(), IfStmt::operator=(), EndDoStmt::operator=(), DoStmt::operator=(), AssignmentStmt::operator=(), StmtPointer::operator=(), PauseStmt::PauseStmt(), ReturnStmt::ReturnStmt(), StmtPointer::StmtPointer(), StopStmt::StopStmt(), and WhileStmt::WhileStmt(). |
| void Statement::_add_act_refs |
( |
Expression & |
expr |
) |
[protected] |
|
|
|
Given an expression in the statement, add to this statement's _act_refs.
If so, sends the parameter list to add_act_params to check whether any of the parameters may be included in the _act_refs set. If not, the expression's subexpressions are checked for FUNCTION_CALL_OPs recursively.
Definition at line 1033 of file Statement.cc.
References _add_act_params(), Expression::arg_list(), expr(), FUNCTION_CALL_OP, Expression::op(), Expression::parameters_guarded(), Expression::parameters_valid(), and List< T >::valid().
Referenced by _add_act_params(), _add_ioread_sets(), WhileStmt::build_refs(), NullifyStmt::build_refs(), AllocateStmt::build_refs(), AssignedGotoStmt::build_refs(), ComputedGotoStmt::build_refs(), ArithmeticIfStmt::build_refs(), ReturnStmt::build_refs(), IOStmt::build_refs(), AssignStmt::build_refs(), ElseIfStmt::build_refs(), IfStmt::build_refs(), DoStmt::build_refs(), and AssignmentStmt::build_refs(). |
| void Statement::_add_act_params |
( |
Expression & |
expr |
) |
[protected] |
|
|
|
Given an expression which is a parameter list, add to this statement's _act_refs.
Looks at each argument in turn. If it is a simple ID_OP, or ARRAY_REF_OP, then it is put in the _act_refs set. Otherwise, it is just checked for embedded FUNCTION_CALL_OPs.
Definition at line 1054 of file Statement.cc.
References _act_refs, _add_act_refs(), Expression::arg_list(), ARRAY_REF_OP, COMMA_OP, expr(), ID_OP, RefSet< T >::ins(), OMEGA_OP, Expression::op(), SUBSTRING_OP, and List< T >::valid().
Referenced by _add_act_refs(), and CallStmt::build_refs(). |
| void Statement::_add_in_refs |
( |
Expression & |
expr |
) |
[protected] |
|
|
|
Given an expression in the statement, add to this statement's _in_refs.
If so, add it to the _in_refs set. If not, whether it is a call of some kind, so as to carefully ignore the ID_OP of the name of the function, but still check the parameters. For all other types of expressions, recursively check them for IDs and ARRAY_REFs to add to the set.
... Ignore the function_exp ID_OP !!
... Fall through into other psuedo-assignments
... Ignore the index_id_expression ID_OP !! (this is written)
Definition at line 1134 of file Statement.cc.
References _in_refs, ALPHA_OP, Expression::arg_list(), ARRAY_REF_OP, Expression::bound(), EQUAL_OP, expr(), FUNCTION_CALL_OP, GAMMA_OP, Expression::gate(), ID_OP, RefSet< T >::ins(), INTRINSIC_CALL_OP, Expression::iteration_space(), LAMBDA_CALL_OP, MU_OP, Expression::op(), Expression::parameters_guarded(), Expression::parameters_valid(), Expression::subscript(), SUBSTRING_OP, and List< T >::valid().
Referenced by _add_ioread_sets(), WhileStmt::build_refs(), NullifyStmt::build_refs(), AllocateStmt::build_refs(), AssignedGotoStmt::build_refs(), ComputedGotoStmt::build_refs(), ArithmeticIfStmt::build_refs(), ReturnStmt::build_refs(), CallStmt::build_refs(), IOStmt::build_refs(), AssignStmt::build_refs(), ElseIfStmt::build_refs(), IfStmt::build_refs(), DoStmt::build_refs(), and AssignmentStmt::build_refs(). |
| void Statement::_add_out_refs |
( |
Expression & |
expr |
) |
[protected] |
|
|
|
Given an expression in the statement, add to this statement's _out_refs ONLY FINDS THE INDEX VARIABLE OF AN EQUAL_OP: (A(I), I=1,N).
EqualExpr is the ONLY case where you can tell from the expression alone that a variable is being written to.
Definition at line 1181 of file Statement.cc.
References _out_refs, Expression::arg_list(), EQUAL_OP, expr(), Expression::index_id(), RefSet< T >::ins(), Expression::op(), and List< T >::valid().
Referenced by IOStmt::build_refs(). |
| void Statement::_add_ioread_sets |
( |
Expression & |
expr |
) |
[protected] |
|
|
|
Given a top-level expression from a READ I/O list, add to the READ's in/out/act _refs.
The expression which is the argument MUST be an element of the CommaExpr which is the _iolist of a READ statement. This is a special case, because each "top-level" ID or ARRAY is taken to be written-to (by the READ statement), while everything else is read from. One complication is due to the fact that a function call with parameters may appear in a subscript, or in the iteration space expressions, so these parameters must be added to the _out_refs.
NOTE that the _out_refs are not complete after this is through- the caller still needs to add all members of the _act_refs set to the _out_refs set upon return.
Definition at line 1095 of file Statement.cc.
References _add_act_refs(), _add_in_refs(), _out_refs, Expression::arg_list(), ARRAY_REF_OP, Expression::bound(), Iterator< T >::current(), DO_OP, EQUAL_OP, expr(), ID_OP, Expression::index_id(), RefSet< T >::ins(), Expression::iolist(), Expression::iteration_space(), Expression::iterator(), Expression::op(), Expression::subscript(), SUBSTRING_OP, and Iterator< T >::valid().
Referenced by IOStmt::build_refs(). |
| void Statement::tag |
( |
const char * |
s |
) |
[inline, protected] |
|
|
|
< The tag is needed to avoid duplication.
Definition at line 324 of file Statement.h.
References _tag.
Referenced by _calc_loop_range(), _dump_workspaces(), ControlRangeDict::_get_range_ref(), AssignStmt::_setptrs(), accessor_test(), DDgraphTester::add(), IPCPProcData::add_constant_set(), DDgraphTester::add_dditerator(), clear_cdg_visited(), AbstractAccess::compute_new_dimension(), dcc_dfs(), intersect_ARDs(), main(), old_pEVAL(), PropConstWS::pretty_print(), ControlRangeDict::pretty_print(), SubroutineSymbol::print(), FunctionSymbol::print(), ProgramSymbol::print(), SSAFullRangeDict::print(), SSAFullRangeData::print(), SSARangeOrData::print(), SSAControlRangeDict::print(), SSAControlRangeData::print(), RangeAccessor::print(), PropRangeEdge::print(), PropConstElem::print(), PropConstValue::print(), pDominatorWorkSpace::print(), GSAWorkSpace::print(), GSAFullRangeDict::print(), GSAFullRangeData::print(), GSARangeOrData::print(), GSAControlRangeDict::print(), GSAControlRangeData::print(), DominatorWorkSpace::print(), CDGNode::print(), BlockExitStmt::print_debug(), BlockEntryStmt::print_debug(), WhileStmt::print_debug(), GotoStmt::print_debug(), ElseStmt::print_debug(), EndIfStmt::print_debug(), ImpliedGotoStmt::print_debug(), ElseIfStmt::print_debug(), IfStmt::print_debug(), EndDoStmt::print_debug(), DoStmt::print_debug(), print_fields(), print_stmt_tags(), SubroutineSymbol::relink_dptrs(), FunctionSymbol::relink_dptrs(), ProgramSymbol::relink_dptrs(), LabelExpr::relink_eptrs(), DDgraphTester::show_active_arcs(), DDgraphTester::show_arcs(), DDgraphTester::show_program(), SimBiGraph::SimBiGraph(), SimGraph::SimGraph(), split_multiple_entries(), stmt_toporder(), write_DF(), write_idom(), write_pDF(), and write_pidom(). |
|
|
Return an iterator over stmt exprs.
Definition at line 1194 of file Statement.cc.
References _exprlist.
Referenced by _normalize_func_calls(), ProgramUnit::_propagate_types(), ProgramUnit::clean(), clean_statement(), SSAProgramUnit::convert_to_standard(), enforce_standard_within_bounds(), main(), optimize_ssa_beta(), optimize_ssa_eta(), optimize_ssa_gamma(), optimize_ssa_mu(), optimize_ssa_zero(), remove_all_statement_functions(), rename_all_occurences(), and simplify_expressions(). |
| int Statement::iterate_in_exprs_valid |
( |
|
) |
const [virtual] |
|
| int Statement::iterate_out_exprs_valid |
( |
|
) |
const [virtual] |
|
| int Statement::iterate_in_out_exprs_valid |
( |
|
) |
const [virtual] |
|
| void Statement::simplify_expressions |
( |
|
) |
|
|
| Listable * Statement::listable_clone |
( |
|
) |
const [virtual] |
|
| virtual Statement* Statement::clone |
( |
|
) |
const [pure virtual] |
|
|
|
Implemented in AllocateStmt, ArithmeticIfStmt, AssignedGotoStmt, AssignmentStmt, AssignStmt, BlockEntryStmt, BlockExitStmt, CallStmt, ComputedGotoStmt, DeallocateStmt, DirectiveStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, EndIfStmt, EntryStmt, FlowEntryStmt, FlowExitStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, LabelStmt, NullifyStmt, PauseStmt, ReturnStmt, StmtPointer, StopStmt, and WhileStmt.
Referenced by _translate_range(), cdg2cfg(), AbstractAccess::compute_new_dimension(), eg_backtrack(), eg_compare(), GSAFullRangeData::GSAFullRangeData(), listable_clone(), and SSAFullRangeData::SSAFullRangeData(). |
| virtual int Statement::structures_OK |
( |
|
) |
const [pure virtual] |
|
|
|
Implemented in AllocateStmt, ArithmeticIfStmt, AssignedGotoStmt, AssignmentStmt, AssignStmt, BlockEntryStmt, BlockExitStmt, CallStmt, ComputedGotoStmt, DeallocateStmt, DirectiveStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, EndIfStmt, EntryStmt, FlowEntryStmt, FlowExitStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, LabelStmt, NullifyStmt, PauseStmt, ReturnStmt, StmtPointer, StopStmt, and WhileStmt.
Referenced by _dump_workspaces(), SSAFullRangeData::structures_OK(), PropConstValue::structures_OK(), GSAFullRangeData::structures_OK(), and LabelExpr::structures_OK(). |
| int Statement::in_out_refs_structures_OK |
( |
|
) |
const |
|
|
|
Check in/out/act _refs sets by saving them and recomputing them, then checking the saved one against the new one.
... Check _act_refs:
... Check _in_refs:
... Check _out_refs:
Definition at line 1874 of file Statement.cc.
References _act_refs, _in_refs, and _out_refs.
Referenced by BlockExitStmt::structures_OK(), BlockEntryStmt::structures_OK(), WhileStmt::structures_OK(), DirectiveStmt::structures_OK(), NullifyStmt::structures_OK(), DeallocateStmt::structures_OK(), AllocateStmt::structures_OK(), AssignedGotoStmt::structures_OK(), ComputedGotoStmt::structures_OK(), ArithmeticIfStmt::structures_OK(), GotoStmt::structures_OK(), LabelStmt::structures_OK(), ReturnStmt::structures_OK(), EntryStmt::structures_OK(), CallStmt::structures_OK(), FlowExitStmt::structures_OK(), FlowEntryStmt::structures_OK(), PauseStmt::structures_OK(), StopStmt::structures_OK(), IOStmt::structures_OK(), AssignStmt::structures_OK(), ElseStmt::structures_OK(), EndIfStmt::structures_OK(), ImpliedGotoStmt::structures_OK(), ElseIfStmt::structures_OK(), IfStmt::structures_OK(), EndDoStmt::structures_OK(), DoStmt::structures_OK(), and AssignmentStmt::structures_OK(). |
|
|
Reimplemented in AllocateStmt, ArithmeticIfStmt, AssignedGotoStmt, AssignmentStmt, AssignStmt, BlockEntryStmt, BlockExitStmt, CallStmt, ComputedGotoStmt, DeallocateStmt, DirectiveStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, EndIfStmt, EntryStmt, FlowEntryStmt, FlowExitStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, LabelStmt, NullifyStmt, PauseStmt, ReturnStmt, StmtPointer, StopStmt, and WhileStmt.
Referenced by StmtList::convert(). |
|
|
Reimplemented in ArithmeticIfStmt, AssignedGotoStmt, BlockEntryStmt, BlockExitStmt, CallStmt, ComputedGotoStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, FlowEntryStmt, FlowExitStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, ReturnStmt, StopStmt, and WhileStmt.
Referenced by fix_flow(). |
| void Statement::build_refs |
( |
|
) |
[virtual] |
|
|
|
methods which will retrieve data from common fields
Reimplemented in AllocateStmt, ArithmeticIfStmt, AssignedGotoStmt, AssignmentStmt, AssignStmt, CallStmt, ComputedGotoStmt, DeallocateStmt, DirectiveStmt, DoStmt, ElseIfStmt, IfStmt, IOStmt, NullifyStmt, ReturnStmt, and WhileStmt.
Definition at line 2353 of file Statement.cc.
References _act_refs, _in_refs, _out_refs, and RefSet< T >::clear().
Referenced by _normalize_func_calls(), StmtList::build_all_refs(), clean_statement(), StmtList::convert(), SSAProgramUnit::convert_to_standard(), StmtList::ins_after(), optimize_ssa_beta(), optimize_ssa_eta(), optimize_ssa_gamma(), optimize_ssa_mu(), optimize_ssa_zero(), process(), remap_args_precalc(), remove_all_statement_functions(), and simplify_expressions(). |
| STMT_TYPE Statement::stmt_class |
( |
|
) |
const [inline] |
|
|
|
Definition at line 379 of file Statement.h.
References _type.
Referenced by EvolutionGraph::_add_approximations(), _add_call_returns(), _add_control_assigns(), EvolutionGraph::_add_evolutions(), _any_reached_uses(), EvolutionGraph::_build(), _build_call_jump_functions(), _calc_loop_range(), _collect_candidates(), _delete_dead_code(), _determine_entry_points(), _find_scalar_sources(), _init_ipcp_workspaces(), _is_block_unreachable(), _iterate_to_fixed_point(), _make_nonlocals_modified_at_calls(), _make_nonlocals_used_at_calls(), _normalize_func_calls(), _patch_flow_graph(), EvolutionGraph::_relax(), _remove_local_effects_from_expr1(), _remove_unreachable(), Translator::actual(), add_dummy_eta_assignments_after_loops(), add_dummy_global_assignments_at_calls(), build_in_out_set(), build_in_out_sets(), ReturnStmt::build_succ(), FlowEntryStmt::build_succ(), StopStmt::build_succ(), callsite(), cdg2cfg(), AbstractAccess::check_access_patterns(), check_five_types(), clean_program(), clean_statement(), clone_loop(), clone_loop_body(), coalese_loop_pu(), collect_ar_statistics(), Program::compute_call_lists(), StmtList::contains_DO(), StmtList::convert(), SSAProgramUnit::convert_to_standard(), def_loop(), StmtList::del(), determine_loop_ranges(), DFS_S(), discriminate_phi(), eg_backtrack(), eliminate_unreachable_statements(), find_preds(), StmtList::first(), float_entry_points(), force_parallel(), gating(), gen_maymods(), generate_maymods(), get_back_sym(), get_falses(), get_gates_from_trace(), get_imu(), get_in(), get_in_out(), get_out(), get_preds_from_trace(), EvolutionGraph::get_trace_details(), get_trues(), has_known_iteration_space(), SSAProgramUnit::init_variable_set(), SSAProgramUnit::insert_phi_stmt(), insert_pseudo_assignment_stmts(), InsertPhiStmt(), is_mu_sym(), is_perfect_nest(), label_stmt_scopes(), StmtList::last(), last_gsa_symbol(), localize_goto(), loop(), main(), MakeDefMap(), mark_loops_with_location(), matching_else(), modify_dummy_eta_assignments_after_loops(), normalize_cfg(), normalize_loop_pu(), optimize_ssa_beta(), optimize_ssa_eta(), optimize_ssa_gamma(), optimize_ssa_mu(), parse_directives(), peel_first_loop_pu(), peel_last_loop_pu(), SSAProgramUnit::place_phi_functions(), preroll_loop_pu(), Predicates::print(), print_stmt_list(), PropConstWS::PropConstWS(), SubroutineSymbol::relink_dptrs(), InlineObject::remap_arg_names(), remap_args_precalc(), remove_dummy_assignments(), remove_gotos(), remove_trivial_gotos(), remove_unreachable_code(), SSAProgramUnit::rename_variables(), reverse_loop_pu(), SSAProgramUnit::SEARCH(), DDgraphTester::show_program(), sink_return_points(), skip_blocks(), sort_loops_postorder_lr(), sort_loops_preorder_lr(), StmtList::split_elseif(), split_multiple_entries(), LabelExpr::stmt(), strip_horiz_loop_pu(), strip_vert_loop_pu(), trace_defs(), trace_unique_def(), TranslateObject::translate_GSA_symbol_refs(), InlineObject::translate_symbol_refs(), translate_var(), and unroll_loop_pu(). |
|
|
Definition at line 382 of file Statement.h.
References _successors.
Referenced by _add_flow_edges(), _any_reached_uses(), _calc_toporder1(), _iterate_to_fixed_point(), cdg(), cfg2dt(), cfg2pdt(), DFS(), DFS_S(), DominanceFrontier(), exchange_convert(), gating(), pDominator(), PropConstWS::PropConstWS(), remove_trivial_gotos(), and SSAProgramUnit::SEARCH(). |
|
|
Definition at line 384 of file Statement.h.
References _predecessors.
Referenced by _calc_loop_range(), _init_data_preds(), _iterate_to_fixed_point(), _normalize_func_calls(), _put_pred_on_work_list(), _use_widening_operator(), cfg2dt(), cfg2pdt(), StmtList::del(), Dominator(), Dominator_S(), exchange_convert(), gating(), insert_pseudo_assignment_stmts(), InsertPhiStmt(), pDFS(), pDominanceFrontier(), SSAProgramUnit::place_phi_functions(), PropConstWS::PropConstWS(), remove_gotos(), remove_trivial_gotos(), and SSAProgramUnit::SEARCH(). |
|
|
Definition at line 387 of file Statement.h.
References _in_refs.
Referenced by _any_reached_uses(), _collect_candidates(), accessor_test(), DDgraphTester::add(), DDgraphTester::add_dditerator(), build_in_out_set(), SSAProgramUnit::convert_to_standard(), DDiterator::DDiterator(), exchange_convert(), optimize_ssa_beta(), optimize_ssa_eta(), optimize_ssa_gamma(), optimize_ssa_mu(), optimize_ssa_zero(), Predicates::Predicates(), DDiterator::reset(), SSAProgramUnit::SEARCH(), DDiterator::set_to_last(), DDgraphTester::show_active_arcs(), and DDgraphTester::show_arcs(). |
|
|
Definition at line 389 of file Statement.h.
References _out_refs.
Referenced by EvolutionGraph::_add_evolutions(), EvolutionGraph::_build(), accessor_test(), DDgraphTester::add(), DDgraphTester::add_dditerator(), add_dummy_eta_assignments_after_loops(), SSAProgramUnit::convert_to_standard(), DDiterator::DDiterator(), DFS_S(), exchange_convert(), gen_maymods(), SSAProgramUnit::init_variable_set(), last_gsa_symbol(), loop_variant_scalars(), loop_variant_vars(), MakeDefMap(), optimize_ssa_beta(), optimize_ssa_eta(), optimize_ssa_gamma(), optimize_ssa_mu(), optimize_ssa_zero(), Predicates::Predicates(), DDiterator::reset(), DDiterator::set_to_last(), DDgraphTester::show_active_arcs(), and DDgraphTester::show_arcs(). |
| Statement* Statement::next_ref |
( |
|
) |
const [inline] |
|
|
|
return the next element of the list.
Reimplemented from Listable.
Definition at line 394 of file Statement.h.
References Listable::next_ref().
Referenced by EvolutionGraph::_add_approximations(), EvolutionGraph::_add_evolutions(), EvolutionGraph::_build(), IntraPCodeDomain::_build_map(), _calc_loop_range(), _const_if_succ(), _delete_dead_code(), _filter_arrays(), _find_scalar_sources(), _get_ra(), _iterate_to_fixed_point(), _patch_flow_graph(), _remove_unreachable(), Translator::actual(), add_dummy_eta_assignments_after_loops(), add_dummy_global_assignments_at_calls(), build_dt(), build_in_out_sets(), build_pdt(), FlowEntryStmt::build_succ(), cdg2cfg(), cfg2dt(), clean_after_standard_enforcement(), clean_statement(), StmtList::create_assertions(), StmtList::del(), determine_loop_ranges(), dt2cfg(), eliminate_unreachable_statements(), enforce_standard_within_bounds(), exchange_convert(), InterPCodeDomain::expand_context_after(), IntraPCodeDomain::expand_context_after(), IntraPCodeDomain::expand_context_before(), find_postamble(), find_preds(), float_entry_points(), gen_maymods(), get_in(), get_in_out(), get_out(), IntraPCodeDomain::IntraPCodeDomain(), is_perfect_nest(), last_gsa_symbol(), matching_else(), modify_dummy_eta_assignments_after_loops(), Predicates::Predicates(), remap_args_precalc(), remove_dummy_assignments(), remove_gotos(), remove_trivial_gotos(), sink_return_points(), skip_blocks(), sort_loops_postorder_lr(), sort_loops_preorder_lr(), and translate_var(). |
| Statement* Statement::prev_ref |
( |
|
) |
const [inline] |
|
|
|
void operator delete (void * ptr, size_t size);
Reimplemented from Listable.
Definition at line 397 of file Statement.h.
References Listable::prev_ref().
Referenced by _add_control_assigns(), _init_data_preds(), _normalize_func_calls(), _remove_unreachable(), build_in_out_set(), callsite(), cfg2pdt(), clean_after_standard_enforcement(), clean_program(), clean_statement(), StmtList::convert(), StmtList::create_assertions(), StmtList::del(), discriminate_phi(), exchange_convert(), find_preamble(), float_entry_points(), get_preds_from_trace(), has_known_iteration_space(), IntraPCodeDomain::IntraPCodeDomain(), is_perfect_nest(), last_gsa_symbol(), loop(), parse_directives(), pdt2cfg(), Predicates::Predicates(), remap_args_precalc(), remove_gotos(), sink_return_points(), StmtList::split_elseif(), and trace_defs(). |
| Statement* Statement::outer_ref |
( |
|
) |
const [inline] |
|
|
|
Definition at line 400 of file Statement.h.
References _outer.
Referenced by _any_escaping_gotos(), _filter_arrays(), common_outer(), def_loop(), eg_backtrack(), eg_compare(), exchange_convert(), find_loop_same_level(), in_a_parallel_loop(), inner(), is_mu_sym(), localize_goto(), loop_variant(), main(), EvolutionGraph::min_distance(), propagate_outermost_DOs(), range_stmt(), and trace_defs(). |
| int Statement::line |
( |
|
) |
const [inline] |
|
| BinRep* Statement::overflow |
( |
|
) |
const [inline] |
|
| const char* Statement::tag |
( |
|
) |
const [inline] |
|
|
|
Definition at line 409 of file Statement.h.
References _tag.
Referenced by BlockExitStmt::exchange_convert(), BlockEntryStmt::exchange_convert(), WhileStmt::exchange_convert(), DirectiveStmt::exchange_convert(), NullifyStmt::exchange_convert(), DeallocateStmt::exchange_convert(), AllocateStmt::exchange_convert(), AssignedGotoStmt::exchange_convert(), ComputedGotoStmt::exchange_convert(), ArithmeticIfStmt::exchange_convert(), GotoStmt::exchange_convert(), LabelStmt::exchange_convert(), ReturnStmt::exchange_convert(), EntryStmt::exchange_convert(), CallStmt::exchange_convert(), FlowExitStmt::exchange_convert(), FlowEntryStmt::exchange_convert(), PauseStmt::exchange_convert(), StopStmt::exchange_convert(), IOStmt::exchange_convert(), AssignStmt::exchange_convert(), ElseStmt::exchange_convert(), EndIfStmt::exchange_convert(), ImpliedGotoStmt::exchange_convert(), ElseIfStmt::exchange_convert(), IfStmt::exchange_convert(), EndDoStmt::exchange_convert(), DoStmt::exchange_convert(), AssignmentStmt::exchange_convert(), exchange_convert(), and StmtPointer::exchange_convert(). |
| int Statement::tag_defined |
( |
|
) |
const [inline] |
|
| const char* Statement::state |
( |
|
) |
const [inline] |
|
|
|
methods which insert data into common fields
Definition at line 423 of file Statement.h.
References _assertion_list.
Referenced by _add_asserts_to_ranges(), _compute_private_kill_sets(), _delete_dead_code(), _norm_func_calls1(), add_dummy_global_assignments_at_calls(), IPCPProcData::add_maymods(), cdg2cfg(), ProgramUnit::clean(), clean_program(), clone_loop(), clone_loop_body(), SSAProgramUnit::convert_to_standard(), StmtList::create_directives(), ProgramUnit::distribution_of(), force_parallel(), Directive::generate_omp_do_directive(), DoStmt::get_loop_name(), mark_loops_with_location(), DoStmt::marked_parallel(), DoStmt::marked_serial(), peel_loop_last(), print_fields(), DoStmt::private_vars_ref(), remove_maymod_assertions(), and remove_preamble(). |
| void Statement::state |
( |
const char * |
s |
) |
[inline] |
|
| void Statement::line |
( |
int |
l |
) |
[inline] |
|
| void Statement::relink_lptrs |
( |
ProgramUnit & |
p |
) |
[virtual] |
|
|
|
Change pointers within the Statement expressions to point into the given ProgramUnit.
Implements Relinkable.
Definition at line 1258 of file Statement.cc.
References _access_table, _assertion_list, _exprlist, access_table(), Map< S, T >::grab(), Map< S, T >::ins(), Expression::relink_eptrs(), relink_sptrs(), and List< T >::valid(). |
| virtual void Statement::relink_sptrs |
( |
ProgramUnit & |
p |
) |
[virtual] |
|
|
|
Definition at line 442 of file Statement.h.
References _work_stack.
Referenced by _init_ipcp_workspaces(), _init_workspaces(), _ipcp_build_jump_functions(), _ipcp_propagate_constants(), _patch_flow_graph(), _propagate_constants1(), _remove_unreachable(), build_dt(), build_pdt(), cfg2dt(), cfg2pdt(), ProgramUnit::clean_workspace(), COMPRESS(), COMPRESS_PATH(), COMPRESS_S(), SSAProgramUnit::convert_to_SSA(), DFS(), DFS_S(), DominanceFrontier(), Dominator(), Dominator_S(), dt2cfg(), EVAL(), EVAL_S(), gating(), SSAProgramUnit::insert_phi_stmt(), insert_pseudo_assignment_stmts(), InsertPhiStmt(), LINK_PATH(), LINK_S(), SSAProgramUnit::make_phi_function(), old_pCOMPRESS(), old_pEVAL(), old_pLINK(), oldCOMPRESS(), oldEVAL(), oldLINK(), pCOMPRESS(), pDFS(), pDominanceFrontier(), pDominator(), pdt2cfg(), pdt_parent(), pEVAL(), SSAProgramUnit::place_phi_functions(), SSAProgramUnit::SEARCH(), stmt_toporder(), write_DF(), write_idom(), write_pDF(), and write_pidom(). |
| PerformanceEstimator * Statement::perf_estimator |
( |
|
) |
[inline] |
|
| void Statement::set_perf_estimator |
( |
PerformanceEstimator * |
pe |
) |
[inline] |
|
| unsigned long Statement::profile |
( |
|
) |
[inline] |
|
| void Statement::set_profile |
( |
unsigned long |
profile |
) |
[inline] |
|
| virtual void Statement::access_table |
( |
SymbolAccessMap * |
map |
) |
[inline, virtual] |
|
| Boolean Statement::access_table_exists |
( |
|
) |
|
|
| void Statement::fix_flow |
( |
StmtList & |
stmts |
) |
|
|
| void Statement::del_flow |
( |
StmtList & |
stmts |
) |
|
|
| void Statement::error |
( |
char * |
|
) |
const |
|
|
|
Definition at line 1820 of file Statement.cc.
References _type, and type_string.
Referenced by expr(), expr_guarded(), get_loop_name(), index(), init(), io_list_guarded(), label_list(), lhs(), limit(), parameters_guarded(), rhs(), routine_guarded(), s_control_guarded(), step(), and value(). |
| void Statement::program_unit |
( |
ProgramUnit * |
program_unit |
) |
[inline] |
|
|
|
methods which retrieve statement specific data Will be redefined by sub-classes if field exists
Definition at line 661 of file Statement.h.
References _exprlist. |
| const Expression & Statement::lhs |
( |
|
) |
const [virtual] |
|
|
|
Reimplemented in AssignmentStmt, and AssignStmt.
Definition at line 1946 of file Statement.cc.
References error().
Referenced by EvolutionGraph::_add_approximations(), _any_reached_uses(), EvolutionGraph::_build(), _collect_candidates(), _make_nonlocals_modified_at_calls(), clean_statement(), DFS_S(), fix_alternate_expr(), gen_maymods(), get_back_sym(), get_in(), get_in_out(), get_out(), has_known_iteration_space(), SSAProgramUnit::init_variable_set(), is_mu_sym(), last_gsa_symbol(), MakeDefMap(), modify_dummy_eta_assignments_after_loops(), normalize_loop(), optimize_ssa_eta(), optimize_ssa_gamma(), optimize_ssa_mu(), process(), remove_assigned_goto_stmts(), remove_dummy_assignments(), SSAProgramUnit::SEARCH(), SEARCH(), and trace_defs(). |
| const Expression & Statement::rhs |
( |
|
) |
const [virtual] |
|
|
|
Reimplemented in AssignmentStmt.
Definition at line 1960 of file Statement.cc.
References error().
Referenced by EvolutionGraph::_add_approximations(), EvolutionGraph::_add_evolutions(), EvolutionGraph::_build(), _build_call_jump_functions(), _collect_candidates(), _find_scalar_sources(), _init_data_preds(), _normalize_func_calls(), add_dummy_global_assignments_at_calls(), build_in_out_set(), callsite(), clean_program(), clean_statement(), Program::compute_call_lists(), SSAProgramUnit::convert_to_standard(), generate_maymods(), get_back_sym(), get_gates_from_trace(), get_imu(), get_in(), get_in_out(), get_out(), get_preds_from_trace(), EvolutionGraph::get_trace_details(), InsertPhiStmt(), is_mu_sym(), last_gsa_symbol(), loop(), main(), modify_dummy_eta_assignments_after_loops(), optimize_ssa_beta(), optimize_ssa_eta(), optimize_ssa_gamma(), optimize_ssa_mu(), process(), InlineObject::remap_arg_names(), remap_args_precalc(), remove_dummy_assignments(), SSAProgramUnit::rename_variables(), SSAProgramUnit::SEARCH(), SEARCH(), trace_defs(), trace_unique_def(), and TranslateObject::translate_GSA_symbol_refs(). |
| Statement * Statement::follow_ref |
( |
|
) |
const [virtual] |
|
|
|
Reimplemented in BlockEntryStmt, BlockExitStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, IfStmt, ImpliedGotoStmt, and WhileStmt.
Definition at line 1974 of file Statement.cc.
Referenced by EvolutionGraph::_add_approximations(), _add_control_assigns(), EvolutionGraph::_add_evolutions(), EvolutionGraph::_build(), _calc_loop_range(), _const_if_succ(), _delete_dead_code(), _get_ra(), _iterate_to_fixed_point(), _remove_unreachable(), add_dummy_eta_assignments_after_loops(), cdg2cfg(), StmtList::del(), determine_loop_ranges(), eg_range_array_1_to_i(), eliminate_loop(), enclosing_scope(), enforce_standard_within_bounds(), exchange_convert(), Directive::generate_omp_critical_directive(), is_perfect_nest(), last_gsa_symbol(), modify_dummy_eta_assignments_after_loops(), peel_loop_last(), Predicates::Predicates(), propagate_outermost_DOs(), range_stmt(), remove_trivial_gotos(), SSAProgramUnit::SEARCH(), skip_blocks(), sort_loops_postorder_lr(), sort_loops_preorder_lr(), and StmtList::split_elseif(). |
| Statement * Statement::lead_ref |
( |
|
) |
const [virtual] |
|
| Statement * Statement::matching_if_ref |
( |
|
) |
const [virtual] |
|
| Statement * Statement::matching_endif_ref |
( |
|
) |
const [virtual] |
|
| const Expression & Statement::expr |
( |
|
) |
const [virtual] |
|
|
|
Reimplemented in ArithmeticIfStmt, AssignedGotoStmt, ComputedGotoStmt, ElseIfStmt, IfStmt, and WhileStmt.
Definition at line 2054 of file Statement.cc.
References error().
Referenced by _add_act_params(), _add_act_refs(), _add_control_assigns(), _add_in_refs(), _add_ioread_sets(), _add_out_refs(), add_dummy_eta_assignments_after_loops(), cdg2cfg(), convert_arithmetic_if(), infer_preds(), localize_goto(), normalize_cfg(), remove_assigned_goto_stmts(), and remove_gotos(). |
| const Expression & Statement::index |
( |
|
) |
const [virtual] |
|
|
|
Reimplemented in DoStmt.
Definition at line 1998 of file Statement.cc.
References error().
Referenced by EvolutionGraph::_add_evolutions(), _any_reached_uses(), EvolutionGraph::_back_edge(), EvolutionGraph::_build(), EvolutionGraph::_compute_acyclic_evolutions(), EvolutionGraph::_compute_cyclic_evolutions(), EvolutionGraph::_local_range(), EvolutionGraph::_possible_ranges(), _remove_unreachable(), _update_enddo_succs(), cdg2cfg(), enforce_standard_within_bounds(), force_parallel(), insert_pseudo_assignment_stmts(), and SSAProgramUnit::place_phi_functions(). |
| const Expression & Statement::init |
( |
|
) |
const [virtual] |
|
| const Expression & Statement::limit |
( |
|
) |
const [virtual] |
|
| const Expression & Statement::step |
( |
|
) |
const [virtual] |
|
| const Expression & Statement::expr_guarded |
( |
|
) |
const [virtual] |
|
| Expression & Statement::expr_guarded |
( |
|
) |
[virtual] |
|
| int Statement::expr_valid |
( |
|
) |
const [virtual] |
|
| String Statement::get_loop_name |
( |
|
) |
[virtual] |
|
| const Statement * Statement::target_ref |
( |
|
) |
const [virtual] |
|
| Statement * Statement::target_ref |
( |
|
) |
[virtual] |
|
| const Format * Statement::format_ref |
( |
|
) |
const [virtual] |
|
| Format * Statement::format_ref |
( |
|
) |
[virtual] |
|
| int Statement::s_control_valid |
( |
|
) |
const [virtual] |
|
| Boolean Statement::marked_parallel |
( |
|
) |
const [virtual] |
|
| Boolean Statement::marked_serial |
( |
|
) |
const [virtual] |
|
| RefSet< Symbol > * Statement::private_vars_ref |
( |
|
) |
const [virtual] |
|
| const Expression & Statement::io_list_guarded |
( |
|
) |
const [virtual] |
|
| Expression & Statement::io_list_guarded |
( |
|
) |
[virtual] |
|
| int Statement::io_list_valid |
( |
|
) |
const [virtual] |
|
| const Expression & Statement::routine_guarded |
( |
|
) |
const [virtual] |
|
| Expression & Statement::routine_guarded |
( |
|
) |
[virtual] |
|
| int Statement::routine_valid |
( |
|
) |
const [virtual] |
|
| const Expression & Statement::parameters_guarded |
( |
|
) |
const [virtual] |
|
| Expression & Statement::parameters_guarded |
( |
|
) |
[virtual] |
|
| int Statement::parameters_valid |
( |
|
) |
const [virtual] |
|
| int Statement::value |
( |
|
) |
const [virtual] |
|
| virtual void Statement::lhs |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::rhs |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::index |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::init |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::limit |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::step |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::expr |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::target |
( |
Statement * |
s |
) |
[virtual] |
|
| virtual void Statement::io_list |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::routine |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::parameters |
( |
Expression * |
e |
) |
[virtual] |
|
| virtual void Statement::value |
( |
int |
i |
) |
[virtual] |
|
| void Statement::print |
( |
ostream & |
o |
) |
const [virtual] |
|
| virtual void Statement::fortran_write |
( |
ostream & |
o, |
|
|
int & |
indent, |
|
|
char * |
type = "" |
|
) |
const [pure virtual] |
|
|
|
Implemented in AllocateStmt, ArithmeticIfStmt, AssignedGotoStmt, AssignmentStmt, AssignStmt, BlockEntryStmt, BlockExitStmt, CallStmt, ComputedGotoStmt, DeallocateStmt, DirectiveStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, EndIfStmt, EntryStmt, FlowEntryStmt, FlowExitStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, LabelStmt, NullifyStmt, PauseStmt, ReturnStmt, StmtPointer, StopStmt, and WhileStmt.
Referenced by _dump_workspaces(), and main(). |
| virtual void Statement::print_debug |
( |
ostream & |
o, |
|
|
int |
debug |
|
) |
const [pure virtual] |
|
|
|
prints the statement if debug = 0, print only statement-specific debugging if debug = 1 (to be used in conjunction with print_fields)
Print was primarily designed to be used by other functions, to better output statements we suggest using the << operator to print with debugging info or the write method to print in FORTRAN form
Implemented in AllocateStmt, ArithmeticIfStmt, AssignedGotoStmt, AssignmentStmt, AssignStmt, BlockEntryStmt, BlockExitStmt, CallStmt, ComputedGotoStmt, DeallocateStmt, DirectiveStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, EndIfStmt, EntryStmt, FlowEntryStmt, FlowExitStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, LabelStmt, NullifyStmt, PauseStmt, ReturnStmt, StmtPointer, StopStmt, and WhileStmt.
Referenced by _delete_dead_code(), _dump_workspaces(), _iterate_to_fixed_point(), _remove_unreachable(), SSAControlRangeDict::print(), IPCPProcData::print(), IPCPCallData::print(), and GSAControlRangeDict::print(). |
| virtual void Statement::write |
( |
ostream & |
o, |
|
|
int & |
indent, |
|
|
char * |
type = "" |
|
) |
const [virtual] |
|
|
|
Write out the SymbolAccessMap.
Referenced by _iterate_to_fixed_point_phase(), cdg2cfg(), InlineObject::inline_expand(), Predicates::print(), GlobalDefSite::print(), IntraPCodeDomain::print(), print_gmap(), print_stmt_list(), DDgraphTester::show_program(), translate_one_symbol(), and ProgramUnit::write(). |
| void Statement::write_access_table |
( |
ostream & |
o |
) |
|
|
| void Statement::print_fields |
( |
ostream & |
o |
) |
const |
|
|
|
prints all additional fields (fields defined in the base class) for debugging
... comment '{'
Definition at line 1691 of file Statement.cc.
References _access_table, _act_refs, _in_refs, _line, _out_refs, _outer, _overflow, _post_directives, _pre_directives, _predecessors, _successors, _type, _work_stack, assertions(), WorkSpaceStack::entries(), List< T >::entries(), RefSet< T >::entries(), ENTRY_STMT, print_expr_list(), print_stmt_tags(), print_string_list(), and tag(). |
| void Statement::exchange_convert |
( |
VDL & |
vdl |
) |
[virtual] |
|
|
|
Convert the Statement into the exchange format.
... Fill in the common fields.
... successors
... predecessors
... in_refs
... out_refs
... act_refs
Reimplemented in AllocateStmt, ArithmeticIfStmt, AssignedGotoStmt, AssignmentStmt, AssignStmt, BlockEntryStmt, BlockExitStmt, CallStmt, ComputedGotoStmt, DeallocateStmt, DirectiveStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, EndIfStmt, EntryStmt, FlowEntryStmt, FlowExitStmt, GotoStmt, IfStmt, ImpliedGotoStmt, IOStmt, LabelStmt, NullifyStmt, PauseStmt, ReturnStmt, StmtPointer, StopStmt, and WhileStmt.
Definition at line 858 of file Statement.cc.
References act_refs(), BinRep::find_ref(), follow_ref(), in_refs(), List< T >::ins(), Set< T >::ins(), List< T >::ins_last(), lead_ref(), line(), next_ref(), out_refs(), outer_ref(), pred(), prev_ref(), succ(), tag(), BinRep::to_set(), BinRep::to_tuple(), and RefSet< T >::valid().
Referenced by StmtList::exchange_convert(), BlockExitStmt::exchange_convert(), BlockEntryStmt::exchange_convert(), WhileStmt::exchange_convert(), DirectiveStmt::exchange_convert(), NullifyStmt::exchange_convert(), DeallocateStmt::exchange_convert(), AllocateStmt::exchange_convert(), AssignedGotoStmt::exchange_convert(), ComputedGotoStmt::exchange_convert(), ArithmeticIfStmt::exchange_convert(), GotoStmt::exchange_convert(), LabelStmt::exchange_convert(), ReturnStmt::exchange_convert(), EntryStmt::exchange_convert(), CallStmt::exchange_convert(), FlowExitStmt::exchange_convert(), FlowEntryStmt::exchange_convert(), PauseStmt::exchange_convert(), StopStmt::exchange_convert(), IOStmt::exchange_convert(), AssignStmt::exchange_convert(), ElseStmt::exchange_convert(), EndIfStmt::exchange_convert(), ImpliedGotoStmt::exchange_convert(), ElseIfStmt::exchange_convert(), IfStmt::exchange_convert(), EndDoStmt::exchange_convert(), DoStmt::exchange_convert(), AssignmentStmt::exchange_convert(), and StmtPointer::exchange_convert(). |
| CDGNode * Statement::cdgnode |
( |
|
) |
[inline] |
|
| void Statement::cdgnode |
( |
CDGNode * |
n |
) |
[inline] |
|
Friends And Related Function Documentation
|
|
Reimplemented in BlockEntryStmt, BlockExitStmt, DoStmt, ElseIfStmt, ElseStmt, EndDoStmt, EndIfStmt, IfStmt, ImpliedGotoStmt, LabelStmt, and WhileStmt.
Definition at line 238 of file Statement.h. |
| ostream& operator<< |
( |
ostream & |
o, |
|
|
const Statement & |
st |
|
) |
[friend] |
|
|
|
This outputs the statement with all debugging info (ie-all fields!).
... delete src_line; ... delete dbg_line; ... silvius: fixed above
Definition at line 1761 of file Statement.cc. |
Member Data Documentation
|
|
by symbol for statement, or whole block if this is a block-type stmt, like DO
Definition at line 288 of file Statement.h.
Referenced by access_table(), access_table_exists(), copy_base(), incorporate_access_table(), ins_read_access(), ins_readwrite_access(), ins_write_access(), iter_access_table_guarded(), iter_read_guarded(), iter_readwrite_guarded(), iter_write_guarded(), print_fields(), relink_lptrs(), Statement(), symbol_access_exists(), write_access_table(), and ~Statement(). |
The documentation for this class was generated from the following files:
|