[PATCH] D45066: [Polly] [ScopInfo] Remove bail out condition in buildMinMaxAccess()

SAHIL GIRISH YERAWAR via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 1 02:28:24 PDT 2018


cs15btech11044 marked an inline comment as done.
cs15btech11044 added inline comments.


================
Comment at: lib/Analysis/ScopInfo.cpp:2304
 
-  Set = Set.remove_divs();
-
+  Set = Set.simple_hull();
   if (isl_set_n_basic_set(Set.get()) >= MaxDisjunctsInDomain)
----------------
Meinersbur wrote:
> Did you try with `affine_hull` as well?
Yes, I had tried the same patch with `simple_hull`  replaced by  `affine_hull`. But it fails on a larger set of regression tests.
List of failed regression tests:

```
Failing Tests (149):
    Polly :: CodeGen/OpenMP/floord-as-argument-to-subfunction.ll
    Polly :: CodeGen/stride_detection.ll
    Polly :: DependenceInfo/fine_grain_dep_0.ll
    Polly :: DependenceInfo/generate_may_write_dependence_info.ll
    Polly :: ForwardOpTree/atax.ll
    Polly :: Isl/Ast/alias_simple_1.ll
    Polly :: Isl/Ast/alias_simple_2.ll
    Polly :: Isl/Ast/alias_simple_3.ll
    Polly :: Isl/Ast/aliasing_arrays_with_identical_base.ll
    Polly :: Isl/Ast/aliasing_multiple_alias_groups.ll
    Polly :: Isl/Ast/aliasing_parametric_simple_1.ll
    Polly :: Isl/Ast/aliasing_parametric_simple_2.ll
    Polly :: Isl/CodeGen/MemAccess/create_arrays.ll
    Polly :: Isl/CodeGen/MemAccess/create_arrays_heap.ll
    Polly :: Isl/CodeGen/MemAccess/different_types.ll
    Polly :: Isl/CodeGen/MemAccess/multiple_types.ll
    Polly :: Isl/CodeGen/OpenMP/alias-metadata.ll
    Polly :: Isl/CodeGen/OpenMP/invariant_base_pointer_preloaded_pass_only_needed.ll
    Polly :: Isl/CodeGen/OpenMP/mapped-phi-access.ll
    Polly :: Isl/CodeGen/OpenMP/recomputed-srem.ll
    Polly :: Isl/CodeGen/alias-check-multi-dim.ll
    Polly :: Isl/CodeGen/aliasing_different_base_and_access_type.ll
    Polly :: Isl/CodeGen/aliasing_different_pointer_types.ll
    Polly :: Isl/CodeGen/aliasing_multidimensional_access.ll
    Polly :: Isl/CodeGen/aliasing_parametric_simple_1.ll
    Polly :: Isl/CodeGen/aliasing_parametric_simple_2.ll
    Polly :: Isl/CodeGen/aliasing_struct_element.ll
    Polly :: Isl/CodeGen/annotated_alias_scopes.ll
    Polly :: Isl/CodeGen/exprModDiv.ll
    Polly :: Isl/CodeGen/fortran_array_runtime_size_generation.ll
    Polly :: Isl/CodeGen/inner_scev_sdiv_in_rtc.ll
    Polly :: Isl/CodeGen/inv-load-lnt-crash-wrong-order-3.ll
    Polly :: Isl/CodeGen/invariant_load_base_pointer_conditional_2.ll
    Polly :: Isl/CodeGen/invariant_load_condition.ll
    Polly :: Isl/CodeGen/invariant_load_escaping.ll
    Polly :: Isl/CodeGen/invariant_load_escaping_second_scop.ll
    Polly :: Isl/CodeGen/invariant_load_loop_ub.ll
    Polly :: Isl/CodeGen/invariant_load_scalar_escape_alloca_sharing.ll
    Polly :: Isl/CodeGen/invariant_loads_from_struct_with_different_types_1.ll
    Polly :: Isl/CodeGen/multidim_alias_check.ll
    Polly :: Isl/CodeGen/multiple-types-invariant-load.ll
    Polly :: Isl/CodeGen/no-overflow-tracking.ll
    Polly :: Isl/CodeGen/non-affine-subregion-dominance-reuse.ll
    Polly :: Isl/CodeGen/non-affine-update.ll
    Polly :: Isl/CodeGen/partial_write_in_region.ll
    Polly :: Isl/CodeGen/scev_expansion_in_nonaffine.ll
    Polly :: Isl/CodeGen/stack-overflow-in-load-hoisting.ll
    Polly :: Isl/CodeGen/stmt_split_no_dependence.ll
    Polly :: Isl/CodeGen/test-invalid-operands-for-select-2.ll
    Polly :: Isl/CodeGen/test-invalid-operands-for-select.ll
    Polly :: JSONExporter/ImportArrays/ImportArrays-Mispelled-type.ll
    Polly :: JSONExporter/ImportArrays/ImportArrays-Negative-size.ll
    Polly :: JSONExporter/ImportArrays/ImportArrays-No-name.ll
    Polly :: JSONExporter/ImportArrays/ImportArrays-No-sizes-key.ll
    Polly :: JSONExporter/ImportArrays/ImportArrays-No-type-key.ll
    Polly :: MaximalStaticExpansion/load_after_store_same_statement.ll
    Polly :: MaximalStaticExpansion/read_from_original.ll
    Polly :: MaximalStaticExpansion/too_many_writes.ll
    Polly :: MaximalStaticExpansion/working_deps_between_inners.ll
    Polly :: MaximalStaticExpansion/working_deps_between_inners_phi.ll
    Polly :: MaximalStaticExpansion/working_expansion.ll
    Polly :: MaximalStaticExpansion/working_expansion_multiple_dependences_per_statement.ll
    Polly :: MaximalStaticExpansion/working_expansion_multiple_instruction_per_statement.ll
    Polly :: MaximalStaticExpansion/working_value_expansion.ll
    Polly :: ScheduleOptimizer/ensure-correct-tile-sizes.ll
    Polly :: ScheduleOptimizer/full_partial_tile_separation.ll
    Polly :: ScheduleOptimizer/mat_mul_pattern_data_layout.ll
    Polly :: ScheduleOptimizer/mat_mul_pattern_data_layout_2.ll
    Polly :: ScheduleOptimizer/one-dimensional-band.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts-after-delicm.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_10.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_11.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_12.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_13.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_14.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_2.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_3.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_4.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_5.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_6.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_7.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_8.ll
    Polly :: ScheduleOptimizer/pattern-matching-based-opts_9.ll
    Polly :: ScheduleOptimizer/tile_after_fusion.ll
    Polly :: ScopDetect/indvars.ll
    Polly :: ScopInfo/Alias-0.ll
    Polly :: ScopInfo/Alias-1.ll
    Polly :: ScopInfo/Alias-2.ll
    Polly :: ScopInfo/Alias-3.ll
    Polly :: ScopInfo/Alias-4.ll
    Polly :: ScopInfo/NonAffine/invariant_loads_dependent_in_non_affine_region.ll
    Polly :: ScopInfo/NonAffine/non_affine_loop_condition.ll
    Polly :: ScopInfo/NonAffine/non_affine_region_guaranteed_non-entry.ll
    Polly :: ScopInfo/aliasing_conditional_alias_groups_2.ll
    Polly :: ScopInfo/aliasing_many_arrays_to_compare.ll
    Polly :: ScopInfo/aliasing_many_parameters_not_all_involved.ll
    Polly :: ScopInfo/aliasing_many_read_only_acesses.ll
    Polly :: ScopInfo/aliasing_multiple_alias_groups.ll
    Polly :: ScopInfo/aliasing_with_non_affine_access.ll
    Polly :: ScopInfo/complex-expression.ll
    Polly :: ScopInfo/complex-successor-structure-2.ll
    Polly :: ScopInfo/const_srem_sdiv.ll
    Polly :: ScopInfo/constant_functions_multi_dim.ll
    Polly :: ScopInfo/invariant-loads-leave-read-only-statements.ll
    Polly :: ScopInfo/invariant_load_access_classes_different_base_type.ll
    Polly :: ScopInfo/invariant_load_access_classes_different_base_type_escaping.ll
    Polly :: ScopInfo/invariant_load_access_classes_different_base_type_same_pointer.ll
    Polly :: ScopInfo/invariant_load_access_classes_different_base_type_same_pointer_escaping.ll
    Polly :: ScopInfo/invariant_load_canonicalize_array_baseptrs_4.ll
    Polly :: ScopInfo/invariant_load_canonicalize_array_baseptrs_4b.ll
    Polly :: ScopInfo/invariant_load_canonicalize_array_baseptrs_5.ll
    Polly :: ScopInfo/invariant_load_condition.ll
    Polly :: ScopInfo/invariant_load_dereferenceable.ll
    Polly :: ScopInfo/invariant_load_distinct_parameter_valuations.ll
    Polly :: ScopInfo/invariant_load_loop_ub.ll
    Polly :: ScopInfo/invariant_load_zext_parameter-2.ll
    Polly :: ScopInfo/invariant_load_zext_parameter.ll
    Polly :: ScopInfo/long-compile-time-alias-analysis.ll
    Polly :: ScopInfo/long-sequence-of-error-blocks.ll
    Polly :: ScopInfo/mismatching-array-dimensions.ll
    Polly :: ScopInfo/multidim_fixedsize_different_dimensionality.ll
    Polly :: ScopInfo/multidim_parameter_addrec_product.ll
    Polly :: ScopInfo/multidim_with_bitcast.ll
    Polly :: ScopInfo/multiple-types-access-offset-not-dividable-by-element-size.ll
    Polly :: ScopInfo/multiple-types.ll
    Polly :: ScopInfo/non-precise-inv-load-1.ll
    Polly :: ScopInfo/non-precise-inv-load-2.ll
    Polly :: ScopInfo/non-precise-inv-load-3.ll
    Polly :: ScopInfo/non-precise-inv-load-4.ll
    Polly :: ScopInfo/non-precise-inv-load-6.ll
    Polly :: ScopInfo/non-pure-function-calls-causes-dead-blocks.ll
    Polly :: ScopInfo/non-pure-function-calls.ll
    Polly :: ScopInfo/parameter-constant-division.ll
    Polly :: ScopInfo/partially_invariant_load_2.ll
    Polly :: ScopInfo/remarks.ll
    Polly :: ScopInfo/run-time-check-many-array-disjuncts.ll
    Polly :: ScopInfo/run-time-check-many-parameters.ll
    Polly :: ScopInfo/run-time-check-read-only-arrays.ll
    Polly :: ScopInfo/stmt_split_exit_of_region_stmt.ll
    Polly :: ScopInfo/stmt_split_no_dependence.ll
    Polly :: ScopInfo/stmt_split_on_store.ll
    Polly :: ScopInfo/stmt_split_on_synthesizable.ll
    Polly :: ScopInfo/stmt_split_phi_in_beginning_bb.ll
    Polly :: ScopInfo/stmt_split_phi_in_stmt.ll
    Polly :: ScopInfo/stmt_split_scalar_dependence.ll
    Polly :: ScopInfo/stmt_split_within_loop.ll
    Polly :: ScopInfo/unnamed_stmts.ll
    Polly :: Simplify/gemm.ll

  Expected Passes: 894
  Expected Failures: 13
  Unsupported Tests: 73
  Unexpected Failures: 149
```
All of them fail on the same assertion statement i.e ScopInfo.cpp:2345


Repository:
  rPLO Polly

https://reviews.llvm.org/D45066





More information about the llvm-commits mailing list