[PATCH] D120782: [polly] Introduce -polly-print-* passes to replace -analyze

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 1 15:43:56 PST 2022


Meinersbur created this revision.
Meinersbur added a reviewer: aeubanks.
Meinersbur added a project: Polly.
Herald added a reviewer: bollu.
Herald added subscribers: bmahjour, asbirlea, arphaman, zzheng.
Herald added a project: All.
Meinersbur requested review of this revision.
Herald added a project: LLVM.

The `opt -analyze` option only works with the legacy pass manager and might be removed in the future, as explained in llvm.org/PR53733. This patch introduced -polly-print-* passes that print what the pass would print with the `-analyze` option and replaces all uses of `-analyze` in the regression tests.

There are two exceptions: `CodeGen\single_loop_param_less_equal.ll` and `CodeGen\loop_with_condition_nested.ll` use `-analyze on the `-loops` pass which is not part of Polly.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D120782

Files:
  llvm/tools/opt/opt.cpp
  polly/include/polly/CodeGen/IslAst.h
  polly/include/polly/DeLICM.h
  polly/include/polly/DependenceInfo.h
  polly/include/polly/FlattenSchedule.h
  polly/include/polly/ForwardOpTree.h
  polly/include/polly/JSONExporter.h
  polly/include/polly/LinkAllPasses.h
  polly/include/polly/PolyhedralInfo.h
  polly/include/polly/ScheduleOptimizer.h
  polly/include/polly/ScopDetection.h
  polly/include/polly/ScopInfo.h
  polly/include/polly/Simplify.h
  polly/lib/Analysis/DependenceInfo.cpp
  polly/lib/Analysis/PolyhedralInfo.cpp
  polly/lib/Analysis/ScopDetection.cpp
  polly/lib/Analysis/ScopInfo.cpp
  polly/lib/CodeGen/IslAst.cpp
  polly/lib/Exchange/JSONExporter.cpp
  polly/lib/Support/RegisterPasses.cpp
  polly/lib/Transform/DeLICM.cpp
  polly/lib/Transform/FlattenSchedule.cpp
  polly/lib/Transform/ForwardOpTree.cpp
  polly/lib/Transform/ScheduleOptimizer.cpp
  polly/lib/Transform/Simplify.cpp
  polly/test/CodeGen/20100622.ll
  polly/test/CodeGen/20100720-MultipleConditions.ll
  polly/test/CodeGen/MemAccess/bad_alignment.ll
  polly/test/CodeGen/MemAccess/create_arrays.ll
  polly/test/CodeGen/MemAccess/create_arrays_heap.ll
  polly/test/CodeGen/MemAccess/default_aligned_new_access_function.ll
  polly/test/CodeGen/MemAccess/map_scalar_access.ll
  polly/test/CodeGen/MemAccess/simple_analyze.ll
  polly/test/CodeGen/OpenMP/loop-body-references-outer-iv.ll
  polly/test/CodeGen/OpenMP/loop-body-references-outer-values-2.ll
  polly/test/CodeGen/OpenMP/loop-body-references-outer-values-3.ll
  polly/test/CodeGen/OpenMP/loop-body-references-outer-values.ll
  polly/test/CodeGen/OpenMP/loop-bounds-reference-outer-ids.ll
  polly/test/CodeGen/OpenMP/new_multidim_access.ll
  polly/test/CodeGen/OpenMP/reference-preceeding-loop.ll
  polly/test/CodeGen/OpenMP/single_loop.ll
  polly/test/CodeGen/OpenMP/single_loop_with_loop_invariant_baseptr.ll
  polly/test/CodeGen/OpenMP/two-parallel-loops-reference-outer-indvar.ll
  polly/test/CodeGen/conflict-between-loop-invariant-code-hosting-and-escape-map-computation.ll
  polly/test/CodeGen/constant_condition.ll
  polly/test/CodeGen/dominance_problem_after_early_codegen_bailout.ll
  polly/test/CodeGen/if-conditions-in-vector-code.ll
  polly/test/CodeGen/inner_scev_sdiv_in_lb.ll
  polly/test/CodeGen/invariant-load-dimension.ll
  polly/test/CodeGen/invariant_cannot_handle_void.ll
  polly/test/CodeGen/invariant_load_base_pointer_conditional_2.ll
  polly/test/CodeGen/invariant_load_not_executed_but_in_parameters.ll
  polly/test/CodeGen/invariant_load_parameters_cyclic_dependence.ll
  polly/test/CodeGen/invariant_verify_function_failed.ll
  polly/test/CodeGen/invariant_verify_function_failed_2.ll
  polly/test/CodeGen/loop_with_condition.ll
  polly/test/CodeGen/loop_with_condition_2.ll
  polly/test/CodeGen/loop_with_condition_ineq.ll
  polly/test/CodeGen/loop_with_condition_nested.ll
  polly/test/CodeGen/multiple_sai_fro_same_base_address.ll
  polly/test/CodeGen/no-overflow-tracking.ll
  polly/test/CodeGen/param_div_div_div_2.ll
  polly/test/CodeGen/phi_conditional_simple_1.ll
  polly/test/CodeGen/pointer-type-expressions-2.ll
  polly/test/CodeGen/pointer-type-expressions.ll
  polly/test/CodeGen/pointer-type-pointer-type-comparison.ll
  polly/test/CodeGen/pointer_rem.ll
  polly/test/CodeGen/reduction_2.ll
  polly/test/CodeGen/reduction_simple_binary.ll
  polly/test/CodeGen/region_exiting-domtree.ll
  polly/test/CodeGen/run-time-condition-with-scev-parameters.ll
  polly/test/CodeGen/sequential_loops.ll
  polly/test/CodeGen/simple_nonaffine_loop.ll
  polly/test/CodeGen/single_do_loop_int_max_iterations.ll
  polly/test/CodeGen/single_do_loop_int_param_iterations.ll
  polly/test/CodeGen/single_do_loop_ll_max_iterations.ll
  polly/test/CodeGen/single_do_loop_one_iteration.ll
  polly/test/CodeGen/single_do_loop_scev_replace.ll
  polly/test/CodeGen/single_loop.ll
  polly/test/CodeGen/single_loop_int_max_iterations.ll
  polly/test/CodeGen/single_loop_ll_max_iterations.ll
  polly/test/CodeGen/single_loop_one_iteration.ll
  polly/test/CodeGen/single_loop_param.ll
  polly/test/CodeGen/single_loop_param_less_equal.ll
  polly/test/CodeGen/single_loop_param_less_than.ll
  polly/test/CodeGen/single_loop_zero_iterations.ll
  polly/test/CodeGen/split_edge_of_exit.ll
  polly/test/CodeGen/test.ll
  polly/test/CodeGen/two-scops-in-row.ll
  polly/test/CodeGen/unpredictable-loop-unsynthesizable.ll
  polly/test/CodeGen/variant_load_empty_domain.ll
  polly/test/DeLICM/confused_order.ll
  polly/test/DeLICM/contradicting_assumed_context_and_domain.ll
  polly/test/DeLICM/load-in-cond-inf-loop.ll
  polly/test/DeLICM/map_memset_zero.ll
  polly/test/DeLICM/nomap_alreadymapped.ll
  polly/test/DeLICM/nomap_escaping.ll
  polly/test/DeLICM/nomap_occupied.ll
  polly/test/DeLICM/nomap_readonly.ll
  polly/test/DeLICM/nomap_spuriouswrite.ll
  polly/test/DeLICM/nomap_storagesize.ll
  polly/test/DeLICM/nomap_writewrite.ll
  polly/test/DeLICM/outofquota-reverseDomain.ll
  polly/test/DeLICM/pass_existence.ll
  polly/test/DeLICM/pr41656.ll
  polly/test/DeLICM/pr48783.ll
  polly/test/DeLICM/reduction.ll
  polly/test/DeLICM/reduction_constant_selfconflict.ll
  polly/test/DeLICM/reduction_looprotate.ll
  polly/test/DeLICM/reduction_looprotate_alwaystaken.ll
  polly/test/DeLICM/reduction_looprotate_gvnpre.ll
  polly/test/DeLICM/reduction_looprotate_gvnpre_cond1.ll
  polly/test/DeLICM/reduction_looprotate_gvnpre_cond2.ll
  polly/test/DeLICM/reduction_looprotate_gvnpre_nopreheader.ll
  polly/test/DeLICM/reduction_looprotate_hoisted.ll
  polly/test/DeLICM/reduction_looprotate_licm.ll
  polly/test/DeLICM/reduction_looprotate_licm2.ll
  polly/test/DeLICM/reduction_looprotate_licm_double_write.ll
  polly/test/DeLICM/reduction_looprotate_licm_nopreheader.ll
  polly/test/DeLICM/reduction_looprotate_load.ll
  polly/test/DeLICM/reduction_looprotate_loopguard_gvnpre.ll
  polly/test/DeLICM/reduction_looprotate_loopguard_licm1.ll
  polly/test/DeLICM/reduction_looprotate_loopguard_licm2.ll
  polly/test/DeLICM/reduction_looprotate_loopguard_licm3.ll
  polly/test/DeLICM/reduction_looprotate_readonly.ll
  polly/test/DeLICM/reduction_looprotate_synthesizable.ll
  polly/test/DeLICM/reduction_looprotate_undef.ll
  polly/test/DeLICM/reduction_overapproximate.ll
  polly/test/DeLICM/reduction_preheader.ll
  polly/test/DeLICM/reduction_unrelatedunusual.ll
  polly/test/DeLICM/reject_loadafterstore.ll
  polly/test/DeLICM/reject_outofquota.ll
  polly/test/DeLICM/reject_storeafterstore.ll
  polly/test/DeLICM/reject_storeinsubregion.ll
  polly/test/DeLICM/reject_unusualstore.ll
  polly/test/DeLICM/skip_maywrite.ll
  polly/test/DeLICM/skip_notinloop.ll
  polly/test/DeLICM/skip_scalaraccess.ll
  polly/test/DeadCodeElimination/chained_iterations.ll
  polly/test/DeadCodeElimination/chained_iterations_2.ll
  polly/test/DeadCodeElimination/computeout.ll
  polly/test/DeadCodeElimination/dead_iteration_elimination.ll
  polly/test/DeadCodeElimination/non-affine-affine-mix.ll
  polly/test/DeadCodeElimination/non-affine.ll
  polly/test/DeadCodeElimination/null_schedule.ll
  polly/test/DependenceInfo/computeout.ll
  polly/test/DependenceInfo/different_schedule_dimensions.ll
  polly/test/DependenceInfo/do_pluto_matmult.ll
  polly/test/DependenceInfo/fine_grain_dep_0.ll
  polly/test/DependenceInfo/generate_may_write_dependence_info.ll
  polly/test/DependenceInfo/infeasible_context.ll
  polly/test/DependenceInfo/may_writes_do_not_block_must_writes_for_war.ll
  polly/test/DependenceInfo/reduction_complex_location.ll
  polly/test/DependenceInfo/reduction_dependences_equal_non_reduction_dependences.ll
  polly/test/DependenceInfo/reduction_dependences_not_null.ll
  polly/test/DependenceInfo/reduction_mixed_reduction_and_non_reduction_dependences.ll
  polly/test/DependenceInfo/reduction_multiple_loops_array_sum.ll
  polly/test/DependenceInfo/reduction_multiple_loops_array_sum_2.ll
  polly/test/DependenceInfo/reduction_multiple_loops_array_sum_3.ll
  polly/test/DependenceInfo/reduction_multiple_reductions.ll
  polly/test/DependenceInfo/reduction_multiple_reductions_2.ll
  polly/test/DependenceInfo/reduction_only_reduction_like_access.ll
  polly/test/DependenceInfo/reduction_partially_escaping_intermediate_in_other_stmt.ll
  polly/test/DependenceInfo/reduction_privatization_deps.ll
  polly/test/DependenceInfo/reduction_privatization_deps_2.ll
  polly/test/DependenceInfo/reduction_privatization_deps_3.ll
  polly/test/DependenceInfo/reduction_privatization_deps_4.ll
  polly/test/DependenceInfo/reduction_privatization_deps_5.ll
  polly/test/DependenceInfo/reduction_sequence.ll
  polly/test/DependenceInfo/reduction_simple_iv.ll
  polly/test/DependenceInfo/reduction_simple_iv_debug_wrapped_dependences.ll
  polly/test/DependenceInfo/reduction_simple_privatization_deps_2.ll
  polly/test/DependenceInfo/reduction_simple_privatization_deps_w_parameter.ll
  polly/test/DependenceInfo/reduction_two_reductions_different_rloops.ll
  polly/test/DependenceInfo/sequential_loops.ll
  polly/test/FlattenSchedule/gemm.ll
  polly/test/ForwardOpTree/atax.ll
  polly/test/ForwardOpTree/changed-kind.ll
  polly/test/ForwardOpTree/forward_from_region.ll
  polly/test/ForwardOpTree/forward_hoisted.ll
  polly/test/ForwardOpTree/forward_instruction.ll
  polly/test/ForwardOpTree/forward_into_region.ll
  polly/test/ForwardOpTree/forward_into_region_redundant_use.ll
  polly/test/ForwardOpTree/forward_load.ll
  polly/test/ForwardOpTree/forward_load_differentarray.ll
  polly/test/ForwardOpTree/forward_load_double_write.ll
  polly/test/ForwardOpTree/forward_load_fromloop.ll
  polly/test/ForwardOpTree/forward_load_indirect.ll
  polly/test/ForwardOpTree/forward_load_memset_after.ll
  polly/test/ForwardOpTree/forward_load_memset_before.ll
  polly/test/ForwardOpTree/forward_load_tripleuse.ll
  polly/test/ForwardOpTree/forward_load_unrelatedunusual.ll
  polly/test/ForwardOpTree/forward_phi_load.ll
  polly/test/ForwardOpTree/forward_readonly.ll
  polly/test/ForwardOpTree/forward_reusue.ll
  polly/test/ForwardOpTree/forward_store.ll
  polly/test/ForwardOpTree/forward_synthesizable_definloop.ll
  polly/test/ForwardOpTree/forward_synthesizable_indvar.ll
  polly/test/ForwardOpTree/forward_synthesizable_useinloop.ll
  polly/test/ForwardOpTree/forward_transitive.ll
  polly/test/ForwardOpTree/jacobi-1d.ll
  polly/test/ForwardOpTree/noforward_from_region.ll
  polly/test/ForwardOpTree/noforward_load_conditional.ll
  polly/test/ForwardOpTree/noforward_load_writebetween.ll
  polly/test/ForwardOpTree/noforward_outofquota.ll
  polly/test/ForwardOpTree/noforward_partial.ll
  polly/test/ForwardOpTree/noforward_phi.ll
  polly/test/ForwardOpTree/noforward_selfrefphi.ll
  polly/test/ForwardOpTree/noforward_sideffects.ll
  polly/test/ForwardOpTree/noforward_synthesizable_unknownit.ll
  polly/test/ForwardOpTree/out-of-quota1.ll
  polly/test/GPGPU/add-scalars-in-scop-to-kills.ll
  polly/test/GPGPU/double-parallel-loop.ll
  polly/test/GPGPU/failing-invariant-load-handling.ll
  polly/test/GPGPU/intrinsic-copied-into-kernel.ll
  polly/test/GPGPU/invariant-load-array-access.ll
  polly/test/GPGPU/invariant-load-hoisting-of-array.ll
  polly/test/GPGPU/invariant-load-hoisting-with-variable-bounds.ll
  polly/test/GPGPU/invariant-load-hoisting-with-variable-lower-bound.ll
  polly/test/GPGPU/invariant-load-hoisting-with-variable-upper-bound.ll
  polly/test/GPGPU/invariant-load-hoisting.ll
  polly/test/GPGPU/invariant-load-of-scalar.ll
  polly/test/GPGPU/libdevice-functions-copied-into-kernel.ll
  polly/test/GPGPU/loops-outside-scop.ll
  polly/test/GPGPU/managed-memory-rewrite-alloca.ll
  polly/test/GPGPU/managed-memory-rewrite-malloc-free-inside-constexpr.ll
  polly/test/GPGPU/managed-memory-rewrite-malloc-free.ll
  polly/test/GPGPU/privatization-simple.ll
  polly/test/GPGPU/privatization.ll
  polly/test/GPGPU/scalar-writes-in-scop-requires-abort.ll
  polly/test/GPGPU/simple-managed-memory-rewrite.ll
  polly/test/GPGPU/unknown-fn-call-not-copied-into-kernel.ll
  polly/test/IstAstInfo/OpenMP/multiple_loops_outer_parallel.ll
  polly/test/IstAstInfo/OpenMP/nested_loop_both_parallel.ll
  polly/test/IstAstInfo/OpenMP/nested_loop_both_parallel_parametric.ll
  polly/test/IstAstInfo/OpenMP/nested_loop_inner_parallel.ll
  polly/test/IstAstInfo/OpenMP/nested_loop_outer_parallel.ll
  polly/test/IstAstInfo/OpenMP/single_loop_param_non_parallel.ll
  polly/test/IstAstInfo/OpenMP/single_loop_param_parallel.ll
  polly/test/IstAstInfo/OpenMP/single_loop_param_parallel_computeout.ll
  polly/test/IstAstInfo/alias_checks_with_empty_context.ll
  polly/test/IstAstInfo/alias_simple_1.ll
  polly/test/IstAstInfo/alias_simple_2.ll
  polly/test/IstAstInfo/alias_simple_3.ll
  polly/test/IstAstInfo/aliasing_arrays_with_identical_base.ll
  polly/test/IstAstInfo/aliasing_multiple_alias_groups.ll
  polly/test/IstAstInfo/aliasing_parametric_simple_1.ll
  polly/test/IstAstInfo/aliasing_parametric_simple_2.ll
  polly/test/IstAstInfo/dependence_distance_constant.ll
  polly/test/IstAstInfo/dependence_distance_minimal.ll
  (620 more files...)



More information about the llvm-commits mailing list