A small IPA pass is a pass derived from simple_ipa_opt_pass
.
As described in Using summary information in IPA passes, it does everything at once and
defines only the Execute stage. During this
stage it accesses and modifies the function bodies.
No generate_summary
, read_summary
, or write_summary
hooks are defined.
This pass frees resources that are used by the front end but are
not needed once it is done. It is located in tree.cc and is described by
pass_ipa_free_lang_data
.
This is a local function pass handling visibilities of all symbols. This
happens before LTO streaming, so -fwhole-program should be ignored
at this level. It is located in ipa-visibility.cc and is described by
pass_ipa_function_and_variable_visibility
.
This pass performs reachability analysis and reclaims all unreachable nodes.
It is located in passes.cc and is described by
pass_ipa_remove_symbols
.
This is a pass group for OpenACC processing. It is located in
tree-ssa-loop.cc and is described by pass_ipa_oacc
.
This is a tree-based points-to analysis pass. The idea behind this analyzer
is to generate set constraints from the program, then solve the resulting
constraints in order to generate the points-to sets. It is located in
tree-ssa-structalias.cc and is described by pass_ipa_pta
.
This is a pass group for processing OpenACC kernels regions. It is a
subpass of the IPA OpenACC pass group that runs on offloaded functions
containing OpenACC kernels loops. It is located in
tree-ssa-loop.cc and is described by
pass_ipa_oacc_kernels
.
This is a pass for parsing functions with multiple target attributes.
It is located in multiple_target.cc and is described by
pass_target_clone
.
This pass uses AutoFDO profiling data to annotate the control flow graph.
It is located in auto-profile.cc and is described by
pass_ipa_auto_profile
.
This pass does profiling for all functions in the call graph.
It calculates branch
probabilities and basic block execution counts. It is located
in tree-profile.cc and is described by pass_ipa_tree_profile
.
This pass is a small IPA pass when argument small_p
is true.
It releases inline function summaries and call summaries.
It is located in ipa-fnsummary.cc and is described by
pass_ipa_free_free_fn_summary
.
This pass increases the alignment of global arrays to improve
vectorization. It is located in tree-vectorizer.cc
and is described by pass_ipa_increase_alignment
.
This pass is for transactional memory support.
It is located in trans-mem.cc and is described by
pass_ipa_tm
.
This pass lowers thread-local storage (TLS) operations
to emulation functions provided by libgcc.
It is located in tree-emutls.cc and is described by
pass_ipa_lower_emutls
.