llvm-project/polly/test/ScopInfo
Johannes Doerfert 96425c2574 Traverse the SCoP to compute non-loop-carried domain conditions
In order to compute domain conditions for conditionals we will now
  traverse the region in the ScopInfo once and build the domains for
  each block in the region. The SCoP statements can then use these
  constraints when they build their domain.

  The reason behind this change is twofold:
    1) This removes a big chunk of preprocessing logic from the
       TempScopInfo, namely the Conditionals we used to build there.
       Additionally to moving this logic it is also simplified. Instead
       of walking the dominance tree up for each basic block in the
       region (as we did before), we now traverse the region only
       once in order to collect the domain conditions.
    2) This is the first step towards the isl based domain creation.
       The second step will traverse the region similar to this step,
       however it will propagate back edge conditions. Once both are in
       place this conditional handling will allow multiple exit loops
       additional logic.

Reviewers: grosser

Differential Revision: http://reviews.llvm.org/D12428

llvm-svn: 246398
2015-08-30 21:13:53 +00:00
..
NonAffine Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13: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 Remove target triples from test cases 2015-04-21 14:28:02 +00:00
Alias-1.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
Alias-2.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
Alias-3.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
Alias-4.ll Remove target triples from test cases 2015-04-21 14:28:02 +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 Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +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 all available range information for parameters 2015-04-26 20:07:21 +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 Remove target triples from test cases 2015-04-21 14:28:02 +00:00
bug_2011_1_5.ll Remove target triples from test cases 2015-04-21 14:28:02 +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 Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
cond_constant_in_loop.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
cond_in_loop.ll Remove target triples from test cases 2015-04-21 14:28:02 +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 Remove target triples from test cases 2015-04-21 14:28:02 +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 Use ISL to Determine Loop Trip Count 2015-08-27 06:53:52 +00:00
isl_trip_count_02.ll Use ISL to Determine Loop Trip Count 2015-08-27 06:53:52 +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 Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
loop_affine_bound_1.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
loop_affine_bound_2.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
loop_carry.ll Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +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 Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13: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 Update isl to isl-0.15-117-ge42acfe 2015-08-11 11:31:18 +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 Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +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 Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +00:00
phi_condition_modeling_2.ll Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +00:00
phi_conditional_simple_1.ll Keep track of ScopArrayInfo objects that model PHI node storage 2015-07-28 14:53:44 +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 Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
ranged_parameter.ll Update Polly tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:22:50 +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 Do not detect Scops with only one loop. 2015-08-27 16:55:18 +00:00
reduction_alternating_base.ll Add support for srem instruction 2015-06-24 04:13:29 +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
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 Add printing and testing to ScopArrayInfo 2015-05-20 08:05:31 +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
undef_in_cond.ll Remove target triples from test cases 2015-04-21 14:28:02 +00:00
unsigned-condition.ll Traverse the SCoP to compute non-loop-carried domain conditions 2015-08-30 21:13:53 +00:00
user_context.ll Build the ScopStmt domain in-place. 2015-08-16 14:36:01 +00:00