[PATCH] D12428: Traverse the SCoP to compute non-loop-carried domain conditions

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 28 04:27:08 PDT 2015


jdoerfert created this revision.
jdoerfert added reviewers: grosser, Meinersbur, zinob, mssimpso, sebpop.
jdoerfert added a subscriber: Polly.
Herald added a subscriber: sanjoy.

  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.

http://reviews.llvm.org/D12428

Files:
  include/polly/ScopInfo.h
  include/polly/TempScopInfo.h
  lib/Analysis/ScopInfo.cpp
  lib/Analysis/TempScopInfo.cpp
  test/DependenceInfo/reduction_simple_iv_debug_wrapped_dependences.ll
  test/Isl/CodeGen/OpenMP/two-parallel-loops-reference-outer-indvar.ll
  test/Isl/CodeGen/if-conditions-in-vector-code.ll
  test/ScopInfo/20111108-Parameter-not-detected.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_conditional_nested.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/cfg_consequences.ll
  test/ScopInfo/delinearize-together-all-data-refs.ll
  test/ScopInfo/loop_affine_bound_0.ll
  test/ScopInfo/loop_affine_bound_1.ll
  test/ScopInfo/loop_affine_bound_2.ll
  test/ScopInfo/multidim_2d-diagonal-matrix.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_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_nested_start_share_parameter.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/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/pointer-type-expressions.ll
  test/ScopInfo/unsigned-condition.ll
  test/TempScop/nested-loops.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12428.33411.patch
Type: text/x-patch
Size: 83949 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150828/0a7fb1c5/attachment-0001.bin>


More information about the llvm-commits mailing list