1. 21 Sep, 2018 17 commits
    • Leverage STARTFILE_PREFIX_SPEC for VxWorks7 · f509691b
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (STARTFILE_PREFIX_SPEC): Define.
      	(VXWORKS_LIBS_DIR_RTP): Remove definition and use.
      
      From-SVN: r264476
      Olivier Hainque committed
    • Account for TARGET_VXWORKS64 in default SIZE/PTRDIFF_TYPE for vxworks · aa56e87e
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64.
      	(PTRDIFF_TYPE): Likewise.
      
      From-SVN: r264475
      Olivier Hainque committed
    • Introduce TARGET_VXWORKS64 for VxWorks 64bit ports · caa62834
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from
      	triplet, similar to support for VxWorks7.
      	* config/vxworks-dummy.h: Provide a default definition
      	of TARGET_VXWORKS64 to 0.
      
      From-SVN: r264474
      Olivier Hainque committed
    • Fix whitespace vs tab in entry · 43a0fd7d
      From-SVN: r264473
      Olivier Hainque committed
    • Move default #define TARGET_VXWORKS7 to vxworks-dummy.h · 05e73c1c
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (TARGET_VXWORKS7): Move default definition ...
      	* config/vxworks-dummy.h: here.
      
      From-SVN: r264472
      Olivier Hainque committed
    • Prepend vxworks-dummy.h to tm_file for powerpc* · 5d03c108
      2018-09-20  Olivier Hainque  <hainque@adacore.com>
      
      	* config.gcc (powerpc*-*-*): Prepend vxworks-dummy.h to tm_file.
      
      From-SVN: r264471
      Olivier Hainque committed
    • [aarch64] Add HiSilicon tsv110 CPU support · 910f72e7
      This patch adds HiSilicon's an mcpu: tsv110, which supports v8_4A.
      It has been tested on aarch64 and no regressions from this patch.
      
      2018-09-21  Shaokun Zhang  <zhangshaokun@hisilicon.com>
                  Bo Zhou  <zbo.zhou@hisilicon.com>
      
      	* config/aarch64/aarch64-cores.def (tsv110): New CPU.
      	* config/aarch64/aarch64-tune.md: Regenerated.
      	* doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110".
      	* config/aarch64/aarch64.c (tsv110_tunings): New tuning table.
      	* config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs.
      
      Co-Authored-By: Bo Zhou <zbo.zhou@hisilicon.com>
      
      From-SVN: r264470
      Shaokun Zhang committed
    • Fix co-array allocation · cbd29d0e
      The Fortran front-end has a bug in which it uses "int" values for "size_t"
      parameters.  I don't know why this isn't problem for all 64-bit architectures,
      but GCN ends up with the data in the wrong argument register and/or stack slot,
      and bad things happen.
      
      This patch corrects the issue by setting the correct type.
      
      2018-09-21  Andrew Stubbs  <ams@codesourcery.com>
                  Kwok Cheung Yeung  <kcy@codesourcery.com>
      
      	gcc/fortran/
      	* trans-expr.c (gfc_trans_structure_assign): Ensure that the first
      	argument of a call to _gfortran_caf_register is of size_type_node.
      	* trans-intrinsic.c (conv_intrinsic_event_query): Convert computed
      	index to a size_type_node type.
      	* trans-stmt.c (gfc_trans_event_post_wait): Likewise.
      
      Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
      
      From-SVN: r264468
      Andrew Stubbs committed
    • Propagate address spaces to builtins. · b6895597
      At present, pointers passed to builtin functions, including atomic operators,
      are stripped of their address space properties.  This doesn't seem to be
      deliberate, it just omits to copy them.
      
      Not only that, but it forces pointer sizes to Pmode, which isn't appropriate
      for all address spaces.
      
      This patch attempts to correct both issues.  It works for GCN atomics and
      GCN OpenACC gang-private variables.
      
      2018-09-21  Andrew Stubbs  <ams@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      
      	gcc/
      	* builtins.c (get_builtin_sync_mem): Handle address spaces.
      
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      
      From-SVN: r264467
      Andrew Stubbs committed
    • c-ada-spec.c: Include diagnostic.h. · 518196cb
      	* c-ada-spec.c: Include diagnostic.h.
      	(dump_ada_declaration) <RECORD_TYPE>: Issue a warning on packed layout.
      
      From-SVN: r264466
      Eric Botcazou committed
    • rs6000.c (rs6000_function_ok_for_sibcall): Return false if the call takes a static chain. · d5d94b80
      	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
      	if the call takes a static chain.
      
      From-SVN: r264463
      Eric Botcazou committed
    • Remove arc profile histogram in non-LTO mode. · 512cc015
      2018-09-21  Martin Liska  <mliska@suse.cz>
      
      	* auto-profile.c (autofdo_source_profile::read): Do not
      	set sum_all.
      	(read_profile): Do not add working sets.
      	(read_autofdo_file): Remove sum_all.
      	(afdo_callsite_hot_enough_for_early_inline): Remove const
      	qualifier.
      	* coverage.c (struct counts_entry): Remove gcov_summary.
      	(read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY,
      	do not support GCOV_TAG_PROGRAM_SUMMARY.
      	(get_coverage_counts): Remove summary and expected
      	arguments.
      	* coverage.h (get_coverage_counts): Likewise.
      	* doc/gcov-dump.texi: Remove -w option.
      	* gcov-dump.c (dump_working_sets): Remove.
      	(main): Do not support '-w' option.
      	(print_usage): Likewise.
      	(tag_summary): Likewise.
      	* gcov-io.c (gcov_write_summary): Do not dump
      	histogram.
      	(gcov_read_summary): Likewise.
      	(gcov_histo_index): Remove.
      	(gcov_histogram_merge): Likewise.
      	(compute_working_sets): Likewise.
      	* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark
      	it not obsolete.
      	(GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete.
      	(GCOV_TAG_SUMMARY_LENGTH): Adjust.
      	(GCOV_HISTOGRAM_SIZE): Remove.
      	(GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise.
      	(struct gcov_summary): Simplify rapidly just
      	to runs and sum_max fields.
      	(gcov_histo_index): Remove.
      	(NUM_GCOV_WORKING_SETS): Likewise.
      	(compute_working_sets): Likewise.
      	* gcov-tool.c (print_overlap_usage_message): Remove
      	trailing empty line.
      	* gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY.
      	(output_lines): Remove program related line.
      	* ipa-profile.c (ipa_profile): Do not consider GCOV histogram.
      	* lto-cgraph.c (output_profile_summary): Do not stream GCOV
      	histogram.
      	(input_profile_summary): Do not read it.
      	(merge_profile_summaries): And do not merge it.
      	(input_symtab): Do not call removed function.
      	* modulo-sched.c (sms_schedule): Do not print sum_max.
      	* params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was
      	removed when histogram method was invented.
      	(HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO
      	mode.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Fix
      	GCOV coding style.
      	* predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION
      	and dump selected value.
      	* profile.c (add_working_set): Remove.
      	(get_working_sets): Likewise.
      	(find_working_set): Likewise.
      	(get_exec_counts): Do not work with working sets.
      	(read_profile_edge_counts): Do not inform as sum_max is removed.
      	(compute_branch_probabilities): Likewise.
      	(compute_value_histograms): Remove argument for call of
      	get_coverage_counts.
      	* profile.h: Do not make gcov_summary const.
      2018-09-21  Martin Liska  <mliska@suse.cz>
      
      	* libgcov-driver.c (crc32_unsigned): Remove.
      	(gcov_histogram_insert): Likewise.
      	(gcov_compute_histogram): Likewise.
      	(compute_summary): Simplify rapidly.
      	(merge_one_data): Do not handle PROGRAM_SUMMARY tag.
      	(merge_summary): Rapidly simplify.
      	(dump_one_gcov): Ignore gcov_summary.
      	(gcov_do_dump): Do not handle program summary, it's not
      	used.
      	* libgcov-util.c (tag_summary): Remove.
      	(read_gcda_finalize): Fix coding style.
      	(read_gcda_file): Initialize curr_object_summary.
      	(compute_summary): Remove.
      	(calculate_overlap): Remove settings of run_max.
      
      From-SVN: r264462
      Martin Liska committed
    • [NDS32] Sync glibc and kernel structure, all use _rt_sigframe. · 36ff254b
      libgcc/
      	* config/nds32/linux-unwind.h (struct _rt_sigframe): Use struct
      	ucontext_t type instead.
      	(nds32_fallback_frame_state): Remove struct _sigframe statement.
      
      From-SVN: r264461
      Monk Chiang committed
    • [NDS32] Add t-nds32-glibc file. · 229a033d
      libgcc/
      	* config/nds32/t-nds32-glibc: New file.
      
      From-SVN: r264460
      Kito Cheng committed
    • [NDS32] Turn off default option -mtlsdesc-trampoline. · ac703a6f
      gcc/
      	* config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0.
      
      From-SVN: r264459
      Monk Chiang committed
    • re PR tree-optimization/86990 (wrong code at -O2 on x86_64-linux-gnu in 64-bit mode) · 1f060238
      	PR tree-optimization/86990
      	* gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate):
      	Check that the entire merged store group is made of constants only for
      	overlapping stores.
      
      From-SVN: r264458
      Eric Botcazou committed
    • Daily bump. · 74f31018
      From-SVN: r264456
      GCC Administrator committed
  2. 20 Sep, 2018 17 commits
    • PR c++/87109 - wrong ctor with maybe-rvalue semantics. · 17b20aa9
      	* call.c (build_user_type_conversion_1): Refine the maybe-rvalue
      	check to only return if we're converting the return value to a base
      	class.
      
      	* g++.dg/cpp0x/ref-qual19.C: Adjust the expected results.
      	* g++.dg/cpp0x/ref-qual20.C: New test.
      
      From-SVN: r264452
      Marek Polacek committed
    • Fix and document -r option · 0b7fb27b
      The option has existed and been working for years,
      make sure it implies the right extra options, and list
      it in the documentation.
      
      2018-09-20  Allan Sandfeld Jensen  <allan.jensen@qt.io>
      
      gcc/
      	* gcc.c (LINK_COMMAND_SPEC): Handle -r like -nostdlib.
      	(VTABLE_VERIFICATION_SPEC): Likewise.
      	(SANITIZER_EARLY_SPEC): Likewise.
      	(SANITIZER_SPEC): Likewise.
      	* config/darwin.h (LINK_COMMAND_SPEC): Likewise.
      	* doc/invoke.texi (Link Options): Document -r.
      
      gcc/cp/
      	* g++spec.c (lang_specific_driver): Handle -r like -nostdlib.
      
      gcc/fortran/
      	* gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib.
      
      gcc/go/
      	* gospec.c (lang_specific_driver): Handle -r like -nostdlib.
      
      gcc/testsuite/
      	* g++.dg/ipa/pr64059.C: Removed now redundant -nostdlib.
      	* g++.dg/lto/20081109-1_0.C: Likewise.
      	* g++.dg/lto/20090302_0.C: Likewise.
      	* g++.dg/lto/pr45621_0.C: Likewise.
      	* g++.dg/lto/pr60567_0.C: Likewise.
      	* g++.dg/lto/pr62026.C: Likewise.
      	* gcc.dg/lto/pr45736_0.c: Likewise.
      	* gcc.dg/lto/pr52634_0.c: Likewise.
      	* gfortran.dg/lto/20091016-1_0.f90: Likewise.
      	* gfortran.dg/lto/pr79108_0.f90: Likewise.
      
      From-SVN: r264451
      Allan Sandfeld Jensen committed
    • [PR87054] fix unaligned access · 468e1ef4
      Building an ADDR_EXPR uses the canonical type to build the pointer
      type, but then, as we dereference it, we lose track of lax alignment
      known to apply to the dereferenced object.  This might not be a
      problem in general, but it is when the compiler implicitly introduces
      address taking and dereferencing, as it does for asm statements, and
      as it may do in some loop optimizations.
      
      From: Richard Biener <rguenther@suse.de>
      for  gcc/ChangeLog
      
      	PR middle-end/87054
      	* gimplify.c (gimplify_expr): Retain alignment of
      	addressable lvalue in dereference.
      
      From: Alexandre Oliva <oliva@adacore.com>
      for  gcc/testsuite/ChangeLog
      
      	PR middle-end/87054
      	* gcc.dg/pr87054.c: New.
      
      From-SVN: r264450
      Alexandre Oliva committed
    • [PR87013] check for .loc is_stmt support in the assembler · 894f597f
      Back when we had the logic to output is_stmt but never exercised it,
      it didn't matter that we didn't test for assembler support for it.
      But there are still assemblers out there that do not support it, so
      now that we enable the formerly latent is_stmt logic, we'd better make
      sure the assembler can deal with it.
      
      for  gcc/ChangeLog
      
      	PR bootstrap/87013
      	* configure.ac: Check for .loc is_stmt support.
      	* configure, config.in: Rebuilt.
      	* dwarf2out.c (dwarf2out_source_line): Skip is_stmt
      	if not supported.
      
      From-SVN: r264449
      Alexandre Oliva committed
    • gfortran.h (gfc_str_startswith): New macro. · 2eb3745a
      2018-09-20  Janus Weil  <janus@gcc.gnu.org>
      
      	* gfortran.h (gfc_str_startswith): New macro.
      	* decl.c (variable_decl, gfc_match_end): Use it.
      	* iresolve.c (is_trig_resolved): Ditto.
      	* module.c (load_omp_udrs, read_module): Ditto.
      	* options.c (gfc_handle_runtime_check_option): Ditto.
      	* primary.c (match_arg_list_function): Ditto.
      	* trans-decl.c (gfc_get_symbol_decl): Ditto.
      	* trans-expr.c (gfc_conv_procedure_call): Ditto.
      	* interface.c (dtio_op): Replace strncmp by strcmp.
      	* resolve.c (resolve_actual_arglist, resolve_function): Ditto.
      	* trans-expr.c (conv_arglist_function): Ditto.
      	* trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro
      	STARTS_WITH by gfc_str_startswith.
      
      From-SVN: r264448
      Janus Weil committed
    • rs6000: Remove -misel={yes,no} · 5596651a
      These options have been deprecated for many years, supplanted by -misel
      and -mno-isel.  This patch finally removes them.
      
      
      	* config/rs6000/rs6000.opt (misel=no, misel=yes): Delete.
      	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -misel=yes and
      	-misel=no.
      
      From-SVN: r264447
      Segher Boessenkool committed
    • [OpenACC] handle missing OMP_LIST_ clauses in fortran's parse tree debugger · aecbc4ff
      	gcc/fortran/
      	* dump-parse-tree.c (show_omp_clauses): Add missing omp list_types
      	and reorder the switch cases to match the enum in gfortran.h.
      
      From-SVN: r264446
      Cesar Philippidis committed
    • rs6000: Delete VECTOR_OTHER · fbcf65f9
      It's never used.
      
      
      	* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
      	VECTOR_OTHER.
      	* config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete
      	case VECTOR_OTHER.
      
      From-SVN: r264444
      Segher Boessenkool committed
    • hypot-long-double.cc: Skip on arm*. · eb3f7317
      2018-09-20  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
      	on arm*.
      
      From-SVN: r264443
      Christophe Lyon committed
    • PR c++/87075 - ICE with constexpr array initialization. · 3ee378fb
      My patch of 2016-08-26 to avoid calling a trivial default constructor
      introduced TARGET_EXPRs initialized with void_node to express trivial
      initialization.  But when this shows up in a VEC_INIT_EXPR, we weren't
      prepared to handle it.  Fixed by handling it explicitly in
      cxx_eval_vec_init_1.
      
      	* constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization.
      
      From-SVN: r264442
      Jason Merrill committed
    • Fix PEELING_FOR_NITERS calculation (PR 87288) · 2d2ee186
      PEELING_FOR_GAPS now means "peel one iteration for the epilogue",
      in much the same way that PEELING_FOR_ALIGNMENT > 0 means
      "peel that number of iterations for the prologue".  We weren't
      taking this into account when deciding whether we needed to peel
      further scalar iterations beyond the iterations for "gaps" and
      "alignment".
      
      Only the first test failed before the patch.  The other two
      are just for completeness.
      
      2018-09-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR tree-optimization/87288
      	* tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS
      	into account when determining PEELING_FOR_NITERS.
      
      gcc/testsuite/
      	PR tree-optimization/87288
      	* gcc.dg/vect/pr87288-1.c: New test.
      	* gcc.dg/vect/pr87288-2.c: Likewise,
      	* gcc.dg/vect/pr87288-3.c: Likewise.
      
      From-SVN: r264440
      Richard Sandiford committed
    • Add missing alignment checks in epilogue loop vectorisation (PR 86877) · 508a909e
      Epilogue loop vectorisation skips vect_enhance_data_refs_alignment
      since it doesn't make sense to version or peel the epilogue loop
      (that will already have happened for the main loop).  But this means
      that it also fails to check whether the accesses are suitably aligned
      for the new vector subarch.
      
      We don't seem to carry alignment information from the (potentially
      peeled or versioned) main loop to the epilogue loop, which would be
      good to fix at some point.  I think we want this patch regardless,
      since there's no guarantee that the alignment requirements are the
      same for every subarch.
      
      2018-09-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR tree-optimization/86877
      	* tree-vect-loop.c (vect_analyze_loop_2): Call
      	vect_verify_datarefs_alignment.
      
      gcc/testsuite/
      	PR tree-optimization/86877
      	* gfortran.dg/vect/vect-8-epilogue.F90: New test.
      
      From-SVN: r264439
      Richard Sandiford committed
    • Add -Wclass-conversion. · a599af84
      	* c.opt (Wclass-conversion): New.
      
      	* decl.c (grok_op_properties): Change a warning from -Wconversion to
      	-Wclass-conversion.  Make it print the types.
      
      	* doc/invoke.texi: Document -Wclass-conversion.
      
      	* g++.dg/conversion/op4.C: Add dg-warning.
      	* g++.dg/warn/Wclass-conversion1.C: New test.
      	* g++.dg/warn/Wclass-conversion2.C: New test.
      	* g++.dg/warn/Wconversion5.C: Remove file.
      	* g++.dg/warn/conversion-function-1.C: Use -Wno-class-converison.
      	* g++.old-deja/g++.bugs/900215_01.C: Adjust dg-warning.
      	* g++.old-deja/g++.jason/conversion5.C: Likewise.
      
      From-SVN: r264438
      Marek Polacek committed
    • pa.c (pa_adjust_priority): Delete. · cf16d179
      	* config/pa/pa.c (pa_adjust_priority): Delete.
      	(TARGET_SCHED_ADJUST_PRIORITY): Delete define.
      
      From-SVN: r264437
      John David Anglin committed
    • pa.md (atomic_storeqi): Restore deleted expander. · bad4408c
      	* config/pa/pa.md (atomic_storeqi): Restore deleted expander.
      	(atomic_storehi): Likewise.
      	(atomic_storesi): Likewise.
      	(atomic_loaddi): Restore compare and swap exchange loop code.
      
      From-SVN: r264433
      John David Anglin committed
    • Daily bump. · fa8332f1
      From-SVN: r264432
      GCC Administrator committed
  3. 19 Sep, 2018 6 commits
    • re PR c++/87324 (g++ ICE with overriding initializers: Segmentation fault) · ff5c3c9d
      /cp
      2018-09-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/87324
      	* parser.c (cp_parser_initializer_list): Assign error_mark_node
      	to the index upon error.
      
      /testsuite
      2018-09-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/87324
      	* g++.dg/cpp0x/desig5.C: New.
      
      From-SVN: r264428
      Paolo Carlini committed
    • re PR fortran/84109 (ICE in adjustl on allocatable array of strings) · ad9fe5f3
      2018-09-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/84109
      	* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
      	assignment of deferred character intrinsic elemental function
      	results to a realocatable lhs must not be added to the exterior
      	block if they are array valued but must go to the loop body.
      
      2018-09-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/84109
      	* gfortran.dg/elemental_function_3.f90 : New test.
      
      From-SVN: r264427
      Paul Thomas committed
    • combine: Use correct mode in new comparison (PR86902) · ebdf17cb
      This code in try_combine uses the wrong mode.  This fails (with RTL
      checking) in trunk, but not in any released branches.
      
      
      	PR rtl-optimization/86902
      	* combine.c (try_combine): When changing the CC mode used, don't change
      	an unrelated mode in other_insn to that new CC mode.
      
      From-SVN: r264426
      Segher Boessenkool committed
    • PR c++/87357 - missing -Wconversion warning · fce33808
      	PR c++/87357 - missing -Wconversion warning
      	* decl.c (grok_op_properties): Remove diagnostic parts mentioning
      	a conversion to a reference to void.  Use
      	same_type_ignoring_top_level_qualifiers_p rather than comparing types
      	directly.
      
      	* g++.dg/warn/Wconversion5.C: New test.
      
      From-SVN: r264425
      Marek Polacek committed
    • dump_printf: use %T and %G throughout · 3c2a8ed0
      As promised at Cauldron, this patch uses %T and %G with dump_printf and
      dump_printf_loc calls to eliminate calls to
      
        dump_generic_expr (MSG_*, arg, TDF_SLIM)  (via %T)
      
      and
      
        dump_gimple_stmt (MSG_*, TDF_SLIM, stmt, 0)  (via %G)
      
      throughout the middle-end, simplifying numerous dump callsites.
      
      A few calls to these functions didn't match the above pattern; I didn't
      touch these.  I wasn't able to use %E anywhere.
      
      gcc/ChangeLog:
      	* tree-data-ref.c (runtime_alias_check_p): Use formatted printing
      	with %T in place of calls to dump_generic_expr.
      	(prune_runtime_alias_test_list): Likewise.
      	(create_runtime_alias_checks): Likewise.
      	* tree-vect-data-refs.c (vect_check_nonzero_value): Likewise.
      	(vect_analyze_data_ref_dependence): Likewise.
      	(vect_slp_analyze_data_ref_dependence): Likewise.
      	(vect_record_base_alignment): Likewise.  Use %G in place of call
      	to dump_gimple_stmt.
      	(vect_compute_data_ref_alignment): Likewise.
      	(verify_data_ref_alignment): Likewise.
      	(vect_find_same_alignment_drs): Likewise.
      	(vect_analyze_group_access_1): Likewise.
      	(vect_analyze_data_ref_accesses): Likewise.
      	(dependence_distance_ge_vf): Likewise.
      	(dump_lower_bound): Likewise.
      	(vect_prune_runtime_alias_test_list): Likewise.
      	(vect_find_stmt_data_reference): Likewise.
      	(vect_analyze_data_refs): Likewise.
      	(vect_create_addr_base_for_vector_ref): Likewise.
      	(vect_create_data_ref_ptr): Likewise.
      	* tree-vect-loop-manip.c (vect_set_loop_condition): Likewise.
      	(vect_can_advance_ivs_p): Likewise.
      	(vect_update_ivs_after_vectorizer): Likewise.
      	(vect_gen_prolog_loop_niters): Likewise.
      	(vect_prepare_for_masked_peels): Likewise.
      	* tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise.
      	(vect_determine_vectorization_factor): Likewise.
      	(vect_is_simple_iv_evolution): Likewise.
      	(vect_analyze_scalar_cycles_1): Likewise.
      	(vect_analyze_loop_operations): Likewise.
      	(report_vect_op): Likewise.
      	(vect_is_slp_reduction): Likewise.
      	(check_reduction_path): Likewise.
      	(vect_is_simple_reduction): Likewise.
      	(vect_create_epilog_for_reduction): Likewise.
      	(vect_finalize_reduction:): Likewise.
      	(vectorizable_induction): Likewise.
      	(vect_transform_loop_stmt): Likewise.
      	(vect_transform_loop): Likewise.
      	(optimize_mask_stores): Likewise.
      	* tree-vect-patterns.c (vect_pattern_detected): Likewise.
      	(vect_split_statement): Likewise.
      	(vect_recog_over_widening_pattern): Likewise.
      	(vect_recog_average_pattern): Likewise.
      	(vect_determine_min_output_precision_1): Likewise.
      	(vect_determine_precisions_from_range): Likewise.
      	(vect_determine_precisions_from_users): Likewise.
      	(vect_mark_pattern_stmts): Likewise.
      	(vect_pattern_recog_1): Likewise.
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
      	(vect_record_max_nunits): Likewise.
      	(vect_build_slp_tree_1): Likewise.
      	(vect_build_slp_tree_2): Likewise.
      	(vect_print_slp_tree): Likewise.
      	(vect_analyze_slp_instance): Likewise.
      	(vect_detect_hybrid_slp_stmts): Likewise.
      	(vect_detect_hybrid_slp_1): Likewise.
      	(vect_slp_analyze_operations): Likewise.
      	(vect_slp_analyze_bb_1): Likewise.
      	(vect_transform_slp_perm_load): Likewise.
      	(vect_schedule_slp_instance): Likewise.
      	* tree-vect-stmts.c (vect_mark_relevant): Likewise.
      	(vect_mark_stmts_to_be_vectorized): Likewise.
      	(vect_init_vector_1): Likewise.
      	(vect_get_vec_def_for_operand): Likewise.
      	(vect_finish_stmt_generation_1): Likewise.
      	(vect_check_load_store_mask): Likewise.
      	(vectorizable_call): Likewise.
      	(vectorizable_conversion): Likewise.
      	(vectorizable_operation): Likewise.
      	(vectorizable_load): Likewise.
      	(vect_analyze_stmt): Likewise.
      	(vect_is_simple_use): Likewise.
      	(vect_get_vector_types_for_stmt): Likewise.
      	(vect_get_mask_type_for_stmt): Likewise.
      	* tree-vectorizer.c (increase_alignment): Likewise.
      
      From-SVN: r264424
      David Malcolm committed
    • Remove constant vec_select restriction. · 5bbb7115
      The vec_select operator is documented to require a const_int for the lane
      selector operand, but GCN has an instruction that can select the lane at
      runtime, so it seems reasonable to remove this restriction.
      
      This patch simply replaces assertions that the operand is constant with early
      exits from the optimizers.  I think it's reasonable that vec_select with a
      non-constant operand cannot be optimized, yet.
      
      Also included is the necessary documentation tweak.
      
      2018-09-19  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* doc/rtl.texi: Adjust vec_select description.
      	* simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use
      	non-constant selectors.
      
      From-SVN: r264423
      Andrew Stubbs committed