1. 26 Jun, 2018 18 commits
    • rs6000-string.c (expand_block_clear): Don't use unaligned vsx for 16B memset. · 31369f5a
      2018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
      
      	* config/rs6000/rs6000-string.c (expand_block_clear): Don't use
      	unaligned vsx for 16B memset.
      
      From-SVN: r262158
      Aaron Sawdey committed
    • I typoed the PR numnber, correct is: · 12169ac7
      	PR target/86285
      	* config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
      	ieee128_float_type_node to long_double_type_node unless
      	TARGET_LONG_DOUBLE_128 is set.
      
      From-SVN: r262156
      Segher Boessenkool committed
    • fold-vec-neg-int.p8.c: Specify powerpc_p8vector_ok requirement for this test. · d5e545a7
      
      [testsuite]
      
      2018-06-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-neg-int.p8.c: Specify powerpc_p8vector_ok
      	requirement for this test.
      	* gcc.target/powerpc/fold-vec-neg-int.c: Specify powerpc_p8vector_ok
      	requirement, and -mpower8-vector compile option.
      
      From-SVN: r262153
      Will Schmidt committed
    • rs6000: Set up ieee128_float_type_node correctly (PR82625) · 54647e7b
      We shouldn't init __ieee128 to be the same as long double if the
      latter is not even a 128-bit type.
      
      This also reorders the nearby __ibm128 code so both types use similar
      logic.
      
      
      	PR target/82625
      	* config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
      	ieee128_float_type_node to long_double_type_node unless
      	TARGET_LONG_DOUBLE_128 is set.
      
      From-SVN: r262152
      Segher Boessenkool committed
    • Introduce dump_location_t · 4f5b9c80
      gcc/ChangeLog:
      	* cfgloop.c (get_loop_location): Convert return type from
      	location_t to dump_user_location_t, replacing INSN_LOCATION lookups
      	by implicit construction from rtx_insn *, and using
      	dump_user_location_t::from_function_decl for the fallback case.
      	* cfgloop.h (get_loop_location): Convert return type from
      	location_t to dump_user_location_t.
      	* cgraphunit.c (walk_polymorphic_call_targets): Update call to
      	dump_printf_loc to pass in a dump_location_t rather than a
      	location_t, via the gimple stmt.
      	* coverage.c (get_coverage_counts): Update calls to
      	dump_printf_loc to pass in dump_location_t rather than a
      	location_t.
      	* doc/optinfo.texi (Dump types): Convert example of
      	dump_printf_loc from taking "locus" to taking "insn".  Update
      	description of the "_loc" calls to cover dump_location_t.
      	* dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and
      	"selftest.h".
      	(dump_user_location_t::dump_user_location_t): New constructors,
      	from gimple *stmt and rtx_insn *.
      	(dump_user_location_t::from_function_decl): New function.
      	(dump_loc): Make static.
      	(dump_gimple_stmt_loc): Convert param "loc" from location_t to
      	const dump_location_t &.
      	(dump_generic_expr_loc): Delete.
      	(dump_printf_loc): Convert param "loc" from location_t to
      	const dump_location_t &.
      	(selftest::test_impl_location): New function.
      	(selftest::dumpfile_c_tests): New function.
      	* dumpfile.h: Include "profile-count.h".
      	(class dump_user_location_t): New class.
      	(struct dump_impl_location_t): New struct.
      	(class dump_location_t): New class.
      	(dump_printf_loc): Convert 2nd param from source_location to
      	const dump_location_t &.
      	(dump_generic_expr_loc): Delete.
      	(dump_gimple_stmt_loc): Convert 2nd param from source_location to
      	const dump_location_t &.
      	* gimple-fold.c (fold_gimple_assign): Update call to
      	dump_printf_loc to pass in a dump_location_t rather than a
      	location_t, via the gimple stmt.
      	(gimple_fold_call): Likewise.
      	* gimple-loop-interchange.cc
      	(loop_cand::analyze_iloop_reduction_var): Update for change to
      	check_reduction_path.
      	(tree_loop_interchange::interchange): Update for change to
      	find_loop_location.
      	* graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for
      	change in return-type of find_loop_location.
      	(graphite_regenerate_ast_isl): Likewise.
      	* graphite-optimize-isl.c (optimize_isl): Likewise.
      	* graphite.c (graphite_transform_loops): Likewise.
      	* ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to
      	pass in a dump_location_t rather than a location_t, via the
      	gimple stmt.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
      	* ipa.c (walk_polymorphic_call_targets): Likewise.
      	* loop-unroll.c (report_unroll): Convert "locus" param from
      	location_t to dump_location_t.
      	(decide_unrolling): Update for change to get_loop_location's
      	return type.
      	* omp-grid.c (struct grid_prop): Convert field "target_loc" from
      	location_t to dump_user_location_t.
      	(grid_find_single_omp_among_assignments_1): Updates calls to
      	dump_printf_loc to pass in a dump_location_t rather than a
      	location_t, via the gimple stmt.
      	(grid_parallel_clauses_gridifiable): Convert "tloc" from
      	location_t to dump_location_t.  Updates calls to dump_printf_loc
      	to pass in a dump_location_t rather than a location_t, via the
      	gimple stmt.
      	(grid_inner_loop_gridifiable_p): Likewise.
      	(grid_dist_follows_simple_pattern): Likewise.
      	(grid_gfor_follows_tiling_pattern): Likewise.
      	(grid_target_follows_gridifiable_pattern): Likewise.
      	(grid_attempt_target_gridification): Convert initialization
      	of local "grid" from memset to zero-initialization; FIXME: does
      	this require C++11?  Update call to dump_printf_loc to pass in a
      	optinfo_location rather than a location_t, via the gimple stmt.
      	* profile.c (read_profile_edge_counts): Updates call to
      	dump_printf_loc to pass in a dump_location_t rather than a
      	location_t
      	(compute_branch_probabilities): Likewise.
      	* selftest-run-tests.c (selftest::run_tests): Call
      	dumpfile_c_tests.
      	* selftest.h (dumpfile_c_tests): New decl.
      	* tree-loop-distribution.c (pass_loop_distribution::execute):
      	Update for change in return type of find_loop_location.
      	* tree-parloops.c (parallelize_loops): Likewise.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert
      	"locus" from location_t to dump_user_location_t.
      	(canonicalize_loop_induction_variables): Likewise.
      	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update
      	for change in return type of find_loop_location.
      	* tree-ssa-loop-niter.c (number_of_iterations_exit): Update call
      	to dump_printf_loc to pass in a dump_location_t rather than a
      	location_t, via the stmt.
      	* tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children):
      	Likewise.
      	* tree-vect-loop-manip.c (find_loop_location): Convert return
      	type from source_location to dump_user_location_t.
      	(vect_do_peeling): Update for above change.
      	(vect_loop_versioning): Update for change in type of
      	vect_location.
      	* tree-vect-loop.c (check_reduction_path): Convert "loc" param
      	from location_t to dump_user_location_t.
      	(vect_estimate_min_profitable_iters): Update for change in type
      	of vect_location.
      	* tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from
      	location_t to dump_location_t.
      	(vect_slp_bb): Update for change in type of vect_location.
      	* tree-vectorizer.c (vect_location): Convert from source_location
      	to dump_user_location_t.
      	(try_vectorize_loop_1): Update for change in vect_location's type.
      	(vectorize_loops): Likewise.
      	(increase_alignment): Likewise.
      	* tree-vectorizer.h (vect_location): Convert from source_location
      	to dump_user_location_t.
      	(find_loop_location): Convert return type from source_location to
      	dump_user_location_t.
      	(check_reduction_path): Convert 1st param from location_t to
      	dump_user_location_t.
      	* value-prof.c (check_counter): Update call to dump_printf_loc to
      	pass in a dump_user_location_t rather than a location_t; update
      	call to error_at for change in type of "locus".
      	(check_ic_target): Update call to dump_printf_loc to
      	pass in a dump_user_location_t rather than a location_t, via the
      	call_stmt.
      
      From-SVN: r262149
      David Malcolm committed
    • Add missing noexcept on definition to match declaration · 3da2f26c
      	* include/bits/regex.tcc (regex_iterator::operator==): Add missing
      	noexcept.
      
      From-SVN: r262146
      Jonathan Wakely committed
    • S/390: Fix mtune default. · 4723f0fb
      When building with --with-tune=zEC12 and calling the resulting gcc
      with --march=z13 (no extra -mtune), the binary would unexpectedly be compiled
      with -march=z13 -mtune=zEC12.  This patch avoids using the default tune
      parameter if -march is specified as argument but the user can still
      explicitly state -march=z13 -mtune=zEC12.
      
      gcc/ChangeLog:
      
      2018-06-26  Robin Dapp  <rdapp@linux.vnet.ibm.com>
      
      	* config/s390/s390.h (enum processor_flags): Do not use
      	default tune parameter when -march was specified.
      
      From-SVN: r262143
      Robin Dapp committed
    • re PR target/86314 (GCC 7.x and 8.x zero out "eax" before using "rax" in "lock bts") · d37a91e5
      	PR target/86314
      	* config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s):
      	Check reg_overlap_mentioned_p in addition to reg_set_p with the same
      	operands.
      
      	* gcc.dg/pr86314.c: New test.
      
      From-SVN: r262141
      Jakub Jelinek committed
    • re PR c++/86291 (OpenMP incorrect for-loop collapsing with iterators and at least 5 nested loops) · f0391511
      	PR c++/86291
      	* parser.c (cp_parser_omp_for_loop_init): Change for_block argument
      	type from vec<tree, va_gc> * to vec<tree, va_gc> *&.
      
      	* testsuite/libgomp.c++/pr86291.C: New test.
      
      From-SVN: r262137
      Jakub Jelinek committed
    • re PR debug/86257 (Program compiled with fPIC crashes while stepping over… · 2a73b8e7
      re PR debug/86257 (Program compiled with fPIC crashes while stepping over thread-local variable GDB)
      
      	PR debug/86257
      	* gcc.target/i386/pr86257.c: Add -mtls-dialect=gnu to dg-options.
      
      From-SVN: r262136
      Jakub Jelinek committed
    • Require 64-bit in gcc.target/i386/pr86257.c · 2a40ece6
      	* gcc.target/i386/pr86257.c: Require 64-bit.
      
      From-SVN: r262135
      Rainer Orth committed
    • Require IBM1047 support in g++.dg/pr86082.C · ce9407ad
      	* g++.dg/pr86082.C: Require IBM1047 support.
      
      From-SVN: r262134
      Rainer Orth committed
    • Add myself to MAINTAINERS file · 71d40114
      From-SVN: r262133
      Rasmus Villemoes committed
    • re PR tree-optimization/86287 (AddressSanitizer: heap-use-after-free on bootstrap with -O3) · 9ae91886
      2018-06-26  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/86287
      	PR bootstrap/86316
      	* tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free.
      	(vect_analyze_loop): Initialize n_stmts.
      
      From-SVN: r262132
      Richard Biener committed
    • re PR ipa/86271 (ICE due to size mismatch when inlining) · 7d0c1352
      2018-06-26  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/86271
      	* fold-const.c (fold_convertible_p): Pointer extension
      	isn't valid.
      
      	* gcc.dg/pr86271.c: New testcase.
      
      From-SVN: r262131
      Richard Biener committed
    • [PR86064] split single cross-partition range with nonzero locviews · 27b1bf1e
      We didn't split cross-partition ranges in loclists to output a
      whole-function location expression, but with nonzero locviews, we
      force loclists, and then we have to split to avoid cross-partition
      list entries.
      
      for  gcc/ChangeLog
      
      	PR debug/86064
      	* dwarf2out.c (loc_list_has_views): Adjust comments.
      	(dw_loc_list): Split single cross-partition range with
      	nonzero locview.
      
      for  gcc/testsuite/ChangeLog
      
      	PR debug/86064
      	* gcc.dg/pr86064.c: New.
      
      From-SVN: r262130
      Alexandre Oliva committed
    • * lib/target-supports.exp · d54ca450
      	(check_effective_target_logical_op_short_circuit): Add v850.
      
      From-SVN: r262129
      Jeff Law committed
    • Daily bump. · fa614da6
      From-SVN: r262127
      GCC Administrator committed
  2. 25 Jun, 2018 22 commits
    • predicates.md (const_float_1_operand): Fix match_code test. · 446514af
      	* config/v850/predicates.md (const_float_1_operand): Fix match_code
      	test.
      	(const_float_0_operand): Remove unused predicate.
      	* config/v850/v850.md (define_constants): Remove UNSPEC_LOOP.
      	(define_c_enum unspec): Add LOOP, RCP and RSQRT constants.
      	(recipsf2): New expander.  Original pattern now called
      	(recipsf2_insn).
      	(recipdf2, recipdf2_insn): Similarly.
      	(rsqrtsf2, rsqrtsf2_insn): Similarly
      	(rsqrtdf2, rsqrtdf2_insn): Similarly
      
      From-SVN: r262123
      Jeff Law committed
    • stddef.h: Remove an obsolete comment on FreeBSD 5. · 0402566f
      	* ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5.
      	Simplify logic for FreeBSD (twice).
      
      From-SVN: r262121
      Gerald Pfeifer committed
    • compiler: improve escape analysis · 787732cd
          
          This CL ports recent enhancements of the escape analysis in the
          gc compiler to gofrontend.
          
          - CL 99335: unnamed receiver should not escape.
          
          - CL 105257: propagate loop depth to field. This prevents it
            from escaping when a field's address is taken inside a loop
            (but not otherwise escape).
          
          - CL 107597: use element type for "indirection" of slice/string.
            This prevents the slice/string from escaping when only the
            element, in case that it is pointerless, flows to outer scope.
          
          Reviewed-on: https://go-review.googlesource.com/120760
      
      From-SVN: r262120
      Ian Lance Taylor committed
    • PR libstdc++/86112 fix printers for Python 2.6 · 4fdb6fb6
      Dict comprehensions are only supported since Python 2.7, so use an
      alternative syntax that is backwards compatible.
      
      	PR libstdc++/86112
      	* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
      	Replace dict comprehension.
      
      From-SVN: r262115
      Jonathan Wakely committed
    • PR tree-optimization/86204 - wrong strlen result after prior strnlen · b36bc89e
      gcc/ChangeLog:
      
      	PR tree-optimization/86204
      	* tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing
      	a strnlen result if it's less than the length of the string.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/86204
      	* gcc.dg/strlenopt-46.c: New test.
      
      From-SVN: r262114
      Martin Sebor committed
    • Update powerpc64-linux-gnu/baseline_symbols.txt · 03cd7d3f
      	PR libstdc++/81092
      	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
      
      From-SVN: r262112
      Jonathan Wakely committed
    • PR tree-optimization/85700 - Spurious -Wstringop-truncation warning with strncat · eec5f615
      gcc/ChangeLog:
      
      	PR tree-optimization/85700
      	* gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment.
      	* tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction.
      	(maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/85700
      	* gcc.dg/Wstringop-truncation-4.c: New test.
      
      From-SVN: r262110
      Martin Sebor committed
    • extend.texi (Zero-length arrays): Update and clarify. · 2bcd87a7
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (Zero-length arrays): Update and clarify.
      
      From-SVN: r262109
      Martin Sebor committed
    • config.gcc (powerpc64le*): Revert January 16th... · 214486eb
      2018-06-25  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config.gcc (powerpc64le*): Revert January 16th, 2018 patch that
      	added IEEE/IBM long double multilib support on PowerPC little
      	endian Linux systems.
      	* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise.
      	(MULTILIB_DEFAULTS): Likewise.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal):
      	Likewise.
      	* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise.
      	* config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used.
      	* config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used.
      
      From-SVN: r262105
      Michael Meissner committed
    • Fix -finit-derived for c_ptr and c_funptr in programs which use · d66a58d3
          iso_c_binding.
      
          gcc/fortran/ChangeLog:
      
          2018-06-25  Fritz Reese  <fritzoreese@gmail.com>
      
      	PR fortran/82972
              PR fortran/83088
              PR fortran/85851
      	* expr.c (component_initializer): Assign init expr to c->initializer.
      	(generate_isocbinding_initializer): New.
      	(gfc_generate_initializer): Call generate_isocbinding_initializer to
      	generate initializers for c_ptr and c_funptr with -finit-derived.
      
          gcc/testsuite/ChangeLog:
      
          2018-06-25  Fritz Reese  <fritzoreese@gmail.com>
      
      	PR fortran/82972
              PR fortran/83088
              PR fortran/85851
      	* gfortran.dg/init_flag_17.f90: New testcase.
      
      From-SVN: r262104
      Fritz Reese committed
    • gcc_qsort: avoid overlapping memcpy (PR 86311) · 21925ac1
      	PR middle-end/86311
      	* sort.cc (REORDER_23): Avoid memcpy with same destination and source.
      	(REORDER_45): Likewise.
      
      From-SVN: r262092
      Alexander Monakov committed
    • PR libstdc++/86292 fix exception safety of std::vector<InputIterator> constructor · 3685dcd7
      	PR libstdc++/86292
      	* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
      	Add try-catch block.
      	* testsuite/23_containers/vector/cons/86292.cc: New.
      
      From-SVN: r262029
      Jonathan Wakely committed
    • Add experimental::sample and experimental::shuffle from N4531 · 37cb7887
      The additions to <experimental/random> were added in 2015 but the new
      algorithms in <experimental/algorithm> were not. This adds them.
      
      	* include/experimental/algorithm (sample, shuffle): Add new overloads
      	using per-thread random number engine.
      	* testsuite/experimental/algorithm/sample.cc: Simpify and reduce
      	dependencies by using __gnu_test::test_container.
      	* testsuite/experimental/algorithm/sample-2.cc: New.
      	* testsuite/experimental/algorithm/shuffle.cc: New.
      
      From-SVN: r262024
      Jonathan Wakely committed
    • p9-extract-1.c: Make second argument of vec_extract a signed int. · 10e68fe4
      gcc/testsuite/ChangeLog:
      
      2018-06-25  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/p9-extract-1.c: Make second argument of
       	vec_extract a signed int. Add vec_extract tests for bool char
      	and bool int.
      	* gcc.target/powerpc/p9-extract-4.c:  New test file for long long
      	vec_extract tests.
      
      From-SVN: r262023
      Carl Love committed
    • v850.md (divmodhi4): Make sure to sign extend the dividend to 32 bits. · ad111b8e
      	* config/v850/v850.md (divmodhi4): Make sure to sign extend the
      	dividend to 32 bits.  Adjust length.
      	(udivmodhi4): Cleanup output template.  Fix length.
      
      From-SVN: r262022
      Jeff Law committed
    • [testsuite/guality] Fix tcl error on gdb -v failure · 3e85d885
      2018-06-25  Tom de Vries  <tdevries@suse.de>
      
      	* lib/gcc-gdb-test.exp (report_gdb): Handle gdb -v failure.
      
      From-SVN: r262021
      Tom de Vries committed
    • vsx.md: Change word selector to prefered location. · f74fc01d
      
      gcc/ChangeLog:
      
      2018-06-25  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/vsx.md: Change word selector to prefered location.
      
      Signed-off-by: Carl Love <cel@us.ibm.com>
      ---
       gcc/config/rs6000/vsx.md | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
      index a528ef2e8..6e7a4277f 100644
      --- a/gcc/config/rs6000/vsx.md
      +++ b/gcc/config/rs6000/vsx.md
      @@ -3934,7 +3934,7 @@
       
         operands[5] = gen_rtx_REG (V4SFmode, tmp_regno);
         operands[6] = gen_rtx_REG (V4SImode, tmp_regno);
      -  operands[7] = GEN_INT (BYTES_BIG_ENDIAN ? 1 : 2);
      +  operands[7] = GEN_INT (BYTES_BIG_ENDIAN ? 0 : 3);
         operands[8] = gen_rtx_REG (V4SImode, reg_or_subregno (operands[0]));
       }
         [(set_attr "type" "vecperm")
      -- 
      2.17.1
      
      From-SVN: r262020
      Carl Love committed
    • re PR regression/86304 ([MIPS] FAIL: gcc.dg/vect/pr79887.c -mmsa (internal… · 2817a2b6
      re PR regression/86304 ([MIPS] FAIL: gcc.dg/vect/pr79887.c  -mmsa (internal compiler error) starting with r261740)
      
      2018-06-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/86304
      	* tree-vectorizer.c (vectorize_loops): Walk over new possibly
      	epilogue-if-converted loops as well.
      
      From-SVN: r262017
      Richard Biener committed
    • re PR target/84786 ([miscompilation] vunpcklpd accessing xmm16-22 targeting KNL) · af62adb9
      	PR target/84786
      	* config/i386/sse.md (vshift_count): New mode attr.
      	(<shift_insn><mode>3<mask_name>): Use <vshift_count>N instead of vN
      	as last operand's constraint for VI2_AVX2_AVX512BW shifts.  Use YvN
      	instead of vN as last operand's constraint for VI48_AVX2 shifts.
      
      	* gcc.target/i386/avx512f-pr84786-3.c: New test.
      
      From-SVN: r262015
      Jakub Jelinek committed
    • lto-section-out.c (lto_begin_section): Do not print section name for noaddr and unnumbered dumps. · aa7c78ca
      
      	* lto-section-out.c (lto_begin_section): Do not print section
      	name for noaddr and unnumbered dumps.
      
      From-SVN: r262013
      Jan Hubicka committed
    • tree-vectorizer.h (struct vec_info_shared): New structure with parts split out… · ca823c85
      tree-vectorizer.h (struct vec_info_shared): New structure with parts split out from struct vec_info and loop_nest from...
      
      2018-06-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.h (struct vec_info_shared): New structure
      	with parts split out from struct vec_info and loop_nest from
      	struct _loop_vec_info.
      	(struct vec_info): Adjust accordingly.
      	(struct _loop_vec_info): Likewise.
      	(LOOP_VINFO_LOOP_NEST): Adjust.
      	(LOOP_VINFO_DATAREFS): Likewise.
      	(LOOP_VINFO_DDRS): Likewise.
      	(struct _bb_vec_info): Likewise.
      	(BB_VINFO_DATAREFS): Likewise.
      	(BB_VINFO_DDRS): Likewise.
      	(struct _stmt_vec_info): Add dr_aux member.
      	(DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo.
      	(DR_MISALIGNMENT_UNINITIALIZED): New.
      	(set_dr_misalignment): Adjust.
      	(dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED.
      	(vect_analyze_loop): Adjust prototype.
      	(vect_analyze_loop_form): Likewise.
      	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
      	Compute dependences lazily.
      	(vect_record_base_alignments): Use shared datarefs/ddrs.
      	(vect_verify_datarefs_alignment): Likewise.
      	(vect_analyze_data_refs_alignment): Likewise.
      	(vect_analyze_data_ref_accesses): Likewise.
      	(vect_analyze_data_refs): Likewise.
      	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add
      	constructor parameter for shared part.
      	(vect_analyze_loop_form): Pass in shared part and adjust.
      	(vect_analyze_loop_2): Pass in storage for the number of
      	stmts.  Move loop nest finding to the caller.  Compute
      	datarefs lazily.
      	(vect_analyze_loop): Pass in shared part.
      	(vect_transform_loop): Verify shared datarefs are unchanged.
      	* tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add
      	constructor parameter for shared part.
      	(vect_slp_analyze_bb_1): Pass in shared part and adjust.
      	(vect_slp_bb): Verify shared datarefs are unchanged before
      	transform.
      	* tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX
      	change.
      	(new_stmt_vec_info): Initialize DR_AUX misalignment to
      	DR_MISALIGNMENT_UNINITIALIZED.
      	* tree-vectorizer.c (vec_info::vec_info): Add constructor
      	parameter for shared part.
      	(vec_info::~vec_info): Adjust.
      	(vec_info_shared::vec_info_shared): New.
      	(vec_info_shared::~vec_info_shared): Likewise.
      	(vec_info_shared::save_datarefs): Likewise.
      	(vec_info_shared::check_datarefs): Likewise.
      	(try_vectorize_loop_1): Construct shared part live for analyses
      	of a single loop for multiple vector sizes.
      	* tree-parloops.c (gather_scalar_reductions): Adjust.
      
      From-SVN: r262009
      Richard Biener committed