Commit Graph

157587 Commits

Author SHA1 Message Date
Jakub Jelinek
a6fbd15424 re PR tree-optimization/78821 (GCC7: Copying whole 32 bits structure field by field not optimised into copying whole 32 bits at once)
PR tree-optimization/78821
	* gimple-ssa-store-merging.c (compatible_load_p): Don't require
	that bit_not_p is the same.
	(imm_store_chain_info::coalesce_immediate_stores): Likewise.
	(split_group): Count precisely bit_not_p bits in each statement.
	(invert_op): New function.
	(imm_store_chain_info::output_merged_store): Use invert_op to
	emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
	but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.

	* gcc.dg/store_merging_15.c: New test.

From-SVN: r254679
2017-11-13 11:26:13 +01:00
Martin Liska
a1b5dd18ae GCOV: remove typedef of coverage_t.
2017-11-13  Martin Liska  <mliska@suse.cz>

	* gcov.c (struct coverage_info): Remove typedef of coverage_t.
	(struct source_info): Likewise.
	(add_branch_counts): Likewise.
	(add_line_counts): Likewise.
	(function_summary): Likewise.
	(output_intermediate_line): Likewise.
	(generate_results): Likewise.

From-SVN: r254678
2017-11-13 09:06:54 +00:00
Martin Liska
bea002e923 GCOV: remove typedef for block_t
2017-11-13  Martin Liska  <mliska@suse.cz>

	* gcov.c (struct block_info): Remove typedef for block_t.
	(struct line_info): Likewise.
	(line_info::has_block): Likewise.
	(EXIT_BLOCK): Likewise.
	(unblock): Likewise.
	(circuit): Likewise.
	(get_cycles_count): Likewise.
	(process_file): Likewise.
	(read_graph_file): Likewise.
	(solve_flow_graph): Likewise.
	(find_exception_blocks): Likewise.
	(add_line_counts): Likewise.
	(accumulate_line_info): Likewise.
	(output_line_details): Likewise.

From-SVN: r254677
2017-11-13 09:06:43 +00:00
Martin Liska
232c80f2d1 GCOV: remove typedef for arc_t
2017-11-13  Martin Liska  <mliska@suse.cz>

	* gcov.c (struct arc_info): Remove typedef for arc_t.
	(struct line_info): Likewise.
	(add_branch_counts): Likewise.
	(output_branch_count): Likewise.
	(function_info::~function_info): Likewise.
	(circuit): Likewise.
	(output_intermediate_line): Likewise.
	(read_graph_file): Likewise.
	(solve_flow_graph): Likewise.
	(find_exception_blocks): Likewise.
	(add_line_counts): Likewise.
	(accumulate_line_info): Likewise.
	(output_line_details): Likewise.
	(output_function_details): Likewise.

From-SVN: r254676
2017-11-13 09:06:26 +00:00
Martin Liska
cb8758b202 GCOV: remove typedef for function_t
2017-11-13  Martin Liska  <mliska@suse.cz>

	* gcov.c (struct function_info): Remove typedef for function_t.
	(struct source_info): Likewise.
	(source_info::get_functions_at_location): Likewise.
	(solve_flow_graph): Likewise.
	(find_exception_blocks): Likewise.
	(add_line_counts): Likewise.
	(output_intermediate_file): Likewise.
	(process_file): Likewise.
	(generate_results): Likewise.
	(release_structures): Likewise.
	(read_graph_file): Likewise.
	(read_count_file): Likewise.
	(accumulate_line_counts): Likewise.
	(output_lines): Likewise.

From-SVN: r254675
2017-11-13 09:06:13 +00:00
Martin Liska
4464b9772d GCOV: introduce vector for function_info::counts.
2017-11-13  Martin Liska  <mliska@suse.cz>

	* gcov.c (function_info::function_info): Remove num_counts
	and add vector<gcov_type>.
	(function_info::~function_info): Use the vector.
	(process_file): Likewise.
	(read_graph_file): Likewise.
	(read_count_file): Likewise.
	(solve_flow_graph): Likewise.

From-SVN: r254674
2017-11-13 09:05:55 +00:00
Martin Liska
1e81a283a2 GCOV: simplify usage of function_info::artificial.
2017-11-13  Martin Liska  <mliska@suse.cz>

	* gcov.c (function_info::is_artificial): New function.
	(process_file): Erase all artificial early.
	(generate_results): Skip as all artificial are already
	removed.

From-SVN: r254673
2017-11-13 09:05:38 +00:00
Martin Liska
211bea6b40 GCOV: introduce global vector of functions
2017-11-13  Martin Liska  <mliska@suse.cz>

	* gcov.c (read_graph_file): Store to global vector of functions.
	(read_count_file): Iterate the vector.
	(process_file): Likewise.
	(generate_results): Likewise.
	(release_structures): Likewise.

