hanchenye-llvm-project/polly/test/ScopDetect
Michael Kruse afd2db5351 [SCEVValidator] Fix loop exit values considered affine.
Index calculations can use the last value that come out of a loop.
Ideally, ScalarEvolution can compute that exit value directly without
depending on the loop induction variable, but not in all cases.

This changes isAffine to not consider such loop exit values as affine to
avoid that SCEVExpander adds uses of the original loop induction
variable.

This fix is analogous to r262404 that applies to general uses of loop
exit values instead of index expressions and loop bouds as in this
patch.

This reduces the number of LNT test-suite fails with
-polly-position=before-vectorizer -polly-unprofitable
from 10 to 8.

llvm-svn: 262665
2016-03-03 22:10:52 +00:00
..
aliasing_parametric_simple_1.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
aliasing_parametric_simple_2.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
aliasing_simple_1.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
aliasing_simple_2.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
base_pointer.ll Allow invariant loads in the SCoP description 2015-10-07 20:17:36 +00:00
cross_loop_non_single_exit.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
cross_loop_non_single_exit_2.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
dependency_to_phi_node_outside_of_region.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
error-block-always-executed.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
error-block-referenced-from-scop.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
expand-region-correctly-2.ll tests: Add test cases for LLVM commit r251267 2015-10-25 22:56:42 +00:00
expand-region-correctly.ll tests: Add test cases for LLVM commit r251267 2015-10-25 22:56:42 +00:00
index_from_unpredictable_loop.ll [SCEVValidator] Fix loop exit values considered affine. 2016-03-03 22:10:52 +00:00
indvars.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
intrinsics_1.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
intrinsics_2.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
intrinsics_3.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
invalid-latch-conditions.ll Introduce -polly-process-unprofitable 2015-10-06 16:10:29 +00:00
invalidate_scalar_evolution.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
keep_going_expansion.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
mod_ref_read_pointer.ll Support calls with known ModRef function behaviour 2016-02-25 14:08:48 +00:00
more-than-one-loop.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
multidim-with-undef-size.ll ScopDetection: Always refuse multi-dimensional memory accesses with 'undef' in 2015-10-25 08:40:38 +00:00
multidim.ll ScopDetection: Do not crash if we find zero array size candidates for delinearization 2015-10-25 08:40:44 +00:00
multidim_indirect_access.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
multidim_two_accesses_different_delinearization.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
nested_loop_single_exit.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
non-affine-conditional.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
non-affine-float-compare.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
non-affine-loop-condition-dependent-access.ll Allow invariant loads in the SCoP description 2015-10-07 20:17:36 +00:00
non-affine-loop-condition-dependent-access_2.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
non-affine-loop-condition-dependent-access_3.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
non-affine-loop.ll Introduce -polly-process-unprofitable 2015-10-06 16:10:29 +00:00
non-beneficial-loops-small-trip-count.ll Introduce -polly-process-unprofitable 2015-10-06 16:10:29 +00:00
non-simple-memory-accesses.ll ScopDetect: Bail out for non-simple memory accesses 2015-10-25 13:48:40 +00:00
non_affine_loop_condition.ll Introduce -polly-process-unprofitable 2015-10-06 16:10:29 +00:00
only-one-affine-loop.ll Introduce -polly-process-unprofitable 2015-10-06 16:10:29 +00:00
parametric-multiply-in-scev-2.ll Allow invariant loads in the SCoP description 2015-10-07 20:17:36 +00:00
parametric-multiply-in-scev.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
phi_with_multi_exiting_edges.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
profitability-large-basic-blocks.ll Add option to assume single-loop scops with sufficient compute are profitable 2015-12-21 21:00:43 +00:00
remove_all_children.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
report-scop-location.ll Adjust debug metadata to LLVM changes in 252219 2015-11-06 06:27:39 +00:00
restrict-undef-size-scopdetect.ll Do not detect scops that are delinearized to arrays with "undef" size 2015-07-29 13:52:05 +00:00
run_time_alias_check.ll Remove -polly-code-generator=isl from many test cases 2015-11-21 23:05:48 +00:00
scev_remove_max.ll Fix of a comment. 2015-12-17 20:47:10 +00:00
sequential_loops.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
simple_loop.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
simple_loop_non_single_entry.ll Do not enforce lcssa 2015-11-21 17:00:02 +00:00
simple_loop_non_single_exit.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
simple_loop_non_single_exit_2.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
simple_loop_two_phi_nodes.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
simple_loop_with_param.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
simple_loop_with_param_2.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
simple_non_single_entry.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
skip_function_attribute.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
srem_with_parametric_divisor.ll Add support for srem instruction 2015-06-24 04:13:29 +00:00