hanchenye-llvm-project/polly/test/ScopInfo
Tobias Grosser 5e6813d184 Derive run-time conditions for delinearization
As our delinearization works optimistically, we need in some cases run-time
checks that verify our optimistic assumptions. A simple example is the
following code:

void foo(long n, long m, long o, double A[n][m][o]) {

  for (long i = 0; i < 100; i++)
    for (long j = 0; j < 150; j++)
      for (long k = 0; k < 200; k++)
        A[i][j][k] = 1.0;
}

After clang linearized the access to A and we delinearized it again to
A[i][j][k] we need to ensure that we do not access the delinearized array
out of bounds (this information is not available in LLVM-IR). Hence, we
need to verify the following constraints at run-time:

CHECK:   Assumed Context:
CHECK:   [o, m] -> {  : m >= 150 and o >= 200 }
llvm-svn: 212198
2014-07-02 17:47:48 +00:00
..
2012-03-16-Crash-because-of-unsigned-in-scev.ll
20111108-Parameter-not-detected.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
Alias-0.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
Alias-1.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
Alias-2.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
Alias-3.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
Alias-4.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
bug_2010_10_22.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
bug_2011_1_5.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
bug_scev_not_fully_eval.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
cond_constant_in_loop.ll
cond_in_loop.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
constant_start_integer.ll only delinearize when the access function is not affine 2014-04-10 16:08:11 +00:00
delinearize-together-all-data-refs.ll Adjust another test case to not access out of bounds 2014-06-04 19:41:47 +00:00
independent-blocks-never-stop-on-big-scop.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
integers.ll
isl_aff_out_of_bounds.ll
loop_affine_bound_0.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
loop_affine_bound_1.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
loop_affine_bound_2.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
loop_carry.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
multi-scop.ll Check scops a second time before working on them 2014-02-18 18:49:49 +00:00
multidim_2d-diagonal-matrix.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_2d_outer_larger_than_zero.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_2d_parametric_array_static_loop_bounds.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_3d_parametric_array_static_loop_bounds.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_ivs_and_integer_offsets_3d.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_ivs_and_parameteric_offsets_3d.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_nested_start_integer.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_nested_start_share_parameter.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_only_ivs_2d.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_only_ivs_3d.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_only_ivs_3d_cast.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
multidim_only_ivs_3d_reverse.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
non_affine_parametric_loop.ll
parameter_product.ll
phi_not_grouped_at_top.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
phi_with_invoke_edge.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
reduction_alternating_base.ll Allow multiple reductions per statement 2014-06-27 20:31:28 +00:00
reduction_chain_partially_outside_the_scop.ll [FIX] Don't consider reductions which are partially outside the SCoP 2014-07-01 00:32:29 +00:00
reduction_disabled_multiplicative.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_escaping_intermediate.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_escaping_intermediate_2.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_invalid_different_operators.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_invalid_overlapping_accesses.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_multiple_loops_array_sum.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_multiple_loops_array_sum_1.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_multiple_simple_binary.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_non_overlapping_chains.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_only_reduction_like_access.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_simple_fp.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_simple_w_constant.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_simple_w_iv.ll Introduce reduction types 2014-07-01 20:52:51 +00:00
reduction_two_identical_reads.ll Allow multiple reductions per statement 2014-06-27 20:31:28 +00:00
scalar.ll ScopInfo: Scalar accesses are zero dimensional 2014-04-10 08:38:02 +00:00
simple_loop_1.ll Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
simple_nonaffine_loop.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
simple_nonaffine_loop_not.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00
smax.ll ScopValidator: smax expressions are no parameters 2013-12-09 21:51:46 +00:00
undef_in_cond.ll test/ScopInfo: Remove %defaultOpts and list passes explicitly 2014-06-25 06:38:18 +00:00