llvm-project/polly/test/ScopDetect
Philip Pfaffe 4fe21814d1 Handle Top-Level-Regions in polly::isHoistableLoad
Summary:
This can be seen as a follow-up on my previous differential [D33411](https://reviews.llvm.org/D33411).
We received a bug report where this error was triggered. I have tried my best to recreate the issue in a minimal lit testcase which is also part of this differential.

I only handle return instructions as predecessors to a virtual TLR-exit right now. From inspecting the codebase, it seems `unreachable` instructions may also be of interest here. If requested, I can extend my patches to consider them as well. I would also apply this on `ScopHelper.cpp::isErrorBlock` (see D33411), of course.

Reviewers: philip.pfaffe, bollu

Reviewed By: bollu

Subscribers: Meinersbur, pollydev, llvm-commits

Tags: #polly

Differential Revision: https://reviews.llvm.org/D40492

llvm-svn: 319431
2017-11-30 13:06:10 +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 [ScopDetection] Only allow SCoP-wide available base pointers. 2017-03-08 15:14:46 +00:00
base_pointer_is_inst_inside_invariant_1___%for.i---%exit.jscop [ScopDetection] Only allow SCoP-wide available base pointers. 2017-03-08 15:14:46 +00:00
base_pointer_load_is_inst_inside_invariant_1___%for.i---%exit.jscop [JSON] Make the failure to parse a jscop file a hard error 2017-08-10 14:53:25 +00:00
base_pointer_load_setNewAccessRelation.ll Check whether IslAstInfo and DependenceInfo were computed for the same Scop. 2017-09-21 00:01:13 +00:00
base_pointer_setNewAccessRelation.ll [tests] Set -polly-import-jscop-dir=%S always 2017-07-11 10:39:01 +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
dot-scops.ll [ScopDetect] Depend transitively on ScalarEvolution. 2016-10-17 13:29:20 +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
error-block-unreachable.ll [ScopHelper] Do not crash on unreachable blocks 2017-09-03 18:01:22 +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
ignore_func_flag_regex.ll [ScopDetect] add `-polly-ignore-func` flag to ignore functions by name. 2017-07-28 11:47:24 +00:00
index_from_unpredictable_loop.ll [SCEVValidator] Loop exit values of loops before the SCoP are synthesizable. 2017-07-26 13:05:45 +00:00
index_from_unpredictable_loop2.ll [SCEVValidator] Loop exit values of loops before the SCoP are synthesizable. 2017-07-26 13:05:45 +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
invariant-load-before-scop.ll [ScopDetect] Do not add loads out of the SCoP to required invariant loads. 2017-10-01 22:19:28 +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 Add option to disallow modref function calls in scops. 2016-03-23 06:40:15 +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 Drop explicit -polly-delinearize parameter 2016-03-23 13:21:02 +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-constant-add-rec-start-expr.ll [ScopDetect] Do not assert in case of AddRecs with non-constant start expression 2016-08-15 20:59:30 +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 Weaken profitability constraints during ScopDetection 2016-05-10 14:42:30 +00:00
only_func_flag.ll [Polly] [ScopDetection] Allow passing multiple functions to `-polly-only-func`. 2017-06-09 08:23:40 +00:00
only_func_flag_regex.ll [Polly] [NFC] [ScopDetection] Make `polly-only-func` perform regex scop name match. 2017-07-24 12:40:52 +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
profitability-two-nested-loops.ll [Detect] Consider nested loop profitable if entry block is not in loop 2017-08-27 21:39:25 +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 Update debug metadata after LLVM commits r266445+r266446 2016-04-15 20:51:27 +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
statistics.ll [ScopDetect] Include zero-iteration loops in loop count. 2017-08-23 13:29:59 +00:00
switch-in-loop-patch.ll Do not allow switch statements in loop latches 2016-11-10 05:20:29 +00:00
tlr_is_hoistable_load.ll Handle Top-Level-Regions in polly::isHoistableLoad 2017-11-30 13:06:10 +00:00