From-SVN: r254672
2017-11-13 09:05:20 +00:00
Jakub Jelinek
5bfd2f9bc6 re PR tree-optimization/82954 (ICE in fold_binary_loc, at fold-const.c:9061)
PR tree-optimization/82954
	* gimple-ssa-store-merging.c
	(imm_store_chain_info::coalesce_immediate_stores): If
	!infof->ops[N].base_addr, split group if info->ops[N].base_addr.

	* gcc.c-torture/execute/pr82954.c: New test.

From-SVN: r254671
2017-11-13 10:01:24 +01:00
Richard Sandiford
441b4d0fa2 [AArch64] More aarch64_endian_lane_rtx
r254466 failed to update some uses of ENDIAN_LANE_N that were added after
the patch was initially written, which meant that we were treating the
mode number as an element count.

2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
	Upddate call to ENDIAN_LANE_N.
	(aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
	(aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
	(*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
	and use aarch64_endian_lane_rtx.
	(*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.

From-SVN: r254670
2017-11-13 08:21:16 +00:00
GCC Administrator
41a0d8d4c0 Daily bump.
From-SVN: r254669
2017-11-13 00:16:19 +00:00
Tom de Vries
2041a23a2e [riscv] Wrap ASM_OUTPUT_LABELREF in do {} while (0)
2017-11-12  Tom de Vries  <tom@codesourcery.com>

	* config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).

From-SVN: r254666
2017-11-12 16:07:30 +00:00
Tom de Vries
180b558034 Remove semicolon after ASM_OUTPUT_ASCII
2017-11-12  Tom de Vries  <tom@codesourcery.com>

	* config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.

From-SVN: r254665
2017-11-12 16:07:19 +00:00
Tom de Vries
b59b0914e4 [cr16, powerpcspe, rs6000] Remove semicolon after ASM_OUTPUT_LABELREF macro body
2017-11-12  Tom de Vries  <tom@codesourcery.com>

	* config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
	body.
	* config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
	* config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
	* defaults.h (ASM_OUTPUT_LABELREF): Same.

From-SVN: r254664
2017-11-12 16:07:08 +00:00
GCC Administrator
5b88308195 Daily bump.
From-SVN: r254663
2017-11-12 00:16:16 +00:00
Janus Weil
859e3093a4 re PR fortran/82932 ([OOP] ICE in update_compcall_arglist, at fortran/resolve.c:5837)
2017-11-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/82932
	* resolve.c (update_compcall_arglist): Improve error recovery,
	remove a gcc_assert.

2017-11-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/82932
	* gfortran.dg/typebound_call_29.f90: New test.

From-SVN: r254660
2017-11-11 22:54:41 +01:00
Martin Sebor
6aab06c745 re PR c/81117 (Improve buffer overflow checking in strncpy)
gcc/ChangeLog:

	PR c/81117
	* doc/extend.texi (attribute nonstring): Remove spurious argument.

From-SVN: r254659
2017-11-11 11:04:21 -07:00
Martin Sebor
42c544b035 PR bootstrap/82948 - prefix.c:202:15: error: 'char* strncpy(char*, const char*,
size_t)' destination unchanged after copying no bytes 

gcc/ChangeLog:

	PR bootstrap/82948
	* prefic.c (translate_name): Replace strncpy with memcpy to
	avoid -Wstringop-truncation.

From-SVN: r254658
2017-11-11 10:43:48 -07:00
Kirill Yukhin
aead609fc1 Add forgotten tests.
From-SVN: r254657
2017-11-11 17:09:25 +00:00
Jan Hubicka
90b2566bdf * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
From-SVN: r254653
2017-11-11 13:06:07 +00:00
Jan Hubicka
259a61d4be * predict.c (maybe_hot_frequency_p): Do not use cfun.
From-SVN: r254652
2017-11-11 13:04:25 +00:00
Jan Hubicka
c33538e3b7 * predict.c (maybe_hot_frequency_p): Do not use cfun.
From-SVN: r254651
2017-11-11 12:59:33 +00:00
Jan Hubicka
f38b36471d tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile merging.
* tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
	merging.

From-SVN: r254650
2017-11-11 12:58:13 +00:00
Eric Botcazou
e8c91a4c5e Remove ada/ prefix
From-SVN: r254649
2017-11-11 11:24:36 +00:00
Fritz Reese
1305135257 re PR fortran/82886 (ICE with -finit-derived in gfc_conv_expr, at fortran/trans-expr.c:7807)
2017-11-10  Fritz Reese <fritzoreese@gmail.com>

    PR fortran/82886

    gcc/fortran/ChangeLog:

	PR fortran/82886
	* gfortran.h (gfc_build_init_expr): New prototype.
	* invoke.texi (finit-derived): Update documentation.
	* expr.c (gfc_build_init_expr): New, from gfc_build_default_init_expr.
	(gfc_build_default_init_expr): Redirect to gfc_build_init_expr(,,false)
	(component_initializer): Force building initializers using
	gfc_build_init_expr(,,true).

    gcc/testsuite/ChangeLog:

	PR fortran/82886
	* gfortran.dg/init_flag_16.f03: New testcase.

From-SVN: r254648
2017-11-11 00:47:53 +00:00
GCC Administrator
2392736c51 Daily bump.
From-SVN: r254647
2017-11-11 00:16:14 +00:00
Jonathan Wakely
34c71b8b3a Minor tweak to libstdc++ testsuite helper type
* testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.

From-SVN: r254644
2017-11-11 00:10:07 +00:00
Michael Meissner
4f58c0d118 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
2017-11-10 22:59:40 +00:00
Jeff Law
d72b0a3f3b Fix my last ChangeLog entry
From-SVN: r254642
2017-11-10 15:51:42 -07:00
Martin Sebor
6e718159ce re PR c/81117 (Improve buffer overflow checking in strncpy)
gcc/ChangeLog:

	PR c/81117
	* config/darwin-c.c (framework_construct_pathname): Replace strncpy
	with memcpy.
	(find_subframework_file): Same.

From-SVN: r254641
2017-11-10 15:48:43 -07:00
Stephen Crane
f382ac6d52 Add plugin API for processing plugin-added input files.
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
2017-11-10 22:10:05 +00:00
Jeff Law
16207ddd2e vr-values.h (VR_INITIALIZER): Move #define here.
* 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
2017-11-10 15:01:53 -07:00
Jonathan Wakely
54df588530 PR libstdc++/82917 add missing returns in <fstream>
PR libstdc++/82917
	* include/std/fstream (basic_ifstream::open, basic_ofstream::open)
	(basic_fstream::open): Fix missing return.

From-SVN: r254638
2017-11-10 21:43:24 +00:00
Jan Hubicka
1bad9c1806 auto-profile.c (afdo_indirect_call): Drop frequency.
* 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
2017-11-10 20:14:52 +00:00
Uros Bizjak
a0e6ac4438 force-indirect-call-1.c: Merge scan strings.
* 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
2017-11-10 20:01:50 +01:00
Julia Koval
a76e0b4373 GFNI enabling [3/4]
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
2017-11-10 18:47:28 +00:00
Thomas Preud'homme
9e72bc9086 [testsuite/ARM] Consolidate sources for cmse tests
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
2017-11-10 18:20:33 +00:00
Tamar Christina
008a11cc70 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
2017-11-10 17:14:28 +00:00
Pat Haugen
cd764269a1 power9.md (power9-qpdiv): Correct DFU pipe usage.
* 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
2017-11-10 16:46:54 +00:00
Martin Sebor
025d57f037 PR c/81117 - Improve buffer overflow checking in strncpy
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
2017-11-10 09:35:26 -07:00
Martin Liska
e89ce41dba GCOV: create one intermediate file per a gcno file (PR gcov-profile/82702).
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
2017-11-10 15:23:24 +00:00
Jakub Jelinek
127ef36981 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
2017-11-10 15:43:13 +01:00
Martin Liska
93814e2d69 GCOV: do not support unexecuted blocks in Ada
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
2017-11-10 14:40:17 +00:00
Christophe Lyon
1ea8c961c8 [ARM,testsuite] Skip copysign_softfloat_1.c on hard-float targets
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
2017-11-10 13:54:59 +01:00
Bin Cheng
df3c294536 tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing reference of trivial component.
* tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
	reference of trivial component.

From-SVN: r254625
2017-11-10 12:46:33 +00:00
Paul Thomas
8cd119d857 re PR fortran/82934 (Segfault on assumed character length in allocate)
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
2017-11-10 12:24:24 +00:00
Jakub Jelinek
9e875fd864 re PR bootstrap/82916 (gcc miscompiled during stagefeedback (PGO bootstrap))
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
2017-11-10 11:31:34 +01:00
Thomas Preud'homme
db489777bb [testsuite] Fix retrieval of testname
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
2017-11-10 09:42:45 +00:00
Eric Botcazou
b51b7be18d Update copyright years
From-SVN: r254621
2017-11-10 08:36:30 +00:00
Eric Botcazou
4896b86556 utils.c (convert): Add comment and do not fall through to the next case.
* 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
2017-11-10 08:21:05 +00:00