llvm-project/polly/test/ScopInfo
Johannes Doerfert 883f8c1d2f Use modulo semantic to generate non-integer-overflow assumptions
This will allow to generate non-wrap assumptions for integer expressions
  that are part of the SCoP. We compare the common isl representation of
  the expression with one computed with modulo semantic. For all parameter
  combinations they are not equal we can have integer overflows.

  The nsw flags are respected when the modulo representation is computed,
  nuw and nw flags are ignored for now.

  In order to not increase compile time to much, the non-wrap assumptions
  are collected in a separate boundary context instead of the assumed
  context. This helps compile time as the boundary context can become
  complex and it is therefor not advised to use it in other operations
  except runtime check generation. However, the assumed context is e.g.,
  used to tighten dependences. While the boundary context might help to
  tighten the assumed context it is doubtful that it will help in practice
  (it does not effect lnt much) as the boundary (or no-wrap assumptions)
  only restrict the very end of the possible value range of parameters.

  PET uses a different approach to compute the no-wrap context, though lnt runs
  have shown that this version performs slightly better for us.

llvm-svn: 247732
2015-09-15 22:52:53 +00:00
..
BoundChecks XFAIL tests that require an additional LLVM patch to work 2015-09-10 21:32:29 +00:00
NonAffine Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
2012-03-16-Crash-because-of-unsigned-in-scev.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
20111108-Parameter-not-detected.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
Alias-0.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
Alias-1.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
Alias-2.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
Alias-3.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
Alias-4.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
aliasing_conditional_alias_groups_1.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
aliasing_conditional_alias_groups_2.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
aliasing_dead_access.ll Check feasibility for the runtime check context wrt. the domain. 2015-08-20 18:06:30 +00:00
aliasing_many_arrays_to_compare.ll Do not detect Scops with only one loop. 2015-08-27 16:55:18 +00:00
aliasing_many_parameters_not_all_involved.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
aliasing_multiple_alias_groups.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
assume_gep_bounds.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
assume_gep_bounds_2.ll Use all available range information for parameters 2015-04-26 20:07:21 +00:00
bug_2010_10_22.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
bug_2011_1_5.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
bug_scev_not_fully_eval.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
cfg_consequences.ll Clean-up unit tests 2015-09-10 14:42:09 +00:00
cond_constant_in_loop.ll Allow general loops with one latch 2015-09-10 15:27:46 +00:00
cond_in_loop.ll Merge TempScopInfo into ScopInfo 2015-09-10 15:25:24 +00:00
constant_factor_in_parameter.ll Strip constant factors from SCoP parameters 2015-03-29 20:45:09 +00:00
constant_start_integer.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
delinearize-together-all-data-refs.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
escaping_empty_scop.ll Remove code for scalar and PHI to array translation 2015-06-26 07:31:18 +00:00
independent-blocks-never-stop-on-big-scop.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
integers.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
invariant_load_ptr_ptr_noalias.ll Do not detect Scops with only one loop. 2015-08-27 16:55:18 +00:00
isl_aff_out_of_bounds.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
isl_trip_count_01.ll Propagate exit conditions as described in the PET paper 2015-09-14 11:12:52 +00:00
isl_trip_count_02.ll Do Not Model Unbounded Loops 2015-08-31 19:58:24 +00:00
isl_trip_count_multiple_exiting_blocks.ll Allow general loops with one latch 2015-09-10 15:27:46 +00:00
kernel_gemm___%for.cond.1.preheader---%for.end.12.jscop Use isl_set_is_subset instead of isl_set_is_equal 2015-08-18 16:12:05 +00:00
licm_load.ll Add LICM test cases 2015-07-23 20:05:11 +00:00
licm_potential_store.ll Add LICM test cases 2015-07-23 20:05:11 +00:00
licm_reduction.ll Add LICM test cases 2015-07-23 20:05:11 +00:00
licm_reduction_nested.ll Add LICM test cases 2015-07-23 20:05:11 +00:00
licm_store.ll Add LICM test cases 2015-07-23 20:05:11 +00:00
loop_affine_bound_0.ll Replace ScalarEvolution based domain generation 2015-09-10 13:00:06 +00:00
loop_affine_bound_1.ll Propagate exit conditions as described in the PET paper 2015-09-14 11:12:52 +00:00
loop_affine_bound_2.ll Replace ScalarEvolution based domain generation 2015-09-10 13:00:06 +00:00
loop_carry.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
max-loop-depth.ll [opaque pointer types] Explicit non-pointer type for call expressions 2015-04-16 23:24:52 +00:00
multi-scop.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
multidim_2d-diagonal-matrix.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_2d_outer_parametric_offset.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
multidim_2d_parametric_array_static_loop_bounds.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_3d_parametric_array_static_loop_bounds.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_ivs_and_integer_offsets_3d.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_ivs_and_parameteric_offsets_3d.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_many_references.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
multidim_nested_start_integer.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_nested_start_share_parameter.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_only_ivs_2d.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_only_ivs_3d.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_only_ivs_3d_cast.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_only_ivs_3d_reverse.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
multidim_param_in_subscript-2.ll Delinearization of expressions that contain array size parameters 2015-03-30 17:22:28 +00:00
multidim_param_in_subscript.ll Delinearization of expressions that contain array size parameters 2015-03-30 17:22:28 +00:00
multidim_single_and_multidim_array.ll Strip constant factors from SCoP parameters 2015-03-29 20:45:09 +00:00
multidim_srem.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
multiple_exiting_blocks.ll Propagate exit conditions as described in the PET paper 2015-09-14 11:12:52 +00:00
multiple_exiting_blocks_two_loop.ll [FIX] Do not assume only one loop can be left at a time 2015-09-10 15:53:59 +00:00
no-scalar-deps-in-non-affine-subregion.ll Do not detect Scops with only one loop. 2015-08-27 16:55:18 +00:00
non-affine-region-phi.ll Remove code for scalar and PHI to array translation 2015-06-26 07:31:18 +00:00
non_affine_access.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
non_affine_region_1.ll Allow general loops with one latch 2015-09-10 15:27:46 +00:00
non_affine_region_2.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
non_affine_region_3.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
non_affine_region_4.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
parameter_product.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
phi_condition_modeling_1.ll Allow general loops with one latch 2015-09-10 15:27:46 +00:00
phi_condition_modeling_2.ll Allow general loops with one latch 2015-09-10 15:27:46 +00:00
phi_conditional_simple_1.ll Allow general loops with one latch 2015-09-10 15:27:46 +00:00
phi_loop_carried_float.ll Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +00:00
phi_not_grouped_at_top.ll Remove code for scalar and PHI to array translation 2015-06-26 07:31:18 +00:00
phi_scalar_simple_1.ll Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +00:00
phi_scalar_simple_2.ll Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +00:00
phi_with_invoke_edge.ll Remove code for scalar and PHI to array translation 2015-06-26 07:31:18 +00:00
pointer-type-expressions.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
ranged_parameter.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
ranged_parameter_wrap.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
read-only-scalars.ll Also build scalar dependences for store instructions 2015-08-31 11:15:00 +00:00
reduction_alternating_base.ll Revert r247278 "Disable support for modulo expressions" 2015-09-14 11:14:23 +00:00
reduction_chain_partially_outside_the_scop.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_disabled_multiplicative.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_escaping_intermediate.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_escaping_intermediate_2.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_invalid_different_operators.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_invalid_overlapping_accesses.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_multiple_loops_array_sum.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_multiple_loops_array_sum_1.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_multiple_simple_binary.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_non_overlapping_chains.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_only_reduction_like_access.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_simple_fp.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_simple_w_constant.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_simple_w_iv.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
reduction_two_identical_reads.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
redundant_parameter_constraint.ll Replace ScalarEvolution based domain generation 2015-09-10 13:00:06 +00:00
run-time-check-many-parameters.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
run-time-check-read-only-arrays.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +00:00
scalar.ll Link ScopArrayInfo objects 2015-08-20 18:04:22 +00:00
scalar_dependence_cond_br.ll Remove code for scalar and PHI to array translation 2015-06-26 07:31:18 +00:00
simple_loop_1.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
simple_nonaffine_loop_not.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
smax.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
stride_detection.ll Use isl_set_is_subset instead of isl_set_is_equal 2015-08-18 16:12:05 +00:00
test-wrapping-in-condition.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
two-loops-right-after-each-other.ll Replace ScalarEvolution based domain generation 2015-09-10 13:00:06 +00:00
undef_in_cond.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
unsigned-condition.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
user_context.ll Build the ScopStmt domain in-place. 2015-08-16 14:36:01 +00:00
wraping_signed_expr_0.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_1.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_2.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_3.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_4.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_5.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_6.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_7.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_slow_1.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00
wraping_signed_expr_slow_2.ll Use modulo semantic to generate non-integer-overflow assumptions 2015-09-15 22:52:53 +00:00