llvm-project/polly/test/ScopDetect
Nikita Popov 2a721374ae [IR] Don't use blockaddresses as callbr arguments
Following some recent discussions, this changes the representation
of callbrs in IR. The current blockaddress arguments are replaced
with `!` label constraints that refer directly to callbr indirect
destinations:

    ; Before:
    %res = callbr i8* asm "", "=r,r,i"(i8* %x, i8* blockaddress(@test8, %foo))
    to label %asm.fallthrough [label %foo]
    ; After:
    %res = callbr i8* asm "", "=r,r,!i"(i8* %x)
    to label %asm.fallthrough [label %foo]

The benefit of this is that we can easily update the successors of
a callbr, without having to worry about also updating blockaddress
references. This should allow us to remove some limitations:

* Allow unrolling/peeling/rotation of callbr, or any other
  clone-based optimizations
  (https://github.com/llvm/llvm-project/issues/41834)
* Allow duplicate successors
  (https://github.com/llvm/llvm-project/issues/45248)

This is just the IR representation change though, I will follow up
with patches to remove limtations in various transformation passes
that are no longer needed.

Differential Revision: https://reviews.llvm.org/D129288
2022-07-15 10:18:17 +02:00
..
aliasing_parametric_simple_1.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
aliasing_parametric_simple_2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
aliasing_simple_1.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
aliasing_simple_2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
base_pointer.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
base_pointer_is_inst_inside_invariant_1___%for.i---%exit.jscop
base_pointer_load_is_inst_inside_invariant_1___%for.i---%exit.jscop
base_pointer_load_setNewAccessRelation.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
base_pointer_setNewAccessRelation.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
callbr.ll [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
collective_invariant_loads.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
cross_loop_non_single_exit.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
cross_loop_non_single_exit_2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
dependency_to_phi_node_outside_of_region.ll
dot-scops-npm.ll [Polly][Test] Fix race condition while printing dot files. 2022-05-26 15:58:53 -05:00
dot-scops.ll [Polly][Test] Fix race condition while printing dot files. 2022-05-26 15:58:53 -05:00
error-block-always-executed.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
error-block-referenced-from-scop.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
error-block-unreachable.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
expand-region-correctly-2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
expand-region-correctly.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
ignore_func_flag_regex.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
index_from_unpredictable_loop.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
index_from_unpredictable_loop2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
indvars.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
intrinsics_1.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
intrinsics_2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
intrinsics_3.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
invalid-latch-conditions.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
invalidate_scalar_evolution.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
invariant-load-before-scop.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
keep_going_expansion.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
mod_ref_read_pointer.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
more-than-one-loop.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
multidim-with-undef-size.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
multidim.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
multidim_indirect_access.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
multidim_two_accesses_different_delinearization.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
nested_loop_single_exit.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-affine-conditional.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-affine-float-compare.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-affine-loop-condition-dependent-access.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-affine-loop-condition-dependent-access_2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-affine-loop-condition-dependent-access_3.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-affine-loop.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-beneficial-loops-small-trip-count.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-constant-add-rec-start-expr.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non-simple-memory-accesses.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
non_affine_loop_condition.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
only-one-affine-loop.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
only_func_flag.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
only_func_flag_regex.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
parametric-multiply-in-scev-2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
parametric-multiply-in-scev.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
phi_with_multi_exiting_edges.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
profitability-large-basic-blocks.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
profitability-two-nested-loops.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
remove_all_children.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
report-scop-location.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
restrict-undef-size-scopdetect.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
run_time_alias_check.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
scev_remove_max.ll
sequential_loops.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_loop.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_loop_non_single_entry.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_loop_non_single_exit.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_loop_non_single_exit_2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_loop_two_phi_nodes.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_loop_with_param.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_loop_with_param_2.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
simple_non_single_entry.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
skip_function_attribute.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
srem_with_parametric_divisor.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
statistics.ll
switch-in-loop-patch.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
tlr_is_hoistable_load.ll [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00