GCC Middle and Back End API Reference
|
#include <tree-pass.h>
Public Member Functions | |
virtual opt_pass * | clone () |
virtual bool | gate () |
virtual unsigned int | execute () |
Data Fields | |
void(* | generate_summary )(void) |
void(* | write_summary )(void) |
void(* | read_summary )(void) |
void(* | write_optimization_summary )(void) |
void(* | read_optimization_summary )(void) |
void(* | stmt_fixup )(struct cgraph_node *, gimple *) |
unsigned int | function_transform_todo_flags_start |
unsigned int(* | function_transform )(struct cgraph_node *) |
void(* | variable_transform )(struct varpool_node *) |
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 | |
ipa_opt_pass_d (const pass_data &data, gcc::context *ctxt, void(*generate_summary)(void), void(*write_summary)(void), void(*read_summary)(void), void(*write_optimization_summary)(void), void(*read_optimization_summary)(void), void(*stmt_fixup)(struct cgraph_node *, gimple *), unsigned int function_transform_todo_flags_start, unsigned int(*function_transform)(struct cgraph_node *), void(*variable_transform)(struct varpool_node *)) |
Protected Attributes | |
gcc::context * | m_ctxt |
Description of IPA pass with generate summary, write, execute, read and transform stages.
|
inlineprotected |
|
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().
|
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().
|
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().
unsigned int(* ipa_opt_pass_d::function_transform)(struct cgraph_node *) |
unsigned int ipa_opt_pass_d::function_transform_todo_flags_start |
Results of interprocedural propagation of an IPA pass is applied to function body via this hook.
void(* ipa_opt_pass_d::generate_summary)(void) |
IPA passes can analyze function body and variable initializers using this hook and produce summary.
Referenced by gimple_opt_pass::gimple_opt_pass().
|
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.
|
protectedinherited |
|
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().
|
inherited |
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.
void(* ipa_opt_pass_d::read_optimization_summary)(void) |
This hook is used to deserialize IPA summaries from disk.
void(* ipa_opt_pass_d::read_summary)(void) |
This hook is used to deserialize IPA summaries from disk.
Referenced by ipa_write_summaries().
|
inherited |
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().
void(* ipa_opt_pass_d::stmt_fixup)(struct cgraph_node *, gimple *) |
Hook to convert gimple stmt uids into true gimple statements. The second parameter is an array of statements indexed by their uid.
|
inherited |
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().
void(* ipa_opt_pass_d::variable_transform)(struct varpool_node *) |
void(* ipa_opt_pass_d::write_optimization_summary)(void) |
This hook is used to serialize IPA optimization summaries on disk.
void(* ipa_opt_pass_d::write_summary)(void) |
This hook is used to serialize IPA summaries on disk.