GCC Middle and Back End API Reference
rtl_opt_pass Class Reference

#include <tree-pass.h>

Inheritance diagram for rtl_opt_pass:
Collaboration diagram for rtl_opt_pass:

Public Member Functions

virtual opt_passclone ()
virtual bool gate ()
virtual unsigned int execute ()

Data Fields

struct opt_passsub
struct opt_passnext
int static_pass_number
enum opt_pass_type type
const char * name
unsigned int optinfo_flags
bool has_gate
bool has_execute
timevar_id_t tv_id
unsigned int properties_required
unsigned int properties_provided
unsigned int properties_destroyed
unsigned int todo_flags_start
unsigned int todo_flags_finish

Protected Member Functions

 rtl_opt_pass (const pass_data &data, gcc::context *ctxt)

Protected Attributes

gcc::contextm_ctxt

Detailed Description

   Description of RTL pass.  

Constructor & Destructor Documentation

rtl_opt_pass::rtl_opt_pass ( const pass_data data,
gcc::context ctxt 
)
inlineprotected

Referenced by rtl_loop_done(), and rtl_loop_init().


Member Function Documentation

opt_pass * opt_pass::clone ( )
virtualinherited
     Create a copy of this pass.

     Passes that can have multiple instances must provide their own
     implementation of this, to ensure that any sharing of state between
     this instance and the copy is "wired up" correctly.

     The default implementation prints an error message and aborts.  
   Most passes are single-instance (within their context) and thus don't
   need to implement cloning, but passes that support multiple instances
   *must* provide their own implementation of the clone method.

   Handle this by providing a default implemenation, but make it a fatal
   error to call it.  

Referenced by add_pass_instance(), execute_fold_all_builtins(), and gate_copyrename().

unsigned int opt_pass::execute ( )
virtualinherited
     This is the code to run.  If has_execute is false, then there should
     be sub-passes otherwise this pass does nothing.
     The return value contains TODOs to execute in addition to those in
     TODO_flags_finish.   

Referenced by execute_fold_all_builtins(), gate_check_data_deps(), gate_copyrename(), gate_tree_loop_vectorize(), gate_tree_ssa_loop_ivopts(), make_pass_graphite(), mark_operand_necessary(), replace_profitable_candidates(), rewrite_blocks(), rtl_loop_done(), rtl_loop_init(), tree_ssa_loop_bounds(), and tree_ssa_loop_done().

bool opt_pass::gate ( )
virtualinherited
     If has_gate is set, this pass and all sub-passes are executed only if
     the function returns true.
     The default implementation returns true.  

Referenced by gate_check_data_deps(), gate_copyrename(), gate_tree_loop_vectorize(), gate_tree_ssa_loop_ivopts(), make_pass_graphite(), mark_operand_necessary(), replace_profitable_candidates(), and rewrite_blocks().


Field Documentation

bool pass_data::has_execute
inherited
     If true, this pass has its own implementation of the opt_pass::execute
     method.  
bool pass_data::has_gate
inherited
     If true, this pass has its own implementation of the opt_pass::gate
     method.  
gcc::context* opt_pass::m_ctxt
protectedinherited
const char* pass_data::name
inherited
     Terse name of the pass used as a fragment of the dump file
     name.  If the name starts with a star, no dump happens. 

Referenced by gcc::pass_manager::execute_pass_mode_switching(), is_pass_explicitly_enabled_or_disabled(), and gcc::pass_manager::set_pass_for_id().

struct opt_pass* opt_pass::next
inherited
     Next in the list of passes to run, independent of gate predicate.  

Referenced by add_pass_instance().

unsigned int pass_data::optinfo_flags
inherited
     The -fopt-info optimization group flags as defined in dumpfile.h. 
unsigned int pass_data::properties_destroyed
inherited
unsigned int pass_data::properties_provided
inherited
unsigned int pass_data::properties_required
inherited
     Sets of properties input and output from this pass.  
int opt_pass::static_pass_number
inherited
struct opt_pass* opt_pass::sub
inherited
     A list of sub-passes to run, dependent on gate predicate.  

Referenced by ipa_write_summaries().

unsigned int pass_data::todo_flags_finish
inherited
unsigned int pass_data::todo_flags_start
inherited
     Flags indicating common sets things to do before and after.  

Referenced by is_pass_explicitly_enabled_or_disabled().

timevar_id_t pass_data::tv_id
inherited
     The timevar id associated with this pass.  
     ??? Ideally would be dynamically assigned.  

Referenced by ipa_write_summaries().

enum opt_pass_type pass_data::type
inherited
     Optimization pass type.  

Referenced by add_pass_instance(), and ipa_write_summaries().


The documentation for this class was generated from the following file: