GCC Middle and Back End API Reference
|
#include <tree-pass.h>
Public Member Functions | |
virtual | ~opt_pass () |
virtual opt_pass * | clone () |
virtual bool | gate () |
virtual unsigned int | execute () |
Data Fields | |
struct opt_pass * | sub |
struct opt_pass * | next |
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 | |
opt_pass (const pass_data &, gcc::context *) |
Protected Attributes | |
gcc::context * | m_ctxt |
An instance of a pass. This is also "pass_data" to minimize the changes in existing code.
|
inlinevirtual |
|
protected |
|
virtual |
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().
|
virtual |
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().
|
virtual |
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().
|
inherited |
If true, this pass has its own implementation of the opt_pass::execute method.
|
inherited |
If true, this pass has its own implementation of the opt_pass::gate method.
|
protected |
|
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 |
Next in the list of passes to run, independent of gate predicate.
Referenced by add_pass_instance().
|
inherited |
The -fopt-info optimization group flags as defined in dumpfile.h.
|
inherited |
|
inherited |
|
inherited |
Sets of properties input and output from this pass.
int opt_pass::static_pass_number |
Static pass number, used as a fragment of the dump file name.
Referenced by gcc::pass_manager::execute_pass_mode_switching(), is_pass_explicitly_enabled_or_disabled(), gcc::pass_manager::set_pass_for_id(), and statistics_fini_pass_3().
struct opt_pass* opt_pass::sub |
A list of sub-passes to run, dependent on gate predicate.
Referenced by ipa_write_summaries().
|
inherited |
|
inherited |
Flags indicating common sets things to do before and after.
Referenced by is_pass_explicitly_enabled_or_disabled().
|
inherited |
The timevar id associated with this pass.
??? Ideally would be dynamically assigned.
Referenced by ipa_write_summaries().
|
inherited |
Optimization pass type.
Referenced by add_pass_instance(), and ipa_write_summaries().