[PATCH] D16223: Update to ISL 0.16.1

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 15 07:51:41 PST 2016


LGTM.

The difference is because the isl generated code has changed
from:

       for (int c0 = 0; c0 < floord(tmp, 2) - 100; c0 += 1)
         Stmt_stmt_P(c0);
       if (tmp <= 201)
         Stmt_stmt_P(0);

to:
       Stmt_stmt_P(0);
       for (int c0 = 1; c0 < floord(tmp, 2) - 100; c0 += 1)
         Stmt_stmt_P(c0);

The instruction that has move is generated before the loop. In
the old code, this is polly.start. In the new code, this is 
polly.Stmt.stmt.P.

Thank you for updating isl so quickly!

Best,
Tobias


On 01/15/2016 04:28 PM, Michael Kruse wrote:
> Meinersbur created this revision.
> Meinersbur added reviewers: grosser, jdoerfert.
> Meinersbur added subscribers: pollydev, llvm-commits.
>
> Not committing right away because I am unsure about unit test invariant_load_escaping_second_scop.ll. What's its purpose? Why does updating ISL move where instructions are generated?
>
> http://reviews.llvm.org/D16223
>
> Files:
>    lib/External/isl/AUTHORS
>    lib/External/isl/ChangeLog
>    lib/External/isl/GIT_HEAD_ID
>    lib/External/isl/Makefile.am
>    lib/External/isl/Makefile.in
>    lib/External/isl/configure
>    lib/External/isl/configure.ac
>    lib/External/isl/doc/manual.pdf
>    lib/External/isl/doc/user.pod
>    lib/External/isl/include/isl/aff.h
>    lib/External/isl/include/isl/aff_type.h
>    lib/External/isl/include/isl/ctx.h
>    lib/External/isl/include/isl/flow.h
>    lib/External/isl/include/isl/map.h
>    lib/External/isl/include/isl/multi.h
>    lib/External/isl/include/isl/point.h
>    lib/External/isl/include/isl/polynomial.h
>    lib/External/isl/include/isl/schedule.h
>    lib/External/isl/include/isl/schedule_node.h
>    lib/External/isl/include/isl/schedule_type.h
>    lib/External/isl/include/isl/set.h
>    lib/External/isl/include/isl/space.h
>    lib/External/isl/include/isl/union_map.h
>    lib/External/isl/include/isl/union_set.h
>    lib/External/isl/include/isl/val.h
>    lib/External/isl/interface/all.h
>    lib/External/isl/isl_aff.c
>    lib/External/isl/isl_affine_hull.c
>    lib/External/isl/isl_ast_codegen.c
>    lib/External/isl/isl_coalesce.c
>    lib/External/isl/isl_config.h.in
>    lib/External/isl/isl_convex_hull.c
>    lib/External/isl/isl_flow.c
>    lib/External/isl/isl_input.c
>    lib/External/isl/isl_local_space.c
>    lib/External/isl/isl_local_space_private.h
>    lib/External/isl/isl_map.c
>    lib/External/isl/isl_map_private.h
>    lib/External/isl/isl_map_simplify.c
>    lib/External/isl/isl_mat.c
>    lib/External/isl/isl_morph.c
>    lib/External/isl/isl_multi_templ.c
>    lib/External/isl/isl_output.c
>    lib/External/isl/isl_output_private.h
>    lib/External/isl/isl_point.c
>    lib/External/isl/isl_printer.c
>    lib/External/isl/isl_printer_private.h
>    lib/External/isl/isl_schedule.c
>    lib/External/isl/isl_schedule_node.c
>    lib/External/isl/isl_schedule_node_private.h
>    lib/External/isl/isl_scheduler.c
>    lib/External/isl/isl_space.c
>    lib/External/isl/isl_tab.c
>    lib/External/isl/isl_test.c
>    lib/External/isl/isl_transitive_closure.c
>    lib/External/isl/isl_union_map.c
>    lib/External/isl/isl_union_templ.c
>    lib/External/isl/print_templ.c
>    lib/External/isl/test_inputs/codegen/cloog/dealII.c
>    lib/External/isl/test_inputs/codegen/cloog/faber.c
>    lib/External/isl/test_inputs/codegen/cloog/jacobi-shared.c
>    lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.c
>    lib/External/isl/test_inputs/codegen/isolate7.c
>    lib/External/isl/test_inputs/codegen/omega/dagstuhl1-1.c
>    lib/External/isl/test_inputs/codegen/omega/lefur03-0.c
>    lib/External/isl/test_inputs/codegen/omega/lefur04-0.c
>    lib/External/isl/test_inputs/codegen/omega/p.delft2-0.c
>    lib/External/isl/test_inputs/codegen/omega/ts1d-check0-0.c
>    lib/External/isl/test_inputs/codegen/pldi2012/figure8_b.c
>    lib/External/isl/test_inputs/codegen/redundant.c
>    lib/External/isl/test_inputs/codegen/separate2.c
>    lib/External/isl/test_inputs/codegen/separation_class2.c
>    lib/External/isl/test_inputs/codegen/unroll3.c
>    lib/External/isl/test_inputs/codegen/unroll4.c
>    test/DependenceInfo/computeout.ll
>    test/DependenceInfo/do_pluto_matmult.ll
>    test/DependenceInfo/reduction_complex_location.ll
>    test/DependenceInfo/reduction_dependences_equal_non_reduction_dependences.ll
>    test/DependenceInfo/reduction_mixed_reduction_and_non_reduction_dependences.ll
>    test/DependenceInfo/reduction_multiple_loops_array_sum.ll
>    test/DependenceInfo/reduction_multiple_loops_array_sum_2.ll
>    test/DependenceInfo/reduction_multiple_loops_array_sum_3.ll
>    test/DependenceInfo/reduction_multiple_reductions.ll
>    test/DependenceInfo/reduction_multiple_reductions_2.ll
>    test/DependenceInfo/reduction_partially_escaping_intermediate_in_other_stmt.ll
>    test/DependenceInfo/reduction_privatization_deps.ll
>    test/DependenceInfo/reduction_privatization_deps_2.ll
>    test/DependenceInfo/reduction_privatization_deps_3.ll
>    test/DependenceInfo/reduction_privatization_deps_4.ll
>    test/DependenceInfo/reduction_privatization_deps_5.ll
>    test/DependenceInfo/reduction_simple_iv.ll
>    test/DependenceInfo/reduction_simple_iv_debug_wrapped_dependences.ll
>    test/DependenceInfo/reduction_simple_privatization_deps_2.ll
>    test/DependenceInfo/reduction_simple_privatization_deps_w_parameter.ll
>    test/DependenceInfo/reduction_two_reductions_different_rloops.ll
>    test/DependenceInfo/sequential_loops.ll
>    test/Isl/CodeGen/exprModDiv.ll
>    test/Isl/CodeGen/inner_scev_sdiv_in_lb.ll
>    test/Isl/CodeGen/invariant_load_escaping_second_scop.ll
>    test/ScheduleOptimizer/full_partial_tile_separation.ll
>    test/ScopInfo/20111108-Parameter-not-detected.ll
>    test/ScopInfo/NonAffine/div_backedge.ll
>    test/ScopInfo/NonAffine/div_domain.ll
>    test/ScopInfo/NonAffine/modulo_backedge.ll
>    test/ScopInfo/NonAffine/modulo_domain.ll
>    test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_1.ll
>    test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_2.ll
>    test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_3.ll
>    test/ScopInfo/NonAffine/non_affine_access_with_range_2.ll
>    test/ScopInfo/NonAffine/non_affine_but_sdiv.ll
>    test/ScopInfo/NonAffine/non_affine_but_srem.ll
>    test/ScopInfo/NonAffine/non_affine_conditional_surrounding_affine_loop.ll
>    test/ScopInfo/NonAffine/non_affine_conditional_surrounding_non_affine_loop.ll
>    test/ScopInfo/NonAffine/non_affine_float_compare.ll
>    test/ScopInfo/NonAffine/non_affine_loop_condition.ll
>    test/ScopInfo/NonAffine/non_affine_loop_used_later.ll
>    test/ScopInfo/NonAffine/non_affine_parametric_loop.ll
>    test/ScopInfo/assume_gep_bounds_2.ll
>    test/ScopInfo/cfg_consequences.ll
>    test/ScopInfo/complex-loop-nesting.ll
>    test/ScopInfo/cond_constant_in_loop.ll
>    test/ScopInfo/eager-binary-and-or-conditions.ll
>    test/ScopInfo/exit_phi_accesses-2.ll
>    test/ScopInfo/exit_phi_accesses.ll
>    test/ScopInfo/intra-non-affine-stmt-phi-node.ll
>    test/ScopInfo/intra_and_inter_bb_scalar_dep.ll
>    test/ScopInfo/invariant-loads-leave-read-only-statements.ll
>    test/ScopInfo/invariant_load_access_classes_different_base_type_escaping.ll
>    test/ScopInfo/invariant_load_access_classes_different_base_type_same_pointer.ll
>    test/ScopInfo/invariant_load_access_classes_different_base_type_same_pointer_escaping.ll
>    test/ScopInfo/invariant_loads_complicated_dependences.ll
>    test/ScopInfo/invariant_loop_bounds.ll
>    test/ScopInfo/invariant_same_loop_bound_multiple_times-1.ll
>    test/ScopInfo/invariant_same_loop_bound_multiple_times-2.ll
>    test/ScopInfo/isl_trip_count_01.ll
>    test/ScopInfo/isl_trip_count_03.ll
>    test/ScopInfo/isl_trip_count_multiple_exiting_blocks.ll
>    test/ScopInfo/long-sequence-of-error-blocks.ll
>    test/ScopInfo/loop_affine_bound_0.ll
>    test/ScopInfo/loop_affine_bound_1.ll
>    test/ScopInfo/loop_affine_bound_2.ll
>    test/ScopInfo/loop_carry.ll
>    test/ScopInfo/many-scalar-dependences.ll
>    test/ScopInfo/multidim_2d_outer_parametric_offset.ll
>    test/ScopInfo/multidim_2d_parametric_array_static_loop_bounds.ll
>    test/ScopInfo/multidim_3d_parametric_array_static_loop_bounds.ll
>    test/ScopInfo/multidim_fixedsize_different_dimensionality.ll
>    test/ScopInfo/multidim_fortran_2d_params.ll
>    test/ScopInfo/multidim_fortran_srem.ll
>    test/ScopInfo/multidim_ivs_and_integer_offsets_3d.ll
>    test/ScopInfo/multidim_ivs_and_parameteric_offsets_3d.ll
>    test/ScopInfo/multidim_nested_start_integer.ll
>    test/ScopInfo/multidim_only_ivs_2d.ll
>    test/ScopInfo/multidim_only_ivs_3d.ll
>    test/ScopInfo/multidim_only_ivs_3d_cast.ll
>    test/ScopInfo/multidim_only_ivs_3d_reverse.ll
>    test/ScopInfo/multidim_single_and_multidim_array.ll
>    test/ScopInfo/multidim_srem.ll
>    test/ScopInfo/multiple-binary-or-conditions.ll
>    test/ScopInfo/multiple_exiting_blocks.ll
>    test/ScopInfo/multiple_exiting_blocks_two_loop.ll
>    test/ScopInfo/multiple_latch_blocks.ll
>    test/ScopInfo/nested-loops.ll
>    test/ScopInfo/non_affine_access.ll
>    test/ScopInfo/non_affine_region_1.ll
>    test/ScopInfo/non_affine_region_2.ll
>    test/ScopInfo/non_affine_region_3.ll
>    test/ScopInfo/non_affine_region_4.ll
>    test/ScopInfo/phi_condition_modeling_2.ll
>    test/ScopInfo/phi_loop_carried_float.ll
>    test/ScopInfo/phi_scalar_simple_1.ll
>    test/ScopInfo/phi_scalar_simple_2.ll
>    test/ScopInfo/pointer-used-as-base-pointer-and-scalar-read.ll
>    test/ScopInfo/ranged_parameter.ll
>    test/ScopInfo/ranged_parameter_wrap.ll
>    test/ScopInfo/read-only-scalar-used-in-phi.ll
>    test/ScopInfo/read-only-statements.ll
>    test/ScopInfo/remarks.ll
>    test/ScopInfo/scalar.ll
>    test/ScopInfo/simple_loop_1.ll
>    test/ScopInfo/switch-1.ll
>    test/ScopInfo/switch-2.ll
>    test/ScopInfo/switch-3.ll
>    test/ScopInfo/switch-4.ll
>    test/ScopInfo/switch-5.ll
>    test/ScopInfo/switch-6.ll
>    test/ScopInfo/switch-7.ll
>    test/ScopInfo/tempscop-printing.ll
>    test/ScopInfo/two-loops-right-after-each-other.ll
>    test/ScopInfo/unsigned-condition.ll
>    test/ScopInfo/user_context.ll
>    test/ScopInfo/user_provided_assumptions.ll
>    test/ScopInfo/user_provided_non_dominating_assumptions.ll
>    test/ScopInfo/wraping_signed_expr_2.ll
>    test/ScopInfo/wraping_signed_expr_4.ll
>    test/ScopInfo/wraping_signed_expr_5.ll
>



More information about the llvm-commits mailing list