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

23 views
Skip to first unread message

Michael Kruse via Phabricator

unread,
Mar 1, 2022, 6:44:10 PM3/1/22
to aeub...@google.com, siddu...@gmail.com, zhao...@quicinc.com, arph...@gmail.com, asbi...@google.com, bmah...@ca.ibm.com, poll...@googlegroups.com, wan...@loongson.cn, bhuvanend...@amd.com, yanli...@intel.com, lege...@outlook.com, micha...@web.de, doug...@gmail.com, jatin....@gmail.com, n...@google.com, wic...@vitalitystudios.com, michae...@gmail.com, phabr...@grosser.es, floria...@apple.com, david...@arm.com, ruilin...@amd.com, rsanthi...@gmail.com
Meinersbur retitled this revision from "[polly] Introduce -polly-print-* passes to replace -analyze" to "[polly] Introduce -polly-print-* passes to replace -analyze.".

Repository:
rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120782/new/

https://reviews.llvm.org/D120782

Arthur Eubanks via Phabricator

unread,
Mar 2, 2022, 2:38:14 PM3/2/22
to ll...@meinersbur.de, aeub...@google.com, siddu...@gmail.com, zhao...@quicinc.com, arph...@gmail.com, asbi...@google.com, bmah...@ca.ibm.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org, wan...@loongson.cn, bhuvanend...@amd.com, yanli...@intel.com, lege...@outlook.com, micha...@web.de, doug...@gmail.com, jatin....@gmail.com, n...@google.com, wic...@vitalitystudios.com, michae...@gmail.com, phabr...@grosser.es, floria...@apple.com, david...@arm.com, ruilin...@amd.com, rsanthi...@gmail.com
aeubanks added a comment.

for the remaining `-analyze -loops` tests, do the polly passes in those tests have new PM equivalents?
`-passes='print<loops>'` should be a suitable replacement for `-loops -analyze`

Arthur Eubanks via Phabricator

unread,
Mar 2, 2022, 2:38:27 PM3/2/22
to ll...@meinersbur.de, aeub...@google.com, siddu...@gmail.com, zhao...@quicinc.com, arph...@gmail.com, asbi...@google.com, bmah...@ca.ibm.com, poll...@googlegroups.com, wan...@loongson.cn, bhuvanend...@amd.com, yanli...@intel.com, lege...@outlook.com, micha...@web.de, doug...@gmail.com, jatin....@gmail.com, n...@google.com, wic...@vitalitystudios.com, michae...@gmail.com, phabr...@grosser.es, floria...@apple.com, david...@arm.com, ruilin...@amd.com, rsanthi...@gmail.com
aeubanks accepted this revision.
This revision is now accepted and ready to land.

Michael Kruse via Phabricator

unread,
Mar 2, 2022, 4:58:57 PM3/2/22
to aeub...@google.com, siddu...@gmail.com, zhao...@quicinc.com, arph...@gmail.com, asbi...@google.com, bmah...@ca.ibm.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org, wan...@loongson.cn, bhuvanend...@amd.com, yanli...@intel.com, lege...@outlook.com, micha...@web.de, doug...@gmail.com, jatin....@gmail.com, n...@google.com, wic...@vitalitystudios.com, michae...@gmail.com, phabr...@grosser.es, floria...@apple.com, david...@arm.com, ruilin...@amd.com, rsanthi...@gmail.com
Meinersbur added a comment.

In D120782#3355237 <https://reviews.llvm.org/D120782#3355237>, @aeubanks wrote:

> for the remaining `-analyze -loops` tests, do the polly passes in those tests have new PM equivalents?
> `-passes='print<loops>'` should be a suitable replacement for `-loops -analyze`



name=CodeGen/single_loop_param_less_equal.ll
; RUN: opt %loadPolly -polly-codegen -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS



name=CodeGen\loop_with_condition_nested.ll
; RUN: opt %loadPolly -basic-aa -polly-codegen -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS

`-polly-codegen` does not emit anything with `-analyze`. It is testing which loops after `-polly-codegen`. Therefore, this could be equivalent using the NPM:

; RUN: opt %loadPolly -passes="function(scop(polly-codegen),print<loops>)" -disable-output < %s 2>&1 | FileCheck %s -check-prefix=LOOPS

However, it is failing due to how differently the NPM works.

Arthur Eubanks via Phabricator

unread,
Mar 9, 2022, 3:08:37 AM3/9/22
to ll...@meinersbur.de, aeub...@google.com, siddu...@gmail.com, zhao...@quicinc.com, arph...@gmail.com, asbi...@google.com, bmah...@ca.ibm.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org, bhuvanend...@amd.com, yanli...@intel.com, lege...@outlook.com, micha...@web.de, doug...@gmail.com, jatin....@gmail.com, n...@google.com, wic...@vitalitystudios.com, michae...@gmail.com, phabr...@grosser.es, floria...@apple.com, david...@arm.com, ruilin...@amd.com, rsanthi...@gmail.com
aeubanks added a comment.

In D120782#3355541 <https://reviews.llvm.org/D120782#3355541>, @Meinersbur wrote:

