llvm-project/polly/test/Isl/CodeGen
Tobias Grosser d0b9173caa IslAst: always use the context during ast generation
Providing the context to the ast generator allows for additional simplifcations
and -- more importantly -- allows to generate loops with only partially bounded
domains, assuming the domains are bounded for all parameter configurations
that are valid as defined by the context.

This change fixes the crash reported in http://llvm.org/PR30956

The original reason why we did not include the context when generating an
AST was that CLooG and later isl used to sometimes transfer some of the
constraints that bound the size of parameters from the context into the
generated AST. This resulted in operations with very large constants, which
sometimes introduced problematic integer overflows. The latest versions of
the isl AST generator are careful to not introduce such constants.

Reported-by: Eli Friedman <efriedma@codeaurora.org>
llvm-svn: 286442
2016-11-10 09:39:58 +00:00
..
LoopParallelMD Adapt test case to recent change in Global Variable Definition 2016-09-13 05:19:26 +00:00
MemAccess Store the size of the outermost dimension in case of newly created arrays that require memory allocation. 2016-09-12 17:08:31 +00:00
OpenMP [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
RuntimeDebugBuilder
20100617.ll
20100622.ll
20100707.ll
20100707_2.ll
20100708.ll
20100708_2.ll
20100713.ll
20100713_2.ll
20100717.ll
20100718-DomInfo-2.ll
20100718-DomInfo.ll
20100720-MultipleConditions.ll
20100809-IndependentBlock.ll
20100811-ScalarDependencyBetweenBrAndCnd.ll
20101030-Overflow.ll
20101103-Overflow3.ll
20101103-signmissmatch.ll
20110226-Ignore-Dead-Code.ll
20110226-PHI-Node-removed.ll
20120316-InvalidCast.ll
20120403-RHS-type-mismatch.ll
20130211-getNumberOfIterations.ll
20130221.ll
20150328-SCEVExpanderIntroducesNewIV.ll
PHIInExit.ll
alias-check-multi-dim.ll
aliasing_different_base_and_access_type.ll
aliasing_different_pointer_types.ll
aliasing_multidimensional_access.ll
aliasing_parametric_simple_1.ll
aliasing_parametric_simple_2.ll
aliasing_struct_element.ll
alignment.ll
annotated_alias_scopes.ll
blas_sscal_simplified.ll
conflict-between-loop-invariant-code-hosting-and-escape-map-computation.ll
constant_condition.ll
create-conditional-scop.ll
dead_invariant_load_instruction_referenced_by_parameter_1.ll
dead_invariant_load_instruction_referenced_by_parameter_2.ll
debug-intrinsics.ll
dominance_problem_after_early_codegen_bailout.ll
entry_with_trivial_phi.ll
entry_with_trivial_phi_other_bb.ll
error-stmt-in-non-affine-region.ll
error_block_contains_invalid_memory_access.ll
exprModDiv.ll IslAst: always use the context during ast generation 2016-11-10 09:39:58 +00:00
exprModDiv___%for.cond---%for.end.jscop
exprModDiv___%for.cond---%for.end.jscop.pow2
getNumberOfIterations.ll
hoisted_load_escapes_through_phi.ll [BlockGenerator] Invalidate SCEV values for instructions in scop 2016-08-18 10:45:57 +00:00
hoisting_1.ll
hoisting_2.ll
if-conditions-in-vector-code.ll
inner_scev_sdiv_1.ll
inner_scev_sdiv_2.ll Recommit: "Look through IntToPtr & PtrToInt instructions" 2016-06-11 19:26:08 +00:00
inner_scev_sdiv_3.ll
inner_scev_sdiv_in_lb.ll
inner_scev_sdiv_in_lb_invariant.ll
inner_scev_sdiv_in_rtc.ll
intrinsics_lifetime.ll
intrinsics_misc.ll
inv-load-lnt-crash-wrong-order-2.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
inv-load-lnt-crash-wrong-order-3.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
inv-load-lnt-crash-wrong-order.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
invariant-load-dimension.ll Handle multi-dimensional invariant load. 2016-10-17 21:04:26 +00:00
invariant-load-preload-base-pointer-origin-first.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_cannot_handle_void.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_base_pointer.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_base_pointer_conditional.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_base_pointer_conditional_2.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_complex_condition.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_condition.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_different_sized_types.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_escaping.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_escaping_second_scop.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_hoist_alignment.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
invariant_load_in_non_affine_subregion.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_loop_ub.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_not_executed_but_in_parameters.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_outermost.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_parameters_cyclic_dependence.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_ptr_ptr_noalias.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_scalar_dep.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_load_scalar_escape_alloca_sharing.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_loads_from_struct_with_different_types_1.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_loads_from_struct_with_different_types_2.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_verify_function_failed.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
invariant_verify_function_failed_2.ll [tests] Force invariant load hoisting for test cases that need it 2016-08-15 13:27:49 +00:00
large-numbers-in-boundary-context.ll
loop-invariant-load-type-mismatch.ll
loop_partially_in_scop.ll
loop_with_condition.ll
loop_with_condition_2.ll
loop_with_condition_ineq.ll
loop_with_condition_nested.ll
loop_with_conditional_entry_edge_split_hard_case.ll
multidim-non-matching-typesize-2.ll
multidim-non-matching-typesize.ll
multidim_2d_parametric_array_static_loop_bounds.ll
multidim_alias_check.ll
multiple-scops-in-a-row.ll
multiple-types-invariant-load-2.ll
multiple-types-invariant-load.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
multiple_sai_fro_same_base_address.ll
new_multidim_access___%bb1---%bb17.jscop
no-overflow-tracking.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
no_guard_bb.ll
non-affine-dominance-generated-entering.ll
non-affine-exit-node-dominance.ll
non-affine-phi-node-expansion-2.ll
non-affine-phi-node-expansion-3.ll
non-affine-phi-node-expansion-4.ll
non-affine-phi-node-expansion.ll
non-affine-region-exit-phi-incoming-synthesize-2.ll
non-affine-region-exit-phi-incoming-synthesize.ll
non-affine-region-implicit-store.ll
non-affine-subregion-dominance-reuse.ll
non-affine-switch.ll
non-affine-synthesized-in-branch.ll
non-affine-update.ll
non-affine-update___%bb1---%bb15.jscop
non-hoisted-load-needed-as-base-ptr.ll
non_affine_float_compare.ll
only_non_affine_error_region.ll
openmp_limit_threads.ll
out-of-scop-phi-node-use.ll
param_div_div_div_2.ll
phi-defined-before-scop.ll
phi_condition_modeling_1.ll
phi_condition_modeling_2.ll
phi_conditional_simple_1.ll
phi_in_exit_early_lnt_failure_1.ll
phi_in_exit_early_lnt_failure_2.ll
phi_in_exit_early_lnt_failure_3.ll
phi_in_exit_early_lnt_failure_5.ll
phi_loop_carried_float.ll [BlockGenerator] Insert initializations at beginning of start block 2016-08-09 15:34:59 +00:00
phi_loop_carried_float_escape.ll [BlockGenerator] Insert initializations at beginning of start block 2016-08-09 15:34:59 +00:00
phi_scalar_simple_1.ll
phi_scalar_simple_2.ll [BlockGenerator] Insert initializations at beginning of start block 2016-08-09 15:34:59 +00:00
phi_with_multi_exiting_edges_2.ll
phi_with_one_exit_edge.ll
pointer-type-expressions-2.ll
pointer-type-expressions.ll Update isl to isl-0.17.1-57-g1879898 2016-06-12 04:30:40 +00:00
pointer-type-pointer-type-comparison.ll Update isl to isl-0.17.1-57-g1879898 2016-06-12 04:30:40 +00:00
pointer_rem.ll test: Drop unnecessary -polly-code-generator=isl flag 2016-07-06 07:02:22 +00:00
pr25241.ll
ptrtoint_as_parameter.ll Recommit: "Look through IntToPtr & PtrToInt instructions" 2016-06-11 19:26:08 +00:00
read-only-scalars.ll
reduction.ll
reduction_2.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
reduction_simple_binary.ll
region_exiting-domtree.ll
run-time-condition-with-scev-parameters.ll
run-time-condition.ll
scalar-references-used-in-scop-compute.ll
scalar-store-from-same-bb.ll tests: make test cases more robust using regexp 2016-07-21 11:48:31 +00:00
scalar_codegen_crash.ll
scev-division-invariant-load.ll
scev.ll
scev_expansion_in_nonaffine.ll [tests] Force invariant load hoisting for test cases that need it -- III 2016-08-15 15:56:24 +00:00
scop_expander_insert_point.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
scop_expander_segfault.ll
scop_never_executed_runtime_check_location.ll
select-base-pointer.ll
sequential_loops.ll
simple_loop_non_single_exit.ll
simple_loop_non_single_exit_2.ll
simple_non_single_entry.ll
simple_nonaffine_loop.ll
simple_vec_assign_scalar.ll
simple_vec_assign_scalar_2.ll
simple_vec_call.ll [tests] Force invariant load hoisting for test cases that need it -- III 2016-08-15 15:56:24 +00:00
simple_vec_call_2.ll [tests] Force invariant load hoisting for test cases that need it -- III 2016-08-15 15:56:24 +00:00
simple_vec_cast.ll [tests] Force invariant load hoisting for test cases that need it -- III 2016-08-15 15:56:24 +00:00
simple_vec_const.ll [tests] Force invariant load hoisting for test cases that need it -- III 2016-08-15 15:56:24 +00:00
simple_vec_large_width.ll
simple_vec_ptr_ptr_ty.ll [tests] Force invariant load hoisting for test cases that need it -- III 2016-08-15 15:56:24 +00:00
simple_vec_stride_negative_one.ll
simple_vec_stride_one.ll
simple_vec_stride_x.ll
simple_vec_strides_multidim.ll
simple_vec_two_stmts.ll
single_do_loop_int_max_iterations.ll
single_do_loop_int_max_iterations___%do.body---%do.end.jscop
single_do_loop_int_param_iterations.ll
single_do_loop_ll_max_iterations.ll
single_do_loop_one_iteration.ll
single_do_loop_scev_replace.ll
single_loop.ll
single_loop_int_max_iterations.ll
single_loop_ll_max_iterations.ll
single_loop_one_iteration.ll
single_loop_param.ll
single_loop_zero_iterations.ll
split_edge_of_exit.ll
split_edges.ll
split_edges_2.ll
srem-in-other-bb.ll
stack-overflow-in-load-hoisting.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
switch-in-non-affine-region.ll
synthesizable_phi_write_after_loop.ll
test-invalid-operands-for-select-2.ll
test-invalid-operands-for-select.ll
test.ll
two-loops-right-after-each-other-2.ll
two-scops-in-row.ll Ensure parameter names are isl-compatible 2016-07-01 13:40:28 +00:00
udiv_expansion_position.ll
uninitialized_scalar_memory.ll
unpredictable-loop-unsynthesizable.ll [tests] Force invariant load hoisting for test cases that need it II 2016-08-15 13:58:16 +00:00
variant_load_empty_domain.ll
whole-scop-non-affine-subregion.ll