Polly 20.0.0git
|
#include "polly/ForwardOpTree.h"
#include "polly/Options.h"
#include "polly/ScopBuilder.h"
#include "polly/ScopInfo.h"
#include "polly/ScopPass.h"
#include "polly/Support/GICHelper.h"
#include "polly/Support/ISLOStream.h"
#include "polly/Support/ISLTools.h"
#include "polly/Support/VirtualInstruction.h"
#include "polly/ZoneAlgo.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Value.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "isl/ctx.h"
#include "isl/isl-noexceptions.h"
#include <cassert>
#include <memory>
#include "polly/Support/PollyDebug.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "polly-optree" |
Functions | |
static cl::opt< bool > | AnalyzeKnown ("polly-optree-analyze-known", cl::desc("Analyze array contents for load forwarding"), cl::cat(PollyCategory), cl::init(true), cl::Hidden) |
static cl::opt< bool > | NormalizePHIs ("polly-optree-normalize-phi", cl::desc("Replace PHIs by their incoming values"), cl::cat(PollyCategory), cl::init(false), cl::Hidden) |
static cl::opt< unsigned > | MaxOps ("polly-optree-max-ops", cl::desc("Maximum number of ISL operations to invest for known " "analysis; 0=no limit"), cl::init(1000000), cl::cat(PollyCategory), cl::Hidden) |
STATISTIC (KnownAnalyzed, "Number of successfully analyzed SCoPs") | |
STATISTIC (KnownOutOfQuota, "Analyses aborted because max_operations was reached") | |
STATISTIC (TotalInstructionsCopied, "Number of copied instructions") | |
STATISTIC (TotalKnownLoadsForwarded, "Number of forwarded loads because their value was known") | |
STATISTIC (TotalReloads, "Number of reloaded values") | |
STATISTIC (TotalReadOnlyCopied, "Number of copied read-only accesses") | |
STATISTIC (TotalForwardedTrees, "Number of forwarded operand trees") | |
STATISTIC (TotalModifiedStmts, "Number of statements with at least one forwarded tree") | |
STATISTIC (ScopsModified, "Number of SCoPs with at least one forwarded tree") | |
STATISTIC (NumValueWrites, "Number of scalar value writes after OpTree") | |
STATISTIC (NumValueWritesInLoops, "Number of scalar value writes nested in affine loops after OpTree") | |
STATISTIC (NumPHIWrites, "Number of scalar phi writes after OpTree") | |
STATISTIC (NumPHIWritesInLoops, "Number of scalar phi writes nested in affine loops after OpTree") | |
STATISTIC (NumSingletonWrites, "Number of singleton writes after OpTree") | |
STATISTIC (NumSingletonWritesInLoops, "Number of singleton writes nested in affine loops after OpTree") | |
INITIALIZE_PASS_BEGIN (ForwardOpTreeWrapperPass, "polly-optree", "Polly - Forward operand tree", false, false) INITIALIZE_PASS_END(ForwardOpTreeWrapperPass | |
polly Polly Forward operand false | INITIALIZE_PASS_BEGIN (ForwardOpTreePrinterLegacyPass, "polly-print-optree", "Polly - Print forward operand tree result", false, false) INITIALIZE_PASS_END(ForwardOpTreePrinterLegacyPass |
Variables | |
polly | optree |
polly Polly Forward operand | tree |
polly Polly Forward operand | false |
polly Polly Forward operand false polly print Polly Print forward operand tree | result |
#define DEBUG_TYPE "polly-optree" |
Definition at line 44 of file ForwardOpTree.cpp.
|
static |
polly Polly Forward operand false INITIALIZE_PASS_BEGIN | ( | ForwardOpTreePrinterLegacyPass | , |
"polly-print-optree" | , | ||
"Polly - Print forward operand tree result" | , | ||
false | , | ||
false | |||
) |
INITIALIZE_PASS_BEGIN | ( | ForwardOpTreeWrapperPass | , |
"polly-optree" | , | ||
"Polly - Forward operand tree" | , | ||
false | , | ||
false | |||
) |
|
static |
|
static |
STATISTIC | ( | KnownAnalyzed | , |
"Number of successfully analyzed SCoPs" | |||
) |
STATISTIC | ( | KnownOutOfQuota | , |
"Analyses aborted because max_operations was reached" | |||
) |
STATISTIC | ( | NumPHIWrites | , |
"Number of scalar phi writes after OpTree" | |||
) |
STATISTIC | ( | NumPHIWritesInLoops | , |
"Number of scalar phi writes nested in affine loops after OpTree" | |||
) |
STATISTIC | ( | NumSingletonWrites | , |
"Number of singleton writes after OpTree" | |||
) |
STATISTIC | ( | NumSingletonWritesInLoops | , |
"Number of singleton writes nested in affine loops after OpTree" | |||
) |
STATISTIC | ( | NumValueWrites | , |
"Number of scalar value writes after OpTree" | |||
) |
STATISTIC | ( | NumValueWritesInLoops | , |
"Number of scalar value writes nested in affine loops after OpTree" | |||
) |
STATISTIC | ( | TotalForwardedTrees | , |
"Number of forwarded operand trees" | |||
) |
STATISTIC | ( | TotalInstructionsCopied | , |
"Number of copied instructions" | |||
) |
STATISTIC | ( | TotalKnownLoadsForwarded | , |
"Number of forwarded loads because their value was known" | |||
) |
STATISTIC | ( | TotalModifiedStmts | , |
"Number of statements with at least one forwarded tree" | |||
) |
STATISTIC | ( | TotalReadOnlyCopied | , |
"Number of copied read-only accesses" | |||
) |
STATISTIC | ( | TotalReloads | , |
"Number of reloaded values" | |||
) |
polly Polly Forward operand false polly print Polly Print forward operand tree false |
Definition at line 1207 of file ForwardOpTree.cpp.
polly Polly Forward operand false polly print optree |
Definition at line 1206 of file ForwardOpTree.cpp.
polly Polly Forward operand false polly print Polly Print forward operand tree result |
Definition at line 1213 of file ForwardOpTree.cpp.
polly Polly Forward operand tree |
Definition at line 1207 of file ForwardOpTree.cpp.
Referenced by collect_filter_prefix(), collect_filter_prefix_expansion(), collect_filter_prefix_init(), collect_filter_prefix_update(), collect_universe_domain_extension(), construct_ast_from_schedule(), construct_ast_from_union_map(), create_leaf(), domain_less(), expand(), extension_from_domain(), extract_space_from_filter_child(), gist_leave(), graft_extension(), graft_or_splice(), group_ancestor(), group_band(), group_context(), group_domain(), group_expansion(), has_ancestors(), initial_domain(), initial_domain_from_children(), insert_filter_in_child_of_type(), involves_iteration_domain(), isl_printer_print_schedule_tree(), isl_printer_print_schedule_tree_mark(), isl_schedule_cow(), isl_schedule_expand(), isl_schedule_from_domain(), isl_schedule_from_schedule_tree(), isl_schedule_get_root(), isl_schedule_node_align_params(), isl_schedule_node_alloc(), isl_schedule_node_ancestor(), isl_schedule_node_band_gist(), isl_schedule_node_band_member_set_ast_loop_type(), isl_schedule_node_band_member_set_coincident(), isl_schedule_node_band_member_set_isolate_ast_loop_type(), isl_schedule_node_band_mod(), isl_schedule_node_band_scale(), isl_schedule_node_band_scale_down(), isl_schedule_node_band_set_ast_build_options(), isl_schedule_node_band_set_permutable(), isl_schedule_node_band_shift(), isl_schedule_node_band_sink(), isl_schedule_node_band_split(), isl_schedule_node_band_tile(), isl_schedule_node_child(), isl_schedule_node_delete(), isl_schedule_node_domain_gist_params(), isl_schedule_node_domain_intersect_domain(), isl_schedule_node_expand(), isl_schedule_node_expansion_set_contraction_and_expansion(), isl_schedule_node_extension_set_extension(), isl_schedule_node_filter_set_filter(), isl_schedule_node_from_extension(), isl_schedule_node_get_ancestor_child_position(), isl_schedule_node_get_schedule_depth(), isl_schedule_node_get_subtree_schedule_union_map(), isl_schedule_node_graft_tree(), isl_schedule_node_has_next_sibling(), isl_schedule_node_insert_children(), isl_schedule_node_insert_context(), isl_schedule_node_insert_expansion(), isl_schedule_node_insert_extension(), isl_schedule_node_insert_filter(), isl_schedule_node_insert_guard(), isl_schedule_node_insert_mark(), isl_schedule_node_insert_partial_schedule(), isl_schedule_node_next_sibling(), isl_schedule_node_previous_sibling(), isl_schedule_node_pullback_union_pw_multi_aff(), isl_schedule_node_reset_user(), isl_schedule_node_sequence_splice(), isl_schedule_node_sequence_splice_child(), isl_schedule_set_root(), isl_schedule_tree_align_params(), isl_schedule_tree_alloc(), isl_schedule_tree_band_get_ast_build_options(), isl_schedule_tree_band_get_ast_isolate_option(), isl_schedule_tree_band_get_partial_schedule(), isl_schedule_tree_band_get_permutable(), isl_schedule_tree_band_get_space(), isl_schedule_tree_band_gist(), isl_schedule_tree_band_intersect_domain(), isl_schedule_tree_band_member_get_ast_loop_type(), isl_schedule_tree_band_member_get_coincident(), isl_schedule_tree_band_member_get_isolate_ast_loop_type(), isl_schedule_tree_band_member_set_ast_loop_type(), isl_schedule_tree_band_member_set_coincident(), isl_schedule_tree_band_member_set_isolate_ast_loop_type(), isl_schedule_tree_band_mod(), isl_schedule_tree_band_n_member(), isl_schedule_tree_band_scale(), isl_schedule_tree_band_scale_down(), isl_schedule_tree_band_set_ast_build_options(), isl_schedule_tree_band_set_partial_schedule(), isl_schedule_tree_band_set_permutable(), isl_schedule_tree_band_shift(), isl_schedule_tree_band_split(), isl_schedule_tree_band_tile(), isl_schedule_tree_child(), isl_schedule_tree_children_insert_filter(), isl_schedule_tree_context_get_context(), isl_schedule_tree_copy(), isl_schedule_tree_cow(), isl_schedule_tree_domain_get_domain(), isl_schedule_tree_domain_set_domain(), isl_schedule_tree_drop_child(), isl_schedule_tree_dump(), isl_schedule_tree_dup(), isl_schedule_tree_expansion_get_contraction(), isl_schedule_tree_expansion_get_expansion(), isl_schedule_tree_expansion_set_contraction_and_expansion(), isl_schedule_tree_extension_get_extension(), isl_schedule_tree_extension_set_extension(), isl_schedule_tree_filter_get_filter(), isl_schedule_tree_filter_set_filter(), isl_schedule_tree_first_schedule_descendant(), isl_schedule_tree_free(), isl_schedule_tree_from_band(), isl_schedule_tree_from_children(), isl_schedule_tree_from_context(), isl_schedule_tree_from_domain(), isl_schedule_tree_from_expansion(), isl_schedule_tree_from_extension(), isl_schedule_tree_from_filter(), isl_schedule_tree_from_guard(), isl_schedule_tree_from_mark(), isl_schedule_tree_get_child(), isl_schedule_tree_get_ctx(), isl_schedule_tree_get_subtree_schedule_union_map(), isl_schedule_tree_get_type(), isl_schedule_tree_guard_get_guard(), isl_schedule_tree_has_children(), isl_schedule_tree_insert_band(), isl_schedule_tree_insert_context(), isl_schedule_tree_insert_domain(), isl_schedule_tree_insert_expansion(), isl_schedule_tree_insert_extension(), isl_schedule_tree_insert_filter(), isl_schedule_tree_insert_guard(), isl_schedule_tree_insert_mark(), isl_schedule_tree_is_anchored(), isl_schedule_tree_is_leaf(), isl_schedule_tree_is_subtree_anchored(), isl_schedule_tree_mark_get_id(), isl_schedule_tree_n_children(), isl_schedule_tree_pullback_union_pw_multi_aff(), isl_schedule_tree_replace_child(), isl_schedule_tree_reset_children(), isl_schedule_tree_reset_user(), isl_schedule_tree_sequence_splice(), isl_schedule_tree_set_children(), isl_schedule_tree_update_anchored(), isl_stream_read_schedule(), isl_stream_read_schedule_tree(), main(), read_band(), read_context(), read_domain(), read_expansion(), read_extension(), read_filter(), read_guard(), read_mark(), subtree_schedule_extend(), subtree_schedule_extend_child(), subtree_schedule_extend_from_children(), test_ast_gen1(), test_ast_gen2(), test_ast_gen3(), test_ast_gen4(), test_ast_gen5(), and update_ancestors().