1. 11 Nov, 2017 4 commits
  2. 10 Nov, 2017 24 commits
    • rs6000.md (bswaphi2_reg): On ISA 3.0 systems, enable generating XXBRH if the… · 4f58c0d1
      rs6000.md (bswaphi2_reg): On ISA 3.0 systems, enable generating XXBRH if the value is in a vector register.
      
      [gcc]
      2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
      	enable generating XXBRH if the value is in a vector register.
      	(bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
      	value is in a vector register.
      	(bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
      	register to register bswap64's instead of doing the GPR sequence
      	used on previous machines.
      	(bswapdi2_xxbrd): New insn.
      	(bswapdi2_reg): Disallow on ISA 3.0.
      	(register to register bswap64 splitter): Do not split the insn on
      	ISA 3.0 systems that use XXBRD.
      
      [gcc/testsuite]
      2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-xxbr-3.c: New test.
      
      From-SVN: r254643
      Michael Meissner committed
    • Fix my last ChangeLog entry · d72b0a3f
      From-SVN: r254642
      Jeff Law committed
    • re PR c/81117 (Improve buffer overflow checking in strncpy) · 6e718159
      gcc/ChangeLog:
      
      	PR c/81117
      	* config/darwin-c.c (framework_construct_pathname): Replace strncpy
      	with memcpy.
      	(find_subframework_file): Same.
      
      From-SVN: r254641
      Martin Sebor committed
    • Add plugin API for processing plugin-added input files. · f382ac6d
      Gold plugins may wish to further process an input file added by a plugin. For
      example, the plugin may need to assign a unique segment for sections in a
      plugin-generated input file. This patch adds a plugin callback that the linker
      will call when reading symbols from a new input file added after the
      all_symbols_read event (i.e. an input file added by a plugin).
      
      2017-11-10  Stephen Crane <sjc@immunant.com>
      
      	* plugin-api.h: Add plugin API for processing plugin-added
      	input files.
      
      From-SVN: r254640
      Stephen Crane committed
    • vr-values.h (VR_INITIALIZER): Move #define here. · 16207ddd
      	* vr-values.h (VR_INITIALIZER): Move #define here.
      	* gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
      	* Makefile.in (OBJS): Add tree-evrp.o
      	* tree-vrp.h (assert_info): Move structure definition here.
      	(set_value_range_to_varying): Prototype.
      	(vrp_operand_equal_p, range_includes_zero_p): Likewise.
      	(infer_value_range, register_edge_assert_for): Likewise.
      	(stmt_interesting_for_vrp): Likewise.
      	* tree-vrp.c: Move all methods for evrp class into tree-evrp.c.
      	(set_value_range_to_varying): No longer static.
      	(vrp_operand_equal_p, range_includes_zero_p): Likewise.
      	(infer_value_range, register_edge_assert_for): Likewise.
      
      From-SVN: r254639
      Jeff Law committed
    • PR libstdc++/82917 add missing returns in <fstream> · 54df5885
      	PR libstdc++/82917
      	* include/std/fstream (basic_ifstream::open, basic_ofstream::open)
      	(basic_fstream::open): Fix missing return.
      
      From-SVN: r254638
      Jonathan Wakely committed
    • auto-profile.c (afdo_indirect_call): Drop frequency. · 1bad9c18
      	* auto-profile.c (afdo_indirect_call): Drop frequency.
      	* cgraph.c (symbol_table::create_edge): Drop frequency argument.
      	(cgraph_node::create_edge): Drop frequency argument.
      	(cgraph_node::create_indirect_edge): Drop frequency argument.
      	(cgraph_edge::make_speculative): Drop frequency arguments.
      	(cgraph_edge::resolve_speculation): Do not update frequencies
      	(cgraph_edge::dump_edge_flags): Do not dump frequency.
      	(cgraph_node::dump): Check consistency in IPA mode.
      	(cgraph_edge::maybe_hot_p): Use IPA counter.
      	(cgraph_edge::verify_count_and_frequency): Rename to ...
      	(cgraph_edge::verify_count): ... this one; drop frequency checking.
      	(cgraph_node::verify_node): Update.
      	* cgraph.h (struct cgraph_edge): Drop frequency.
      	(cgraph_edge::frequency): New function.
      	* cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
      	frequencies.
      	(cgraph_edge::rebuild_edges): Likewise.
      	* cgraphclones.c (cgraph_edge::clone): Scale only counts.
      	(duplicate_thunk_for_node): Do not pass frequency.
      	(cgraph_node::create_clone): Scale only counts.
      	(cgraph_node::create_virtual_clone): Do not pass frequency.
      	(cgraph_node::create_edge_including_clones): Do not pass frequency.
      	(cgraph_node::create_version_clone): Do not pass frequency.
      	* cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
      	(cgraph_node::expand_thunk): Do not pass frequency.
      	(cgraph_node::create_wrapper): Do not pass frequency.
      	* gimple-iterator.c (update_call_edge_frequencies): Do not pass
      	frequency.
      	* gimple-streamer-in.c (input_bb): Scale only IPA counts.
      	* ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
      	* ipa-cp.c (ipcp_lattice::print): Use frequency function.
      	(gather_caller_stats): Use frequency function.
      	(ipcp_cloning_candidate_p): Use frequency function.
      	(ipcp_propagate_stage): Use frequency function.
      	(get_info_about_necessary_edges): Use frequency function.
      	(update_profiling_info): Update only IPA profile.
      	(update_specialized_profile): Use frequency functoin.
      	(perhaps_add_new_callers): Update only IPA profile.
      	* ipa-devirt.c (ipa_devirt): Use IPA profile.
      	* ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
      	(dump_ipa_call_summary): Use frequency function.
      	(estimate_edge_size_and_time): Use frequency function.
      	(ipa_merge_fn_summary_after_inlining): Use frequency function.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
      	* ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
      	(update_noncloned_counts): ... ths one; scale counts only.
      	(clone_inlined_nodes): Do not scale frequency.
      	(inline_call): Do not pass frequency.
      	* ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
      	(compute_inlined_call_time): Use IPA profile.
      	(want_inline_small_function_p): Use IPA profile.
      	(want_inline_self_recursive_call_p): Use IPA profile.
      	(edge_badness): Use IPA profile.
      	(lookup_recursive_calls): Use IPA profile.
      	(recursive_inlining): Do not pass frequency.
      	(resolve_noninline_speculation): Do not update frequency.
      	(inline_small_functions): Collect max of IPA profile.
      	(dump_overall_stats): Dump IPA porfile.
      	(dump_inline_stats): Dump IPA porfile.
      	(ipa_inline): Collect IPA stats.
      	* ipa-inline.h (clone_inlined_nodes): Update prototype.
      	* ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
      	(ipa_propagate_frequency): Use frequency function.
      	(ipa_profile): Cleanup.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
      	* ipa-utils.c (ipa_merge_profiles): Merge all profiles.
      	* lto-cgraph.c (lto_output_edge): Do not stream frequency.
      	(input_node): Do not stream frequency.
      	(input_edge): Do not stream frequency.
      	(merge_profile_summaries): Scale only IPA profiles.
      	* omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
      	* predict.c (drop_profile): Do not recompute frequency.
      	* trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
      	(ipa_tm_insert_gettmclone_call): Do not pass frequency.
      	* tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
      	* tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
      	* tree-emutls.c (gen_emutls_addr): Do not pass frequency.
      	* tree-inline.c (copy_bb): Do not scale frequency.
      	(expand_call_inline): Do not scale frequency.
      	(tree_function_versioning): Do not scale frequency.
      	* ubsan.c (ubsan_create_edge): Do not pass frequency.
      
      lto/ChangeLog:
      
      2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
      
      	* lto-partition.c (lto_balanced_map): Use frequency accessor.
      
      From-SVN: r254636
      Jan Hubicka committed
    • force-indirect-call-1.c: Merge scan strings. · a0e6ac44
      	* gcc.target/i386/force-indirect-call-1.c: Merge scan strings.
      	* gcc.target/i386/force-indirect-call-2.c: Ditto.
      	Require fpic effective target.
      	* gcc.target/i386/force-indirect-call-3.c: Ditto.
      	Require lp64 effective target.
      
      From-SVN: r254635
      Uros Bizjak committed
    • GFNI enabling [3/4] · a76e0b43
      gcc/
      	 * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8,
      	 _mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8,
      	 _mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8,
      	 _mm256_maskz_gf2p8affine_epi64_epi8,
      	 _mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8
      	 _mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
      	 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi,
      	 __builtin_ia32_vgf2p8affineqb_v32qi,
      	 __builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
      	 * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
      gcc/testsuite/
      	 * gcc.target/i386/avx-1.c: Handle new intrinsics.
      	 * gcc.target/i386/avx512f-gf2p8affineqb-2.c: New runtime tests.
      	 * gcc.target/i386/avx512vl-gf2p8affineqb-2.c: Ditto.
      	 * gcc.target/i386/gfni-1.c: Add tests for GF2P8AFFINE.
      	 * gcc.target/i386/gfni-2.c: Ditto.
      	 * gcc.target/i386/gfni-3.c: Ditto.
      	 * gcc.target/i386/gfni-4.c: Ditto.
      	 * gcc.target/i386/sse-13.c: Handle new tests.
      	 * gcc.target/i386/sse-14.c: Handle new tests.
      	 * gcc.target/i386/sse-23.c: Handle new tests.
      
      From-SVN: r254634
      Julia Koval committed
    • [testsuite/ARM] Consolidate sources for cmse tests · 9e72bc90
      For the most part, testcases under gcc.target/arm/cmse/baseline and
      gcc.target/arm/cmse/mainline are duplicate copies with only different
      dejagnu directives. Although there is no requirement for them to be
      similar, having them both identical allow to compare the code generated
      and make it easier in case of change in code generation to both
      architecture to update the testcases (if one needs updating so does the
      other).
      
      Similarly all the tests in gcc.target/arm/cmse/mainline/<floatabi> have
      the same source but are duplicate copies.
      
      This patch moves all the code in the tests to a parent directory:
      gcc.target/arm/cmse for tests shared by Armv8-M Baseline and Mainline
      and gcc.target/arm/cmse/mainline for tests *only* shared by the various
      float ABI of Armv8-M Mainline. C includes are then used where the code
      used to sit.
      
      Note that the cmse-13.c test used to differ slightly between
      architectures and float ABI tested in the first floating-point constant
      passed to bar: sometimes 1.0 and sometimes 3.0. This patch settles on
      3.0 to not confuse with the 1.0 constant used to clear VFP registers in
      some of the configurations.
      
      2017-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * gcc.target/arm/cmse/bitfield-4.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-4.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-4.c: Likewise.
          * gcc.target/arm/cmse/bitfield-5.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-5.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-5.c: Likewise.
          * gcc.target/arm/cmse/bitfield-6.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-6.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-6.c: Likewise.
          * gcc.target/arm/cmse/bitfield-7.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-7.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-7.c: Likewise.
          * gcc.target/arm/cmse/bitfield-8.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-8.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-8.c: Likewise.
          * gcc.target/arm/cmse/bitfield-9.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-9.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-9.c: Likewise.
          * gcc.target/arm/cmse/bitfield-and-union.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-and-union-1.c: Rename into ...
          * gcc.target/arm/cmse/baseline/bitfield-and-union.c: This.  Remove code
          and include above bitfield-and-union.x file.
          * gcc.target/arm/cmse/mainline/bitfield-and-union-1.c: Rename into ...
          * gcc.target/arm/cmse/mainline/bitfield-and-union.c: this.  Remove code
          and include above bitfield-and-union.x file.
          * gcc.target/arm/cmse/cmse-13.x: New file.
          * gcc.target/arm/cmse/baseline/cmse-13.c: Remove code and include above
          file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/mainline/hard/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/cmse-5.x: New file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: Remove code and
          include above file.
          * gcc.target/arm/cmse/mainline/hard/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/cmse-7.x: New file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: Remove code and
          include above file.
          * gcc.target/arm/cmse/mainline/hard/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/cmse-8.x: New file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: Remove code and
          include above file.
          * gcc.target/arm/cmse/mainline/hard/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/union-1.x: New file.
          * gcc.target/arm/cmse/baseline/union-1.c: Remove code and include above
          file.
          * gcc.target/arm/cmse/mainline/union-1.c: Likewise.
          * gcc.target/arm/cmse/union-2.x: New file.
          * gcc.target/arm/cmse/baseline/union-2.c: Remove code and include above
          file.
          * gcc.target/arm/cmse/mainline/union-2.c: Likewise.
      
      From-SVN: r254633
      Thomas Preud'homme committed
    • re PR target/82641 (Unable to enable crc32 for a certain function with target… · 008a11cc
      re PR target/82641 (Unable to enable crc32 for a certain function with target attribute on ARM (aarch32))
      
      2017-11-10  Tamar Christina  <tamar.christina@arm.com>
      
      	PR target/82641
      	* config/arm/arm.c
      	(arm_option_override): Refactor.
      	(arm_option_reconfigure_globals): New.
      	(arm_options_perform_arch_sanity_checks): New.
      	* config/arm/arm-protos.h (arm_option_reconfigure_globals): New prototype.
      	(arm_options_perform_arch_sanity_checks): Likewise
      
      From-SVN: r254632
      Tamar Christina committed
    • power9.md (power9-qpdiv): Correct DFU pipe usage. · cd764269
      	* rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
      	(power9-qpmul): New.
      	* rs6000/rs6000.md ("type" attr): Add qmul.
      	(mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
      	*nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
      	*nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
      
      From-SVN: r254631
      Pat Haugen committed
    • PR c/81117 - Improve buffer overflow checking in strncpy · 025d57f0
      gcc/ChangeLog:
      
      	PR c/81117
      	* builtins.c (compute_objsize): Handle arrays that
      	compute_builtin_object_size likes to fail for.  Make extern.
      	* builtins.h (compute_objsize): Declare.
      	(check_strncpy_sizes): New function.
      	(expand_builtin_strncpy): Call check_strncpy_sizes.
      	* gimple-fold.c (gimple_fold_builtin_strncpy): Implement
      	-Wstringop-truncation.
      	(gimple_fold_builtin_strncat): Same.
      	* gimple.c (gimple_build_call_from_tree): Set call location.
      	* tree-ssa-strlen.c (strlen_to_stridx): New global variable.
      	(maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
      	(handle_builtin_stxncpy, handle_builtin_strncat): Same.
      	(handle_builtin_strlen): Use strlen_to_stridx.
      	(strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
      	stpncpy.
      	Use strlen_to_stridx.
      	(pass_strlen::execute): Release strlen_to_stridx.
      	* doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
      	(-Wstringop-truncation): Document new option.
      
      gcc/ada/ChangeLog:
      
      	PR c/81117
      	* ada/adadecode.c (__gnat_decode): Use memcpy instead of strncpy.
      	* ada/argv.c (__gnat_fill_arg, __gnat_fill_env): Same.
      
      gcc/c-family/ChangeLog:
      
      	PR c/81117
      	* c-common.c (catenate_strings): Use memcpy instead of strncpy.
      	* c-warn.c (sizeof_pointer_memaccess_warning): Handle arrays.
      	* c.opt (-Wstringop-truncation): New option.
      
      gcc/fortran/ChangeLog:
      
      	PR c/81117
      	* gcc/fortran/decl.c (build_sym): Use strcpy instead of strncpy.
      
      gcc/objc/ChangeLog:
      
      	PR c/81117
      	* objc-encoding.c (encode_type): Use memcpy instead of strncpy.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/81117
      	* c-c++-common/Wsizeof-pointer-memaccess3.c: New test.
      	* c-c++-common/Wstringop-overflow.c: Same.
      	* c-c++-common/Wstringop-truncation.c: Same.
      	* c-c++-common/Wsizeof-pointer-memaccess2.c: Adjust.
      	* c-c++-common/attr-nonstring-2.c: New test.
      	* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Adjust.
      	* g++.dg/torture/Wsizeof-pointer-memaccess2.C: Same.
      	* gcc.dg/torture/pr63554.c: Same.
      	* gcc.dg/Walloca-1.c: Disable macro tracking.
      
      From-SVN: r254630
      Martin Sebor committed
    • GCOV: create one intermediate file per a gcno file (PR gcov-profile/82702). · e89ce41d
      2017-11-10  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/82702
      	* gcov.c (main): Handle intermediate files in a different
      	way.
      	(get_gcov_intermediate_filename): New function.
      	(output_gcov_file): Remove support of intermediate files.
      	(generate_results): Allocate intermediate file.
      	(release_structures): Clean-up properly fn_end.
      	(output_intermediate_file): Start iterating with line 1.
      
      From-SVN: r254629
      Martin Liska committed
    • re PR tree-optimization/82929 (r254579 causes ICE: tree check: expected… · 127ef369
      re PR tree-optimization/82929 (r254579 causes ICE: tree check: expected ssa_name, have array_ref in has_single_use, at ssa-iterators.h:400)
      
      	PR tree-optimization/82929
      	* gimple-ssa-store-merging.c (struct store_immediate_info): Add
      	ops_swapped_p non-static data member.
      	(store_immediate_info::store_immediate_info): Clear it.
      	(imm_store_chain_info::coalesce_immediate_stores): If swapping
      	ops set ops_swapped_p.
      	(count_multiple_uses): Handle ops_swapped_p.
      
      	* gcc.dg/pr82929.c: New test.
      	* g++.dg/opt/pr82929.C: New test.
      
      From-SVN: r254628
      Jakub Jelinek committed
    • GCOV: do not support unexecuted blocks in Ada · 93814e2d
      2017-11-10  Martin Liska  <mliska@suse.cz>
      
      	* coverage.c (coverage_init): Stream information about
      	support of has_unexecuted_blocks.
      	* doc/gcov.texi: Document that.
      	* gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
      	* gcov.c (read_graph_file): Likewise.
      	(output_line_beginning): Fix a small issue with
      	color output.
      
      From-SVN: r254627
      Martin Liska committed
    • [ARM,testsuite] Skip copysign_softfloat_1.c on hard-float targets · 1ea8c961
      gcc/testsuite/
      
      2017-11-10  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* lib/target-supports.exp (check_effective_target_arm_soft_ok):
      	New function.
      	* gcc.target/arm/copysign_softfloat_1.c: Require arm_soft_ok
      	effective target.
      
      From-SVN: r254626
      Christophe Lyon committed
    • tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing reference of trivial component. · df3c2945
      	* tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
      	reference of trivial component.
      
      From-SVN: r254625
      Bin Cheng committed
    • re PR fortran/82934 (Segfault on assumed character length in allocate) · 8cd119d8
      2017-11-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82934
      	* trans-stmt.c (gfc_trans_allocate): Remove the gcc_assert on
      	null string length for assumed length typespec and set
      	expr3_esize to NULL_TREE;
      
      2017-11-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82934
      	* gfortran.dg/allocate_assumed_charlen_1.f90: New test.
      
      From-SVN: r254624
      Paul Thomas committed
    • re PR bootstrap/82916 (gcc miscompiled during stagefeedback (PGO bootstrap)) · 9e875fd8
      	PR bootstrap/82916
      	* gimple-ssa-store-merging.c
      	(pass_store_merging::terminate_all_aliasing_chains): For
      	gimple_store_p stmts also call refs_output_dependent_p.
      
      	* gcc.dg/store_merging_2.c: Only expect 2 successful mergings instead
      	of 3.
      	* gcc.dg/pr82916.c: New test.
      
      From-SVN: r254623
      Jakub Jelinek committed
    • [testsuite] Fix retrieval of testname · db489777
      When gcc-dg-runtest is used to run a test the test is run several times
      with different options. For clarity of the log, the test infrastructure
      then append the options to the testname. This means that all the code
      that must deal with the testcase itself (eg. removing the output files
      after the test has run) needs to remove the option name.
      
      There is already a pattern (see below) for this in several place of the
      testsuite framework but it is also missing in many places. This patch
      fixes all of these places. The pattern is as follows:
      
      set testcase [testname-for-summary]
      ; The name might include a list of options; extract the file name.
      set testcase [lindex $testcase 0]
      
      2017-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * lib/scanasm.exp (scan-assembler): Extract filename from testname used
          in summary.
          (scan-assembler-not): Likewise.
          (scan-hidden): Likewise.
          (scan-not-hidden): Likewise.
          (scan-stack-usage): Likewise.
          (scan-stack-usage-not): Likewise.
          (scan-assembler-times): Likewise.
          (scan-assembler-dem): Likewise.
          (scan-assembler-dem-not): Likewise.
          (object-size): Likewise.
          (scan-lto-assembler): Likewise.
          * lib/scandump.exp (scan-dump): Likewise.
          (scan-dump-times): Likewise.
          (scan-dump-not): Likewise.
          (scan-dump-dem): Likewise.
          (scan-dump-dem-not): Likewise
      
      From-SVN: r254622
      Thomas Preud'homme committed
    • Update copyright years · b51b7be1
      From-SVN: r254621
      Eric Botcazou committed
    • utils.c (convert): Add comment and do not fall through to the next case. · 4896b865
      	* gcc-interface/utils.c (convert) <RECORD_TYPE>: Add comment and do
      	not fall through to the next case.
      	<ARRAY_TYPE>: Deal specially with a dereference from another array
      	type with the same element type.
      
      From-SVN: r254618
      Eric Botcazou committed
    • Daily bump. · 35b9d8e7
      From-SVN: r254617
      GCC Administrator committed
  3. 09 Nov, 2017 12 commits
    • re PR rtl-optimization/82913 (ICE: Segmentation fault in try_merge_compare) · e9b8a628
      	PR rtl-optimization/82913
      	* compare-elim.c (try_merge_compare): Punt if def_insn is not
      	single set.
      
      	* gcc.c-torture/compile/pr82913.c: New test.
      
      From-SVN: r254614
      Jakub Jelinek committed
    • vr-values.h: New file with vr_values class. · 89759031
      	* vr-values.h: New file with vr_values class.
      	* tree-vrp.c: Include vr-values.h
      	(vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
      	data objects into the vr_values class.
      	(vr_value, values_propagated, vr_phi_edge_counts): Likewise.
      	(get_value_range): Make it a member function within vr_values class.
      	(set_defs_to_varying, update_value_range, add_equivalence): Likewise.
      	(vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
      	(op_with_constant_singleton_value_range): Likewise.
      	(extract_range_for_var_from_comparison_expr): Likewise.
      	(extract_range_from_assert, extract_range_from_ssa_name): Likewise.
      	(extract_range_from_binary_expr): Likewise.
      	(extract_range_from_unary_expr): Likewise.
      	(extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
      	(check_for_binary_op_overflow, extract_range_basic): Likewise.
      	(extract_range_from_assignment, adjust_range_with_scev): Likewise.
      	(dump_all_value_ranges, get_vr_for_comparison): Likewise.
      	(compare_name_with_value, compare_names): Likewise.
      	(vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
      	(vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
      	(vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
      	(vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
      	(extract_range_from_phi_node): Likewise.
      	(simplify_truth_ops_using_ranges): Likewise.
      	(simplify_div_or_mod_using_ranges): Likewise.
      	(simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
      	(simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
      	(simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
      	(simplify_float_conversion_using_ranges): Likewise.
      	(simplify_internal_call_using_ranges): Likewise.
      	(two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
      	(vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
      	poitner via x_vr_values for calls into gimple folder.
      	(vrp_initialize_lattice): Make this the vr_values ctor.
      	(vrp_free_lattice): Make this the vr_values dtor.
      	(set_vr_value): New function.
      	(class vrp_prop): Add vr_values data member.  Add various member
      	functions as well as member functions that delegate to vr_values.
      	(check_array_ref): Make a member function within vrp_prop class.
      	(search_for_addr_array, vrp_initialize): Likewise.
      	(vrp_finalize): Likewise.  Revamp to avoid direct access to
      	vr_value, values_propagated, etc.
      	(check_array_bounds): Extract vrp_prop class instance pointer from
      	walk info structure.  Use it to call member functions.
      	(check_all_array_refs): Make a member function within vrp_prop class.
      	Smuggle class instance pointer via walk info structure.
      	(x_vr_values): New local static.
      	(vrp_valueize): Use x_vr_values to get class instance.
      	(vr_valueize_1): Likewise.
      	(class vrp_folder): Add vr_values data member.  Add various member
      	functions as well as member functions that delegate to vr_values.
      	(fold_predicate_in): Make a mber fucntion within vrp_folder class.
      	(simplify_stmt_for_jump_threading): Extract smuggled vr_values
      	class instance from vr_values.  Use it to call member functions.
      	(vrp_dom_walker): Add vr_values data member.
      	(vrp_dom_walker::after_dom_children): Smuggle vr_values class
      	instance via x_vr_values.
      	(identify_jump_threads): Accept vr_values as argument.  Store
      	it into the walker structure.
      	(evrp_dom_walker): Add vr_values class data member.  Add various
      	delegators.
      	(evrp_dom_walker::try_find_new_range): Use vr_values data
      	member to access the memory allocator.
      	(evrp_dom_walker::before_dom_children): Store vr_values class
      	instance into the vrp_folder class.
      	(evrp_dom_walker::push_value_range): Rework to avoid direct
      	access to num_vr_values and vr_value.
      	(evrp_dom_walker::pop_value_range): Likewise.
      	(execute_early_vrp): Remove call to vrp_initialize_lattice.
      	Use vr_values to get to dump_all_value_ranges member function.
      	Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
      	and simplify_cond_using_ranges_2 via vrp_prop class instance.
      	Pass vr_values class instance down to identify_jump_threads.
      	Remove call to vrp_free_lattice.
      	(debug_all_value_ranges): Remove.
      
      From-SVN: r254613
      Jeff Law committed
    • tree-vrp.c (vrp_prop): Move class to earlier point in the file. · f2a7f77b
      	* tree-vrp.c (vrp_prop): Move class to earlier point in the file.
      	(vrp_folder): Likewise.
      
      From-SVN: r254612
      Jeff Law committed
    • tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack. · 51308fc3
      	* tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
      	Get it from the existing bitmap instead.
      	(vrp_intersect_ranges_1): Likewise.
      
      From-SVN: r254611
      Jeff Law committed
    • sync/atomic, runtime/internal/atomic: don't assume reads from 0 fail · 5ac29058
          
          For a misaligned address force a panic rather than assuming that reading
          from the address 0 will cause one.
          
          Reviewed-on: https://go-review.googlesource.com/69850
      
      From-SVN: r254610
      Ian Lance Taylor committed
    • gimple-ssa-store-merging.c (struct store_immediate_info): Add bit_not_p field. · d60edaba
      	* gimple-ssa-store-merging.c (struct store_immediate_info): Add
      	bit_not_p field.
      	(store_immediate_info::store_immediate_info): Add bitnotp argument,
      	set bit_not_p to it.
      	(imm_store_chain_info::coalesce_immediate_stores): Break group
      	if bit_not_p is different.
      	(count_multiple_uses, split_group,
      	imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
      	(handled_load): Avoid multiple chained BIT_NOT_EXPRs.
      	(pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
      	result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
      	to store_immediate_info ctor.
      
      From-SVN: r254606
      Jakub Jelinek committed
    • re PR fortran/78619 (ICE in copy_reference_ops_from_ref, at tree-ssa-sccvn.c:889) · 6e307219
      2017-11-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/78619
      	* check.c (same_type_check): Introduce a new argument 'assoc'
      	with default value false. If this is true, use the symbol type
      	spec of BT_PROCEDURE expressions.
      	(gfc_check_associated): Set 'assoc' true in the call to
      	'same_type_check'.
      
      2017-11-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/78619
      	* gfortran.dg/pr78619.f90: New test.
      
      From-SVN: r254605
      Paul Thomas committed
    • re PR fortran/78814 (ICE in symbol_rank, at fortran/interface.c:1265) · 1fb84d5b
      2017-11-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/78814
      	* interface.c (symbol_rank): Check for NULL pointer.
      
      2017-11-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/78814
      	* gfortran.dg/interface_40.f90: New testcase.
      
      From-SVN: r254604
      Steven G. Kargl committed
    • Remove obsolete ECOFF support. · f097ff23
      	* collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
      	(scan_prog_file): Likewise.
      
      From-SVN: r254603
      Jim Wilson committed
    • bb-reorder.c (max_entry_frequency): Remove. · 370df3ce
      	* bb-reorder.c (max_entry_frequency): Remove.
      	(find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
      	connect_traces, push_to_next_round_p): Remove prototypes.
      	(find_traces_1_round): Use counts only.
      	(push_to_next_round_p): Likewise.
      	(find_traces): Likewise.
      	(rotate_loop): Likewise.
      	(find_traces_1_round): Likewise.
      	(connect_traces): Likewise.
      	(edge_order): Likewise.
      
      From-SVN: r254602
      Jan Hubicka committed
    • [ARM] Fix cmse_nonsecure_entry return insn size · 9f28fe39
      A number of instructions are output in assembler form by
      output_return_instruction () when compiling a function with the
      cmse_nonsecure_entry attribute for Armv8-M Mainline with hardfloat float
      ABI. However, the corresponding thumb2_cmse_entry_return insn pattern
      does not account for all these instructions in its computing of the
      length of the instruction.
      
      This may lead GCC to use the wrong branching instruction due to
      incorrect computation of the offset between the branch instruction's
      address and the target address.
      
      This commit fixes the mismatch between what output_return_instruction ()
      does and what the pattern think it does and adds a note warning about
      mismatch in the affected functions' heading comments to ensure code does
      not get out of sync again.
      
      Note: no test is provided because the C testcase is fragile (only works
      on GCC 6) and the extracted RTL test fails to compile due to bugs in the
      RTL frontend (PR82815 and PR82817)
      
      2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm.c (output_return_instruction): Add comments to
          indicate requirement for cmse_nonsecure_entry return to account
          for the size of clearing instruction output here.
          (thumb_exit): Likewise.
          * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
          return in hardfloat mode.
      
      From-SVN: r254601
      Thomas Preud'homme committed
    • controlled2.adb, [...]: Disable all warnings. · 9222c9e3
      	* gnat.dg/controlled2.adb, gnat.dg/controlled4.adb,
      	gnat.dg/finalized.adb: Disable all warnings.
      
      From-SVN: r254600
      Eric Botcazou committed