[ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default.
commitb484e25d12755c9433bb822be12bdad94bc6f98f
authorMichael Kruse <llvm@meinersbur.de>
Sat, 3 Feb 2018 06:59:47 +0000 (3 06:59 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Sat, 3 Feb 2018 06:59:47 +0000 (3 06:59 +0000)
tree06e4cacd667c62c2f7cae65e1b79ef4c78f313dc
parent9068bd909fb1edc0328e8f0c09f55ab9434c91b4
[ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default.

Splitting basic blocks into multiple statements if there are now
additional scalar dependencies gives more freedom to the scheduler, but
more statements also means higher compile-time complexity. Switch to
finer statement granularity, the additional compile time should be
limited by the number of operations quota.

The regression tests are written for the -polly-stmt-granularity=bb
setting, therefore we add that flag to those tests that break with the
new default. Some of the tests only fail because the statements are
named differently due to a basic block resulting in multiple statements,
but which are removed during simplification of statements without
side-effects. Previous commits tried to reduce this effect, but it is
not completely avoidable.

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

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@324169 91177308-0d34-0410-b5e6-96231b3b80d8
113 files changed:
lib/Analysis/ScopBuilder.cpp
test/DeLICM/map_memset_zero.ll
test/DeLICM/nomap_occupied.ll
test/DeLICM/reduction.ll
test/DeLICM/reduction_looprotate_gvnpre.ll
test/DeLICM/reduction_looprotate_gvnpre_cond1.ll
test/DeLICM/reduction_looprotate_gvnpre_cond2.ll
test/DeLICM/reduction_looprotate_gvnpre_nopreheader.ll
test/DeLICM/reduction_looprotate_hoisted.ll
test/DeLICM/reduction_looprotate_licm.ll
test/DeLICM/reduction_looprotate_licm2.ll
test/DeLICM/reduction_looprotate_licm_double_write.ll
test/DeLICM/reduction_looprotate_licm_nopreheader.ll
test/DeLICM/reduction_looprotate_load.ll
test/DeLICM/reduction_looprotate_loopguard_gvnpre.ll
test/DeLICM/reduction_looprotate_loopguard_licm1.ll
test/DeLICM/reduction_looprotate_loopguard_licm2.ll
test/DeLICM/reduction_looprotate_loopguard_licm3.ll
test/DeLICM/reduction_looprotate_readonly.ll
test/DeLICM/reduction_looprotate_synthesizable.ll
test/DeLICM/reduction_looprotate_undef.ll
test/DeLICM/reduction_overapproximate.ll
test/DeLICM/reduction_unrelatedunusual.ll
test/DeLICM/reject_loadafterstore.ll
test/DeLICM/reject_storeafterstore.ll
test/DeLICM/reject_unusualstore.ll
test/DependenceInfo/fine_grain_dep_0.ll
test/DependenceInfo/reduction_dependences_equal_non_reduction_dependences.ll
test/DependenceInfo/reduction_two_reductions_different_rloops.ll
test/ForwardOpTree/atax.ll
test/ForwardOpTree/forward_load_differentarray.ll
test/ForwardOpTree/forward_load_double_write.ll
test/ForwardOpTree/forward_load_fromloop.ll
test/ForwardOpTree/forward_load_tripleuse.ll
test/ForwardOpTree/jacobi-1d.ll
test/Isl/Ast/dependence_distance_multiple_constant.ll
test/Isl/Ast/dependence_distance_varying_multiple.ll
test/Isl/CodeGen/MemAccess/create_arrays_heap.ll
test/Isl/CodeGen/MemAccess/map_scalar_access.ll
test/Isl/CodeGen/MemAccess/multiple_types.ll
test/Isl/CodeGen/OpenMP/mapped-phi-access.ll
test/Isl/CodeGen/OpenMP/recomputed-srem.ll
test/Isl/CodeGen/partial_write_impossible_restriction.ll
test/Isl/CodeGen/partial_write_mapped_scalar.ll
test/Isl/CodeGen/partial_write_mapped_vector.ll
test/Isl/CodeGen/unpredictable-loop-unsynthesizable.ll
test/JSONExporter/ImportArrays/ImportArrays-Negative-size.ll
test/MaximalStaticExpansion/load_after_store_same_statement.ll
test/MaximalStaticExpansion/working_expansion_multiple_dependences_per_statement.ll
test/MaximalStaticExpansion/working_expansion_multiple_instruction_per_statement.ll
test/MaximalStaticExpansion/working_phi_two_scalars.ll
test/PruneUnprofitable/prune_only_scalardeps.ll
test/ScopInfo/branch-references-loop-scev-with-unknown-iterations-3.ll
test/ScopInfo/condition-after-error-block-2.ll
test/ScopInfo/condtion-after-error-block.ll
test/ScopInfo/const_srem_sdiv.ll
test/ScopInfo/constant_functions_multi_dim.ll
test/ScopInfo/delinearize-together-all-data-refs.ll
test/ScopInfo/escaping_empty_scop.ll
test/ScopInfo/exit-phi-1.ll
test/ScopInfo/exit-phi-2.ll
test/ScopInfo/exit_phi_accesses-2.ll
test/ScopInfo/invariant_load_complex_condition.ll
test/ScopInfo/loop_carry.ll
test/ScopInfo/many-scalar-dependences.ll
test/ScopInfo/mod_ref_access_pointee_arguments.ll
test/ScopInfo/mod_ref_read_pointee_arguments.ll
test/ScopInfo/multidim_2d_with_modref_call.ll
test/ScopInfo/multidim_2d_with_modref_call_2.ll
test/ScopInfo/multidim_fixedsize_multi_offset.ll
test/ScopInfo/multidim_fold_constant_dim_zero.ll
test/ScopInfo/multidim_fortran_2d_with_modref_call.ll
test/ScopInfo/multidim_fortran_srem.ll
test/ScopInfo/multidim_nested_start_share_parameter.ll
test/ScopInfo/multidim_with_bitcast.ll
test/ScopInfo/multiple-types-access-offset-not-dividable-by-element-size.ll
test/ScopInfo/multiple-types-non-affine-2.ll
test/ScopInfo/multiple-types-non-affine.ll
test/ScopInfo/multiple-types.ll
test/ScopInfo/non-affine-region-with-loop-2.ll
test/ScopInfo/out-of-scop-use-in-region-entry-phi-node.ll
test/ScopInfo/parameter-constant-division.ll
test/ScopInfo/phi_after_error_block.ll
test/ScopInfo/phi_scalar_simple_2.ll
test/ScopInfo/pointer-used-as-base-pointer-and-scalar-read.ll
test/ScopInfo/polly-timeout-parameter-bounds.ll
test/ScopInfo/process_added_dimensions.ll
test/ScopInfo/read-only-scalars.ll
test/ScopInfo/reduction_disabled_multiplicative.ll
test/ScopInfo/reduction_escaping_intermediate_2.ll
test/ScopInfo/reduction_invalid_overlapping_accesses.ll
test/ScopInfo/reduction_multiple_simple_binary.ll
test/ScopInfo/stmt_split_phi_in_stmt.ll
test/ScopInfo/stmt_split_scalar_dependence.ll
test/ScopInfo/stmt_split_within_loop.ll
test/ScopInfo/unpredictable_nonscop_loop.ll
test/ScopInfo/unprofitable_scalar-accs.ll
test/Simplify/coalesce_3partials.ll
test/Simplify/coalesce_disjointelements.ll
test/Simplify/coalesce_overlapping.ll
test/Simplify/coalesce_partial.ll
test/Simplify/dead_access_load.ll
test/Simplify/dead_access_phi.ll
test/Simplify/dead_access_value.ll
test/Simplify/dead_instruction.ll
test/Simplify/nocoalesce_differentvalues.ll
test/Simplify/nocoalesce_elementmismatch.ll
test/Simplify/nocoalesce_readbetween.ll
test/Simplify/nocoalesce_writebetween.ll
test/Simplify/notredundant_synthesizable_unknownit.ll
test/Simplify/out-of-scop-use-in-region-entry-phi-node.ll
test/Simplify/overwritten.ll
test/Simplify/overwritten_3store.ll