> In D120782#3355237 <https://reviews.llvm.org/D120782#3355237>, @aeubanks wrote:
>
>> for the remaining `-analyze -loops` tests, do the polly passes in those tests have new PM equivalents?
>> `-passes='print<loops>'` should be a suitable replacement for `-loops -analyze`
>
>
>
> name=CodeGen/single_loop_param_less_equal.ll
> ; RUN: opt %loadPolly -polly-codegen -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS
>
>
>
> name=CodeGen\loop_with_condition_nested.ll
> ; RUN: opt %loadPolly -basic-aa -polly-codegen -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS
>
> `-polly-codegen` does not emit anything with `-analyze`. It is testing which loops after `-polly-codegen`. Therefore, this could be equivalent using the NPM:
>
> ; RUN: opt %loadPolly -passes="function(scop(polly-codegen),print<loops>)" -disable-output < %s 2>&1 | FileCheck %s -check-prefix=LOOPS
>
> However, it is failing due to how differently the NPM works.

based on local testing even something like `opt %loadPolly -basic-aa -polly-codegen < %s | opt -enable-new-pm=0 -loops -analyze` fails the same way. even `opt %loadPolly -basic-aa -polly-codegen -barrier -loops -analyze` does the same thing, so it seems like some sort of interaction between the scheduling of `Region` passes and the loop printing
`-debug-pass=Structure` doesn't show anything suspicious though

Pass Arguments: -targetlibinfo -tti -assumption-cache-tracker -profile-summary-info -domtree -basic-aa -loops -postdomtree -domfrontier -regions -scalar-evolution -lazy-branch-prob -lazy-block-freq -opt-remark-emitter -aa -polly-detect -polly-scops -polly-dependences -polly-ast -polly-codegen -verify
Target Library Information
Target Transform Information
Assumption Cache Tracker
Profile summary info
ModulePass Manager
FunctionPass Manager
Dominator Tree Construction
Basic Alias Analysis (stateless AA impl)
FunctionPass Printer: Basic Alias Analysis (stateless AA impl)
Natural Loop Information
Post-Dominator Tree Construction
Dominance Frontier Construction
Detect single entry single exit regions
Scalar Evolution Analysis
Lazy Branch Probability Analysis
Lazy Block Frequency Analysis
Optimization Remark Emitter
Function Alias Analysis Results
Polly - Detect static control parts (SCoPs)
Region Pass Manager
Polly - Create polyhedral description of Scops
Polly - Calculate dependences
Polly - Generate an AST from the SCoP (isl)
Polly - Create LLVM-IR from SCoPs
RegionPass Printer: Polly - Create LLVM-IR from SCoPs
FunctionPass Printer: Natural Loop Information
Module Verifier

and verifying the loop info doesn't show any issues

Michael Kruse via Phabricator

unread,
Mar 14, 2022, 11:28:19 AM3/14/22
to aeub...@google.com, siddu...@gmail.com, zhao...@quicinc.com, arph...@gmail.com, asbi...@google.com, bmah...@ca.ibm.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org, bhuvanend...@amd.com, yanli...@intel.com, lege...@outlook.com, micha...@web.de, doug...@gmail.com, jatin....@gmail.com, n...@google.com, wic...@vitalitystudios.com, michae...@gmail.com, phabr...@grosser.es, floria...@apple.com, david...@arm.com, ruilin...@amd.com, rsanthi...@gmail.com
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG5c0280813185: [polly] Introduce -polly-print-* passes to replace -analyze. (authored by Meinersbur).

Changed prior to commit:
https://reviews.llvm.org/D120782?vs=412275&id=415100#toc

Repository:
rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120782/new/

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...)

Michael Kruse via Phabricator

unread,
Mar 16, 2022, 12:20:59 AM3/16/22
to aeub...@google.com, siddu...@gmail.com, zhao...@quicinc.com, arph...@gmail.com, asbi...@google.com, bmah...@ca.ibm.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org, bhuvanend...@amd.com, yanli...@intel.com, lege...@outlook.com, micha...@web.de, doug...@gmail.com, jatin....@gmail.com, n...@google.com, wic...@vitalitystudios.com, michae...@gmail.com, phabr...@grosser.es, floria...@apple.com, david...@arm.com, ruilin...@amd.com, rsanthi...@gmail.com
Meinersbur added a comment.

In D120782#3369286 <https://reviews.llvm.org/D120782#3369286>, @aeubanks wrote:

> based on local testing even something like `opt %loadPolly -basic-aa -polly-codegen < %s | opt -enable-new-pm=0 -loops -analyze` fails the same way. even `opt %loadPolly -basic-aa -polly-codegen -barrier -loops -analyze` does the same thing

LoopInfo just prints the blocks it contains as they appear in the `LoopBase::Blocks` vector. The order is different between the depth-first order when LoopInfo is constructed from scratch, versus when preserved by adding/removing elements from the list. `LoopBase::verifyLoop` allows `Blocks` to be in a different order.
Reply all
Reply to author
Forward
0 new messages