GCC Middle and Back End API Reference
gimple_opt_pass Class Reference

#include <tree-pass.h>

Inheritance diagram for gimple_opt_pass:
Collaboration diagram for gimple_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

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

Protected Attributes

gcc::contextm_ctxt

Detailed Description

Description of GIMPLE pass.


Constructor & Destructor Documentation


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: