ProgramUnit Class Referencea class for Fortran program units
More...
#include <ProgramUnit.h>
Inheritance diagram for ProgramUnit:
[legend]List of all members.
|
Public Member Functions |
| | ProgramUnit (const char *pu_tag, PU_TYPE routine_type) |
| | ProgramUnit (const ProgramUnit &p) |
| | ProgramUnit (const char *pu_tag, const BinRep &bs) |
| | ProgramUnit (const char *pu_tag, const VDL &vdl_bs) |
| ProgramUnit & | operator= (const ProgramUnit &pgm) |
| virtual ProgramUnit * | clone () const |
| | Return (and give control of) a new ProgramUnit which has been copied from this one.
|
| virtual | ~ProgramUnit () |
| void | burst_header (ostream &o) const |
| | Issue a page break and header information is the switch is enabled.
|
| const char * | pu_tag_ref () const |
| | Returns the pu_tag of the program unit (not to be confused with the routine_name).
|
| PU_TYPE | pu_class () const |
| | Returns the flavor of program unit.
|
| const char * | routine_name_ref () const |
| | Returns the name of this ProgramUnit, if there is such a name (otherwise returns an empty string [""]), collected from the Fortran source.
|
| const char * | original_file_ref () const |
| | Return a character pointer to the file from which this routine was obtained.
|
| const StmtList & | stmts () const |
| StmtList & | stmts () |
| | The Statement list.
|
| const Symtab & | symtab () const |
| Symtab & | symtab () |
| | The Symbol table.
|
| const DataList & | data () const |
| DataList & | data () |
| | The List of DATA statements.
|
| const CommonBlockDict & | common_blocks () const |
| CommonBlockDict & | common_blocks () |
| | The List of COMMON blocks.
|
| const NamelistDict & | namelists () const |
| NamelistDict & | namelists () |
| | The NAMELIST dictionary.
|
| const EquivalenceDict & | equivalences () const |
| EquivalenceDict & | equivalences () |
| | The EQIUVALENCE dictionary.
|
| const FormatDB & | formats () const |
| FormatDB & | formats () |
| | The FORMAT database.
|
| PredicateRepository & | pred_repos () |
| | Repository for AbstractAccess predicates for this ProgramUnit.
|
| PerformanceEstimator * | perf_estimator () |
| void | set_perf_estimator (PerformanceEstimator *pe) |
| | Performance estimation data.
|
| const WorkSpaceStack & | work_stack () const |
| WorkSpaceStack & | work_stack () |
| | The stack of WorkSpaces for the ProgramUnit.
|
| BinRep * | overflow_ref () const |
| | Any unrecognized interchange objects.
|
| DDgraph & | ddgraph () |
| | Outmoded. Call ddgraph_guarded() instead.
|
| DDgraph & | ddgraph_guarded () |
| | Return a reference to the DDgraph associated with the program.
|
| Boolean | ddgraph_valid () |
| | Return true if the program unit has a ddgraph.
|
| void | ddgraph (DDgraph *ddg) |
| | Set my DDgraph to the given object.
|
| const DefLocMap & | gsa_deflocs_guarded () const |
| DefLocMap & | gsa_deflocs_guarded () |
| | Return a reference to the DefLocMap associated with the program (which must be in GSA form).
|
| const TranslateObject & | gsa_names_guarded () const |
| TranslateObject & | gsa_names_guarded () |
| | Return a reference to the TranslateObject associated with the program (which must be in GSA form).
|
| bool | gsa_valid () const |
| | Is ProgramUnit in gsa form or not?
|
| void | gsa_deflocs (DefLocMap *new_map) |
| | Set my DefLocMap to the given object (or NULL).
|
| void | gsa_names (TranslateObject *new_names) |
| | Set my TranslateObject to the given object (or NULL).
|
| Map< Statement, InlineObject > & | inline_map_guarded () |
| | Return a reference to the inline_map for this ProgramUnit.
|
| bool | inline_map_valid () |
| | Does the inline_map exist?
|
| void | inline_map (Map< Statement, InlineObject > *map) |
| | Assign inline_map for this ProgramUnit.
|
| RangeDict & | range_dict_guarded () |
| | Give access to the Range Dictionary in the ProgramUnit.
|
| bool | range_dict_valid () |
| | Does the range dictionary exist?
|
| void | range_dict (RangeDict *rdict) |
| | Record the Range Dictionary for this ProgramUnit.
|
| RefSet< ProgramUnit > & | calls () |
| RefSet< ProgramUnit > & | called_by () |
| void | add_call (ProgramUnit &pgm) |
| void | add_called_by (ProgramUnit &pgm) |
| | _
|
| void | multithread () |
| void | singlethread () |
| void | undefined_thread () |
| | _ Set _multithread flag to True/False/No(initalized value)
|
| int | is_multithread () const |
| int | is_thread_defined () const |
| | _ If True, this programunit has some doalls in it
|
| Expression * | distribution_of (Symbol *sym) |
| | Return the corresponding DistributeExpr for sym if it is shared 'ARRAY'.
|
| void | clean_workspace (unsigned int pass_tag) |
| | Delete all WorkSpaces with the given pass tag from the program unit's WorkSpaceStack and all of the WorkSpaceStacks for the ProgramUnit's statements.
|
| void | clean () |
| | Search through the ProgramUnit and find all symbol uses.
|
| BinRep * | exchange () |
| | Return a BinRep object which encapsulates the ProgramUnit in a portable format.
|
| void | display (ostream &o) const |
| | Display the program unit in a form which includes statement tags and other information.
|
| void | display_debug (ostream &o) const |
| | Display the program unit in a form which includes the symbol table and details of all the other program unit structures, useful for debugging.
|
| virtual void | print (ostream &o) const |
| | Satisfies the Definition requirements. Equivalent to display().
|
| virtual int | structures_OK () const |
| | Check the structure of the data for errors or inconsistency Return 0 and print error message if problems found, otherwise return 1 without message.
|
| void | write (ostream &o) const |
| | Display the program unit in FORTRAN format.
|
| virtual Definition * | definition_clone () const |
| | Copy and return a Definition.
|
| void | function_to_subroutine () |
| | Convert a program unit of type FUNCTION_PU_TYPE into a program unit of type SUBROUTINE_PU_TYPE.
|
| void | subroutine_to_function () |
| | Convert a program unit of type SUBROUTINE_PU_TYPE into a program unit of type FUNCTION_PU_TYPE.
|
| void | program_to_subroutine () |
| | Convert a program unit of type PROGRAM_PU_TYPE into a program unit of type SUBROUTINE_PU_TYPE.
|
Protected Member Functions |
| void | create_program_unit (const BinRep &bs) |
| void | _propagate_symbol_dimensions () |
| | Update the Type field of each symbol with specific dimension data.
|
| void | _propagate_types () |
| | Propagate dimension information from the symbol table to every expression in the ProgramUnit.
|
| void | _propagate_types (Expression &) |
Protected Attributes |
| PU_TYPE | _routine_type |
| String | _original_file |
| StmtList | _statements |
| Symtab * | _symtab |
| DataList * | _data_list |
| DDgraph * | _ddgraph |
| CommonBlockDict * | _common_blocks |
| NamelistDict * | _namelists |
| EquivalenceDict * | _equivalences |
| FormatDB * | _formats |
| DefLocMap * | _gsa_deflocs |
| TranslateObject * | _gsa_names |
| PredicateRepository | _repository |
| RefSet< ProgramUnit > | _calls |
| | ProgramUnits this ProgramUnit calls.
|
| RefSet< ProgramUnit > | _called_by |
| | ProgramUnits which call this ProgramUnit.
|
| PerformanceEstimator * | _perf_estimator |
| Map< Statement, InlineObject > * | _inline_map |
| RangeDict * | _ranges |
| BinRep * | _overflow |
| int | _multithread |
| | _
|
| WorkSpaceStack | _work_stack |
| | Stack of WorkSpaces for this program unit.
|
Friends |
| class | Program |
| ostream & | operator<< (ostream &o, const ProgramUnit &pr) |
Detailed Description
a class for Fortran program units
Base General utility routines - See also:
- ProgramUnit.h
ProgramUnit.cc
ProgramUnit.h
This class represents a Fortran program unit and contains all of the major structures of such an object. It also contains the statement copying/deleting/insertion routines as well as some block listing routines such as iterate_loop_body()
Definition at line 70 of file ProgramUnit.h.
Constructor & Destructor Documentation
| ProgramUnit::ProgramUnit |
( |
const char * |
pu_tag, |
|
|
PU_TYPE |
routine_type |
|
) |
|
|
|
|
Definition at line 176 of file ProgramUnit.cc.
References _common_blocks, _data_list, _ddgraph, _equivalences, _formats, _gsa_deflocs, _gsa_names, _inline_map, _namelists, _overflow, _perf_estimator, FormatDB::_pgm, StmtList::_pgm, _ranges, _routine_type, _statements, _symtab, BinRep::put_set(), and register_instance().
Referenced by clone(). |
|
|
Definition at line 69 of file ProgramUnit.cc.
References _common_blocks, _data_list, _ddgraph, _equivalences, _formats, _gsa_deflocs, _gsa_names, _inline_map, _namelists, _overflow, _perf_estimator, _ranges, _symtab, and register_instance(). |
| ProgramUnit::ProgramUnit |
( |
const char * |
pu_tag, |
|
|
const BinRep & |
bs |
|
) |
|
|
|
|
Definition at line 239 of file ProgramUnit.cc.
References _ddgraph, _formats, _gsa_deflocs, _gsa_names, _inline_map, _perf_estimator, FormatDB::_pgm, StmtList::_pgm, _ranges, _statements, create_program_unit(), and register_instance(). |
| ProgramUnit::ProgramUnit |
( |
const char * |
pu_tag, |
|
|
const VDL & |
vdl_bs |
|
) |
|
|
|
|
Definition at line 213 of file ProgramUnit.cc.
References _ddgraph, _formats, _gsa_deflocs, _gsa_names, _inline_map, _perf_estimator, FormatDB::_pgm, StmtList::_pgm, _ranges, _statements, create_program_unit(), and register_instance(). |
|
|
Definition at line 649 of file ProgramUnit.cc.
References _common_blocks, _data_list, _ddgraph, _equivalences, _formats, _gsa_deflocs, _gsa_names, _inline_map, _namelists, _overflow, _ranges, _symtab, and unregister_instance(). |
Member Function Documentation
| void ProgramUnit::create_program_unit |
( |
const BinRep & |
bs |
) |
[protected] |
|
|
|
... First, check if the BinRep contains a "messages" field which ... indicates that there were syntax errors or warnings in the the ... Fortran code. If that is the case, print out the errors.
... Now for the conversions. Most must take place in a fairly determined ... order. After each field is converted, it should be deleted from the ... dictionary so that what remains afterwards should all go into overflow.
... Get the file name.
... Get the routine type
... Do the initial conversion of the symbol table
... Don't delete the "symtab" field from dict yet--we need another ... pass on it first
... Create a temporary expression table
... (No reason to directly translate this)
... Read in the formats, if any
... Read in the namelists, if any
... Convert the statement list
... No "initial_statement" field was found. It could only then be ... a block data program unit
... Read in the equivalences, if any
... Read in the common blocks, if any
... Read in the data statements, if any
... Prepare VoidPtrDef dictionaries for fillining in the symbol table.
... Fill in the symbol table now that everything else has been ... converted. Then delete that field from dict.
... Stick everything else into overflow
... Check whether there is a PROGRAM statement or not ... If not, add one!
... The following will only find the FLOW_ENTRY_STMT because ... we proved above that there are no ENTRY_STMTs in the program unit!
... Fill in the dimension entry in the 'Type' field of a Symbol
... Propagate size and dimension information from Types found in ... VariableSymbols to all expressions.
Definition at line 264 of file ProgramUnit.cc.
References _common_blocks, _data_list, _equivalences, _formats, _namelists, _original_file, _overflow, _propagate_symbol_dimensions(), _propagate_types(), _routine_type, _statements, _symtab, BLOCK_DATA_PU_TYPE, comma(), StmtList::convert(), StmtList::create_flow_graph(), Iterator< T >::current(), KeyIterator< S, T >::current_data(), dbx_program_debug_level, BinRep::del(), Symbol::entry(), ENTRY_STMT, exprs, False, Symtab::fill_in(), Symtab::find_ref(), BinRep::find_ref(), FUNCTION_PU_TYPE, id(), Symtab::ins(), BinRep::ins(), Dictionary< T >::ins(), StmtList::ins_after(), StmtList::iterate_entry_points(), Equivalence::name_ref(), Namelist::name_ref(), CommonBlock::name_ref(), StmtList::new_tag(), PROGRAM_PU_TYPE, pu_class(), BinRep::put_set(), Symbol::renaming_suggestion(), Statement::routine(), stmts(), StmtList::stmts_of_type(), SUBROUTINE_PU_TYPE, symtab(), BinRep::to_set(), BinRep::to_string(), True, KeyIterator< S, T >::valid(), Iterator< T >::valid(), and warn_overflow_map().
Referenced by ProgramUnit(). |
| void ProgramUnit::_propagate_symbol_dimensions |
( |
|
) |
[protected] |
|
| void ProgramUnit::_propagate_types |
( |
|
) |
[protected] |
|
| void ProgramUnit::_propagate_types |
( |
Expression & |
|
) |
[protected] |
|
|
|
... For now, the RangeDict must be recomputed
... ORDER DEPENDENCY: Symtab relink requires StmtList to have been copied
... _
Definition at line 95 of file ProgramUnit.cc.
References _common_blocks, _data_list, _equivalences, _formats, _gsa_deflocs, _gsa_names, _inline_map, _multithread, _namelists, _original_file, _overflow, _perf_estimator, StmtList::_pgm, FormatDB::_pgm, _ranges, _routine_type, _statements, _symtab, _work_stack, DataList::clone(), BinRep::clone(), FormatDB::clone(), EquivalenceDict::clone(), NamelistDict::clone(), CommonBlockDict::clone(), Symtab::clone(), relink_all_lptrs(), EquivalenceDict::relink_ptrs(), NamelistDict::relink_ptrs(), CommonBlockDict::relink_ptrs(), Symtab::relink_ptrs(), and DataList::relink_ptrs(). |
| void ProgramUnit::burst_header |
( |
ostream & |
o |
) |
const |
|
| const char * ProgramUnit::pu_tag_ref |
( |
|
) |
const |
|
|
|
Returns the pu_tag of the program unit (not to be confused with the routine_name).
The pu_tag has nothing to do with the Fortran source, but is just an identifier useful in has tables, etc.
Definition at line 674 of file ProgramUnit.cc.
Referenced by clear_substituted_pu(), coalese_loop_pu(), expand_substituted_pu(), localize_goto_pu(), normalize_loop_pu(), peel_first_loop_pu(), peel_last_loop_pu(), preroll_loop_pu(), print_pu(), propagate_constants_pu(), reverse_loop_pu(), strip_horiz_loop_pu(), strip_vert_loop_pu(), substitute_parameters_pu(), unroll_loop_pu(), and write_pu(). |
| PU_TYPE ProgramUnit::pu_class |
( |
|
) |
const [inline] |
|
| const char * ProgramUnit::routine_name_ref |
( |
|
) |
const |
|
|
|
Returns the name of this ProgramUnit, if there is such a name (otherwise returns an empty string [""]), collected from the Fortran source.
I.e. if this program unit is a SUBROUTINE called "SUB1", then routine_name_ref() returns "SUB1". This information is obtained by grabbing the the first ENTRY statement in the program, if any.
Definition at line 829 of file ProgramUnit.cc.
References Iterator< T >::current(), ENTRY_STMT, Symbol::name_ref(), Statement::routine_guarded(), Statement::routine_valid(), stmts(), StmtList::stmts_of_type(), Expression::symbol(), and Iterator< T >::valid().
Referenced by EvolutionGraph::_build(), EvolutionGraph::_p_abort(), Translator::actual(), build_def_map(), build_in_out_set(), Program::compute_call_lists(), find_pgm(), main(), operator<<(), Predicates::print(), IPCPProcData::print(), GlobalDefSite::print(), IntraPCodeDomain::print(), and print_dmap(). |
| const char * ProgramUnit::original_file_ref |
( |
|
) |
const |
|
| const StmtList & ProgramUnit::stmts |
( |
|
) |
const [inline] |
|
|
|
Definition at line 416 of file ProgramUnit.h.
References _statements.
Referenced by EvolutionGraph::_add_approximations(), EvolutionGraph::_build(), _find_call_sites(), _propagate_types(), EvolutionGraph::_relax(), Translator::actual(), IPCPProcData::add_constant_set(), add_dummy_eta_assignments_after_loops(), add_dummy_global_assignments_at_calls(), IPCPProcData::add_maymods(), clean_workspace(), coalese_loop_pu(), Program::compute_call_lists(), SSAProgramUnit::convert_to_SSA(), SSAProgramUnit::convert_to_standard(), create_program_unit(), EvolutionGraph::EvolutionGraph(), exchange(), IntraPCodeDomain::expand_context_after(), IntraPCodeDomain::expand_context_before(), generate_maymods(), SSAProgramUnit::insert_phi_stmt(), main(), MakeGSA_test(), modify_dummy_eta_assignments_after_loops(), move_saved_vars(), normalize_loop_pu(), peel_first_loop_pu(), peel_last_loop_pu(), EvolutionGraph::perfect_trace_from_mu(), preroll_loop_pu(), process(), Program::read(), InlineObject::remap_arg_names(), remove_dummy_assignments(), remove_maymod_assertions(), SSAControlRangeDict::representative_stmt(), GSAControlRangeDict::representative_stmt(), reverse_loop_pu(), routine_name_ref(), split_multiple_entries(), strip_horiz_loop_pu(), strip_vert_loop_pu(), SSAFullRangeDict::touch(), GSAFullRangeDict::touch(), TranslateObject::translate_GSA_symbol_refs(), InlineObject::translate_symbol_refs(), and unroll_loop_pu(). |
| StmtList & ProgramUnit::stmts |
( |
|
) |
[inline] |
|
| const Symtab & ProgramUnit::symtab |
( |
|
) |
const [inline] |
|
|
|
Definition at line 428 of file ProgramUnit.h.
References _symtab.
Referenced by EvolutionGraph::_build(), _propagate_symbol_dimensions(), TranslateObject::_translate_symbol_refs_expr(), IPCPProcData::add_maymods(), already_ip_ssa(), build_def_map(), build_in_out_set(), clean(), Program::compute_call_lists(), create_program_unit(), exchange(), SSAProgramUnit::init_SSA_stack(), InitializeGSAStack(), IPCPProcData::IPCPProcData(), main(), MakeGSA_test(), EvolutionGraph::min_distance(), move_saved_vars(), SSAProgramUnit::place_phi_functions(), InlineObject::remap_arg_names(), SSAProgramUnit::rename_variables(), SSAProgramUnit::SEARCH(), SEARCH(), split_multiple_entries(), TranslateObject::translate_GSA_symbol_refs(), and TranslateObject::TranslateObject(). |
| Symtab & ProgramUnit::symtab |
( |
|
) |
[inline] |
|
| const DataList & ProgramUnit::data |
( |
|
) |
const [inline] |
|
| DataList & ProgramUnit::data |
( |
|
) |
[inline] |
|
| const NamelistDict & ProgramUnit::namelists |
( |
|
) |
const [inline] |
|
| const FormatDB & ProgramUnit::formats |
( |
|
) |
const [inline] |
|
| FormatDB & ProgramUnit::formats |
( |
|
) |
[inline] |
|
|
|
Repository for AbstractAccess predicates for this ProgramUnit.
Definition at line 488 of file ProgramUnit.h.
References _repository.
Referenced by AbstractAccess::exec_predicate_false(), AbstractAccess::exec_predicate_true(), Directive::generate_csrd_dep_overlap_directive(), Directive::generate_csrd_dep_ROvsRW_directive(), Directive::generate_csrd_dep_RWvsWF_directive(), Directive::generate_csrd_dep_WFvsRO_directive(), Directive::generate_csrd_overlap_directive(), Directive::generate_csrd_overlap_sort_directive(), Directive::generate_csrd_private_descr_directive(), Directive::generate_csrd_reduct_descr_directive(), Directive::generate_csrd_test_monotone_directive(), AbstractAccess::print(), AbstractAccess::remap_interface_vars(), and simplify_descriptors(). |
| PerformanceEstimator * ProgramUnit::perf_estimator |
( |
|
) |
[inline] |
|
| void ProgramUnit::set_perf_estimator |
( |
PerformanceEstimator * |
pe |
) |
[inline] |
|
| BinRep * ProgramUnit::overflow_ref |
( |
|
) |
const [inline] |
|
| DDgraph & ProgramUnit::ddgraph |
( |
|
) |
[inline] |
|
| DDgraph & ProgramUnit::ddgraph_guarded |
( |
|
) |
[inline] |
|
| Boolean ProgramUnit::ddgraph_valid |
( |
|
) |
[inline] |
|
| void ProgramUnit::ddgraph |
( |
DDgraph * |
ddg |
) |
|
|
| const DefLocMap & ProgramUnit::gsa_deflocs_guarded |
( |
|
) |
const [inline] |
|
| DefLocMap & ProgramUnit::gsa_deflocs_guarded |
( |
|
) |
[inline] |
|
| bool ProgramUnit::gsa_valid |
( |
|
) |
const [inline] |
|
| void ProgramUnit::gsa_deflocs |
( |
DefLocMap * |
new_map |
) |
|
|
| bool ProgramUnit::inline_map_valid |
( |
|
) |
[inline] |
|
| RangeDict & ProgramUnit::range_dict_guarded |
( |
|
) |
[inline] |
|
|
|
Give access to the Range Dictionary in the ProgramUnit.
Definition at line 377 of file ProgramUnit.h.
References _ranges.
Referenced by EvolutionGraph::_relax(), ar_intersect(), ar_subregion(), ar_subtract(), AbstractAccess::calc_overlap(), AbstractAccess::check_sort(), AbstractAccess::coalesce(), EvolutionGraph::EvolutionGraph(), intersect_ARDs(), EvolutionGraph::perfect_trace_from_mu(), and AbstractAccess::remap_interface_vars(). |
| bool ProgramUnit::range_dict_valid |
( |
|
) |
[inline] |
|
| void ProgramUnit::range_dict |
( |
RangeDict * |
rdict |
) |
[inline] |
|
| void ProgramUnit::add_call |
( |
ProgramUnit & |
pgm |
) |
[inline] |
|
| void ProgramUnit::add_called_by |
( |
ProgramUnit & |
pgm |
) |
[inline] |
|
| void ProgramUnit::multithread |
( |
|
) |
[inline] |
|
| void ProgramUnit::singlethread |
( |
|
) |
[inline] |
|
| void ProgramUnit::undefined_thread |
( |
|
) |
[inline] |
|
| int ProgramUnit::is_multithread |
( |
|
) |
const [inline] |
|
| int ProgramUnit::is_thread_defined |
( |
|
) |
const [inline] |
|
|
|
_ If True, this programunit has some doalls in it
_ If False, it has not or may have doalls.(Conservative)
Definition at line 550 of file ProgramUnit.h.
References _multithread. |
|
|
Return the corresponding DistributeExpr for sym if it is shared 'ARRAY'.
Return 0 either if it is scalar or if it is private array
Definition at line 1186 of file ProgramUnit.cc.
References _statements, Assertion::arg_list_guarded(), AS_SHARED, Statement::assertions(), Iterator< T >::current(), DISTRIBUTE_OP, StmtList::first(), Assertion::type(), List< T >::valid(), Iterator< T >::valid(), and VARIABLE_CLASS. |
| void ProgramUnit::clean_workspace |
( |
unsigned int |
pass_tag |
) |
|
|
| void ProgramUnit::clean |
( |
|
) |
|
|
|
|
Search through the ProgramUnit and find all symbol uses.
Remove any symbols from the Symtab that are not found.
Definition at line 904 of file ProgramUnit.cc.
References Assertion::arg_list_guarded(), Assertion::arg_list_valid(), Statement::assertions(), EquivalenceDict::clean(), Symbol::clear_common(), Symbol::clear_equivalence(), collect_all_symbols(), collect_symb_const(), Symbol::common_ref(), constant(), Symtab::del(), Symbol::dim(), e, eq(), Symbol::equivalence_ref(), equivalences(), Symbol::expr_ref(), Symbol::is_array(), Statement::iterate_expressions(), Statement::s_control_guarded(), Statement::s_control_valid(), symtab(), RefSet< T >::valid(), and List< T >::valid().
Referenced by Program::clean(), and SSAProgramUnit::convert_to_standard(). |
| BinRep * ProgramUnit::exchange |
( |
|
) |
|
|
|
|
Return a BinRep object which encapsulates the ProgramUnit in a portable format.
Definition at line 1086 of file ProgramUnit.cc.
References _original_file, _overflow, common_blocks(), data(), VDL::data_ref(), String::defined(), VDL::end_object(), VDL::end_set(), equivalences(), StmtList::exchange_convert(), NamelistDict::exchange_convert(), FormatDB::exchange_convert(), DataList::exchange_convert(), EquivalenceDict::exchange_convert(), CommonBlockDict::exchange_convert(), Symtab::exchange_convert(), formats(), VDL::give_up_data(), Set< T >::ins(), List< T >::ins_last(), namelists(), pu_class(), routine_type_names, VDL::start_object(), VDL::start_set(), stmts(), symtab(), and BinRep::to_set().
Referenced by retrieve_pu(). |
| void ProgramUnit::display |
( |
ostream & |
o |
) |
const |
|
|
|
Display the program unit in a form which includes statement tags and other information.
To print a program unit in a correct Fortran format, use 'write(...)' instead.
Definition at line 706 of file ProgramUnit.cc.
References _common_blocks, _data_list, _equivalences, _formats, _namelists, _original_file, _statements, _symtab, String::defined(), StmtList::display(), FormatDB::write(), NamelistDict::write(), DataList::write(), EquivalenceDict::write(), CommonBlockDict::write(), and Symtab::write().
Referenced by display_debug(), main(), and print(). |
| void ProgramUnit::display_debug |
( |
ostream & |
o |
) |
const |
|
|
|
Display the program unit in a form which includes the symbol table and details of all the other program unit structures, useful for debugging.
To print a program in a more readable FORTRAN format, use 'display(...)' or 'write(...)' instead.
Definition at line 759 of file ProgramUnit.cc.
References _common_blocks, _data_list, _equivalences, _formats, _namelists, _overflow, _routine_type, _symtab, display(), and NUM_PU_TYPES.
Referenced by main(), and process(). |
| void ProgramUnit::print |
( |
ostream & |
o |
) |
const [virtual] |
|
| int ProgramUnit::structures_OK |
( |
void |
|
) |
const [virtual] |
|
| void ProgramUnit::write |
( |
ostream & |
o |
) |
const |
|
|
|
Display the program unit in FORTRAN format.
... entries.current() is the first entry statement
Reimplemented in SSAProgramUnit.
Definition at line 726 of file ProgramUnit.cc.
References _common_blocks, _data_list, _equivalences, _formats, _namelists, _statements, _symtab, blank_wide_output(), BLOCK_DATA_PU_TYPE, burst_header(), Iterator< T >::current(), ENTRY_STMT, pu_class(), routine_type_names, StmtList::stmts_of_type(), Iterator< T >::valid(), FormatDB::write(), StmtList::write(), NamelistDict::write(), DataList::write(), EquivalenceDict::write(), CommonBlockDict::write(), Symtab::write(), and Statement::write().
Referenced by generate_maymods(), main(), process(), SSAProgramUnit::write(), Program::write(), and write_pu(). |
| Definition * ProgramUnit::definition_clone |
( |
|
) |
const [virtual] |
|
| void ProgramUnit::function_to_subroutine |
( |
|
) |
|
|
| void ProgramUnit::subroutine_to_function |
( |
|
) |
|
|
| void ProgramUnit::program_to_subroutine |
( |
|
) |
|
|
Friends And Related Function Documentation
| ostream& operator<< |
( |
ostream & |
o, |
|
|
const ProgramUnit & |
pr |
|
) |
[friend] |
|
Member Data Documentation
The documentation for this class was generated from the following files:
|