Commit Graph

153621 Commits

Author SHA1 Message Date
Jakub Jelinek
8dc6a926f2 re PR tree-optimization/80632 (error: invalid PHI argument with -O2)
PR tree-optimization/80632
	* tree-switch-conversion.c (struct switch_conv_info): Add target_vop
	field.
	(build_arrays): Initialize it for virtual phis.
	(fix_phi_nodes): Use it for virtual phis.

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

From-SVN: r247642
2017-05-05 18:02:44 +02:00
Jakub Jelinek
ac699a047f re PR tree-optimization/80558 (VRP not handling x & -2 well)
PR tree-optimization/80558
	* tree-vrp.c (extract_range_from_binary_expr_1): Optimize
	[x, y] op z into [x op, y op z] for op & or | if conditions
	are met.

	* gcc.dg/tree-ssa/vrp115.c: New test.

From-SVN: r247641
2017-05-05 17:43:22 +02:00
Andre Vieira
655b5fc85b [ARM] PR71607: Fix ICE when loading constant
2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
            Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

    gcc/
    PR target/71607
    * config/arm/arm.md (use_literal_pool): Remove.
    (64-bit immediate split): No longer takes cost into consideration
    if arm_disable_literal_pool is enabled.
    * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
    used when arm_disable_literal_pool is enabled.
    (arm_max_const_double_inline_cost): Remove use of
    arm_disable_literal_pool.
    (push_minipool_fix): Add assert.
    (arm_reorg): Add return if arm_disable_literal_pool is enabled.
    * config/arm/vfp.md (no_literal_pool_df_immediate): New.
    (no_literal_pool_sf_immediate): New.

2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
        Thomas Preud'homme  <thomas.preudhomme@arm.com>
        Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

    gcc/testsuite/
    PR target/71607
    * gcc.target/arm/thumb2-slow-flash-data.c: Renamed to ...
    * gcc.target/arm/thumb2-slow-flash-data-1.c: ... this.
    * gcc.target/arm/thumb2-slow-flash-data-2.c: New.
    * gcc.target/arm/thumb2-slow-flash-data-3.c: New.
    * gcc.target/arm/thumb2-slow-flash-data-4.c: New.
    * gcc.target/arm/thumb2-slow-flash-data-5.c: New.
    * gcc.target/arm/tls-disable-literal-pool.c: New.

Co-Authored-By: Prakhar Bahuguna <prakhar.bahuguna@arm.com>
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>

From-SVN: r247640
2017-05-05 15:41:28 +00:00
Nathan Sidwell
b6263c5df2 Kill walk_namespaces.
* cp-tree.h (walk_namespaces_fn, walk_namespaces): Delete.
	* decl.c (walk_namespaces_r, walk_namespaces): Delete.

From-SVN: r247638
2017-05-05 15:06:13 +00:00
Prathamesh Kulkarni
c02d2d0adb re PR tree-optimization/80613 (ICE in is_gimple_reg_type with -O2)
2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR tree-optimization/80613
	* tree-ssa-dce.c (propagate_necessity): Remove cases for
	BUILT_IN_STRDUP and BUILT_IN_STRNDUP.

testsuite/
	* gcc.dg/tree-ssa/pr79697.c (k): Remove.

From-SVN: r247635
2017-05-05 13:21:28 +00:00
Richard Biener
79bed25b23 tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
2017-05-05  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.

From-SVN: r247634
2017-05-05 12:51:36 +00:00
Nathan Sidwell
3031802941 Kill per-namespace static_decls.
* cp-tree.h (static_decls): Declare.
	(wrapup_globals_for_namespace)
	diagnose_inline_vars_for_namespace): Replace with ...
	(wrapup_namespace_globals): ... this.
	* decl.c (static_decls): Define.
	(wrapup_globals_for_namespace)
	diagnose_inline_vars_for_namespace): Replace with ...
	(wrapup_namespace_globals): ... this.
	(cxx_init_decl_processing): Initialize static_decls.
	* decl2.c (c_parse_final_cleanups): Adjust.
	* name-lookup.h (cp_binding_level): Remove static_decls member.
	* name-lookup.c (add_decl_to_level): Adjust.
	(begin_scope): Adjust.
((--This line, and those below, will be ignored--

M    cp/cp-tree.h
M    cp/name-lookup.c
M    cp/name-lookup.h
M    cp/ChangeLog
M    cp/decl2.c
M    cp/decl.c

From-SVN: r247633
2017-05-05 11:30:49 +00:00
Georg-Johann Lay
f71425227e avr.md [...]: Remove any occurence of this flag from insn conditions due to removal from r247495.
* config/avr/avr.md [flag_strict_overflow]: Remove any occurence
	of this flag from insn conditions due to removal from r247495.

From-SVN: r247632
2017-05-05 10:35:55 +00:00
Wilco Dijkstra
9d29ae83ed Code scheduling for Cortex-A53 isn't as good as it could be.
Code scheduling for Cortex-A53 isn't as good as it could be.  It turns out
code runs faster overall if we place loads and stores with a dependency
closer together.  To achieve this effect, this patch adds a bypass between
cortex_a53_load1 and cortex_a53_load*/cortex_a53_store* if the result of an
earlier load is used in an address calculation.  This significantly improved
benchmark scores in a proprietary benchmark suite.

    gcc/
	* config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
	New function.
	(arm_early_store_addr_dep_ptr): Likewise.
	* config/arm/aarch-common-protos.h
	(arm_early_load_addr_dep_ptr): Add prototype.
	(arm_early_store_addr_dep_ptr): Likewise.
	* config/arm/cortex-a53.md: Add new bypasses.

From-SVN: r247631
2017-05-05 09:40:01 +00:00
Paolo Carlini
dfae9048a0 re PR c++/71577 (ICE on invalid C++11 code (with extra struct initializer): in digest_init_r, at cp/typeck2.c:1117)
/cp
2017-05-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71577
	* decl.c (reshape_init): Unconditionally return error_mark_node
	upon error about too many initializers.

/testsuite
2017-05-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71577
	* g++.dg/cpp0x/pr71577.C: New.

From-SVN: r247630
2017-05-05 09:02:22 +00:00
Jakub Jelinek
56871768b4 tree.c (next_type_uid): Change type to unsigned.
* tree.c (next_type_uid): Change type to unsigned.
	(type_hash_canon): Decrement back next_type_uid if
	freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
	also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
	if possible.

From-SVN: r247628
2017-05-05 09:35:13 +02:00
GCC Administrator
18c182ff7d Daily bump.
From-SVN: r247627
2017-05-05 00:16:23 +00:00
Martin Sebor
ded507ae42 builtins.c: Fix a trivial typo in a comment.
gcc/ChangeLog:
	* builtins.c: Fix a trivial typo in a comment.

From-SVN: r247623
2017-05-04 17:54:22 -06:00
Martin Sebor
d9c5a8b98a PR libstdc++/54924 - Warn for std::string constructor with wrong size
PR libstdc++/54924 - Warn for std::string constructor with wrong size
PR middle-end/79234 - warn on past the end reads by library functions

gcc/ChangeLog:

	PR middle-end/79234
	* builtins.c (check_sizes): Adjust to handle reading past the end.
	Avoid printing excessive upper bound of ranges.  Use %E to print
	tree nodes instead of converting them to %wu.
	(expand_builtin_memchr): New function.
	(compute_dest_size): Rename...
	(compute_objsize): ...to this.
	(expand_builtin_memcpy): Adjust.
	(expand_builtin_mempcpy): Adjust.
	(expand_builtin_strcat): Adjust.
	(expand_builtin_strcpy): Adjust.
	(check_strncat_sizes): Adjust.
	(expand_builtin_strncat): Adjust.
	(expand_builtin_strncpy): Adjust and simplify.
	(expand_builtin_memset): Adjust.
	(expand_builtin_bzero): Adjust.
	(expand_builtin_memcmp): Adjust.
	(expand_builtin): Handle memcmp.
	(maybe_emit_chk_warning): Check strncat just once.

gcc/testsuite/ChangeLog:

	PR middle-end/79234
	* gcc.dg/builtin-stringop-chk-8.c: New test.
	* gcc.dg/builtin-stringop-chk-1.c: Adjust.
	* gcc.dg/builtin-stringop-chk-4.c: Same.
	* gcc.dg/builtin-strncat-chk-1.c: Same.
	* g++.dg/ext/strncpy-chk1.C: Same.
	* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Same.
	* gcc.dg/out-of-bounds-1.c: Same.
	* gcc.dg/pr78138.c: Same.
	* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Same.
	* gfortran.dg/mvbits_7.f90: Same.

From-SVN: r247622
2017-05-04 17:50:21 -06:00
Martin Sebor
0f3587ec0e Fix a typo.
From-SVN: r247619
2017-05-04 15:04:04 -06:00
Martin Sebor
e50d56a502 PR preprocessor/79214 - -Wno-system-header defeats strncat buffer overflow warnings
PR preprocessor/79214 -  -Wno-system-header defeats strncat buffer overflow warnings
PR middle-end/79222 - missing -Wstringop-overflow= on a stpcpy overflow
PR middle-end/79223 - missing -Wstringop-overflow on a memmove overflow

gcc/ChangeLog:

	PR preprocessor/79214
	PR middle-end/79222
	PR middle-end/79223
	* builtins.c (check_sizes): Add inlinining context and issue
	warnings even when -Wno-system-headers is set.
	(check_strncat_sizes): Same.
	(expand_builtin_strncat): Same.
	(expand_builtin_memmove): New function.
	(expand_builtin_stpncpy): Same.
	(expand_builtin): Handle memmove and stpncpy.

gcc/testsuite/ChangeLog:

	PR preprocessor/79214
	PR middle-end/79222
	PR middle-end/79223
	* gcc.dg/pr79214.c: New test.
	* gcc.dg/pr79214.h: New test header.
	* gcc.dg/pr79222.c: New test.
	* gcc.dg/pr79223.c: New test.
	* gcc.dg/pr78138.c: Adjust.
	* gfortran.dg/unconstrained_commons.f: Same.

From-SVN: r247618
2017-05-04 14:54:43 -06:00
Nathan Sidwell
0f05d90543 * constraint.cc (diagnose_check_constraint): Fix %E thinko.
From-SVN: r247614
2017-05-04 18:37:53 +00:00
Bin Cheng
7e887487db tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr which is not used any more.
* tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
	which is not used any more.

From-SVN: r247612
2017-05-04 18:01:10 +00:00
Wilco Dijkstra
3b4c0f7e1e Many supported cores use the AUTOPREFETCHER_WEAK setting which tries to order...
Many supported cores use the AUTOPREFETCHER_WEAK setting which tries
to order loads and stores to improve streaming performance.  Since significant
gains were reported in http://patchwork.ozlabs.org/patch/534469/ it seems
like a good idea to enable this setting too for -mcpu=generic.  Since the
weak model only keeps the order if it doesn't make the schedule worse, it
should not impact performance adversely on cores that don't show a gain.

    gcc/
        * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.

From-SVN: r247610
2017-05-04 17:52:03 +00:00
Wilco Dijkstra
9779b2e87c Set jump alignment to 4 for Cortex cores as it reduces codesize by 0.4% on...
Set jump alignment to 4 for Cortex cores as it reduces codesize by 0.4% on
average with no obvious performance difference.  See original discussion of
the overheads of various alignments:
https://gcc.gnu.org/ml/gcc-patches/2016-06/msg02075.html.

    gcc/
	* config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(cortexa72_tunings): Likewise.
	(cortexa73_tunings): Likewise.

From-SVN: r247609
2017-05-04 17:49:19 +00:00
Wilco Dijkstra
6b13482bb6 With -mcpu=generic the loop alignment is currently 4.
With -mcpu=generic the loop alignment is currently 4.  All but one of the
supported cores use 8 or higher.  Since using 8 provides performance gains
on several cores, it is best to use that by default.  As discussed in [1],
the jump alignment has no effect on performance, yet has a relatively high
codesize cost [2], so setting it to 4 is best.  This gives a 0.2% overall
codesize improvement as well as performance gains in several benchmarks.

    gcc/
	* config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
	Set loop alignment to 8.

[1] https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00574.html
[2] https://gcc.gnu.org/ml/gcc-patches/2016-06/msg02075.html

From-SVN: r247608
2017-05-04 17:43:43 +00:00
Martin Sebor
0f2c4a8f1d PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
gcc/c-family/ChangeLog:

	PR translation/80280
	* c-attribs.c (handle_alias_ifunc_attribute): Quote a %D directive.
	(handle_weakref_attribute): Same.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/ChangeLog:

	PR translation/80280
	* config/i386/i386.c (ix86_function_versions): Quote a %D directive.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/cp/ChangeLog:

	PR translation/80280
	* call.c (print_z_candidate): Add missing quoting to %D and other
	like directives.
	(build_op_call_1): Same.
	* constraint.cc (diagnose_check_constraint): Same.
	* mangle.c (mangle_decl): Same.
	* name-lookup.c (cp_binding_level_debug): Same.
	(set_decl_namespace): Same.
	* parser.c (cp_parser_tx_qualifier_opt): Same.
	* pt.c (print_candidates_1): Same.
	(check_template_variable): Same.
	(tsubst_default_argument): Same.
	(most_specialized_partial_spec): Same.
	* semantics.c (omp_reduction_lookup): Same.
	* tree.c (check_abi_tag_redeclaration): Same.
	* typeck.c (comptypes): Same.
	* typeck2.c (abstract_virtuals_error_sfinae): Same.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/ChangeLog:

	PR translation/80280
	* builtins.c (expand_builtin_object_size): Add missing quoting to
	%D and like directives.
	* hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
	(hsa_type_for_tree_type): Same.
	(verify_function_arguments): Same.
	* symtab.c (symbol_table::change_decl_assembler_name): Same.
	* varasm.c (get_section): Same.
	(mark_weak): Same.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/objc/ChangeLog:

	PR translation/80280
	* objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
	quoting to directives.
	* objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
	* objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/testsuite/ChangeLog:

	PR translation/80280
	* g++.dg/abi/Wabi-2-3.C: Adjust.
	* g++.dg/abi/Wabi-3-2.C: Ditto.
	* g++.dg/lookup/using17.C: Ditto.
	* gcc.dg/format/gcc_diag-1.c (foo): Ditto.

From-SVN: r247607
2017-05-04 11:40:05 -06:00
Wilco Dijkstra
2fae724a1e All cores which add a cpu_addrcost_table use a non-zero value for HI and TI...
All cores which add a cpu_addrcost_table use a non-zero value for
HI and TI mode shifts (a non-zero value for general indexing also
applies to all shifts).  Given this, it makes no sense to use a
different setting in generic_addrcost_table.  So change it so that
all supported cores, including -mcpu=generic, now generate the same:

int f(short *p, short *q, long x) { return p[x] + q[x]; }

        lsl     x2, x2, 1
        ldrsh   w3, [x0, x2]
        ldrsh   w0, [x1, x2]
        add     w0, w3, w0
        ret

    gcc/
	* config/aarch64/aarch64.c (generic_addrcost_table):
	Change HI/TI mode setting.

From-SVN: r247606
2017-05-04 17:05:28 +00:00
Martin Jambor
8eef60973d [PR 80622] Treat const pools as initialized in SRA
2017-05-04  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/80622
	* tree-sra.c (comes_initialized_p): New function.
	(build_accesses_from_assign): Only set write lazily when
	comes_initialized_p is false.
	(analyze_access_subtree): Use comes_initialized_p.
	(propagate_subaccesses_across_link): Assert !comes_initialized_p
	instead of testing for PARM_DECL.

testsuite/
	* gcc.dg/tree-ssa/pr80622.c: New test.

From-SVN: r247604
2017-05-04 18:19:20 +02:00
Kyrylo Tkachov
9bf2f77904 [AArch64] Accept more addressing modes for PRFM
* config/aarch64/aarch64.md (prefetch); Adjust predicate and
	constraint on operand 0 to allow more general addressing modes.
	Adjust output template.
	* config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
	New function.
	* config/aarch64/aarch64-protos.h
	(aarch64_address_valid_for_prefetch_p): Declare prototype.
	* config/aarch64/constraints.md (Dp): New address constraint.
	* config/aarch64/predicates.md (aarch64_prefetch_operand): New
	predicate.

	* gcc.target/aarch64/prfm_imm_offset_1.c: New test.

From-SVN: r247603
2017-05-04 16:14:37 +00:00
Joseph Myers
928351c3ef Update .po files.
* be.po, da.po, el.po, fi.po, hr.po, id.po, ja.po, nl.po, ru.po,
	sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r247601
2017-05-04 16:54:08 +01:00
Nathan Sidwell
ad9870f2d5 More global trees.
* cp-tree.h (enum cp_tree_index): Add CPTI_GLOBAL,
	CPTI_GLOBAL_TYPE, CPTI_GLOBAL_IDENTIFIER, CPTI_ANON_IDENTIFIER,
	CPTI_INIT_LIST_IDENTIFIER.
	(global_namespace, global_type_node, global_identifier)
	anon_identifier, init_list_identifier): New.
	* decl.c (global_type_node, global_scope_name): Delete.
	(initialize_predefined_identifiers): Add new identifiers.
	(cxx_init_decl_processing): Adjust.
	* name-lookup.h (global_namespace, global_type_node): Delete.
	* name-lookup.c (global_namespace, anonymous_namespace_name)
	get_anonymous_namespace_name): Delete.
	(namespace_scope_ht_size, begin_scope, pushtag_1)
	push_namespace): Adjust,
	* call.c (type_has_extended_temps): Use init_list_identifier.
	* pt.c (listify): Likewise.
(((--This line, and those below, will be ignored--

M    cp/name-lookup.c
M    cp/name-lookup.h
M    cp/ChangeLog
M    cp/call.c
M    cp/pt.c
M    cp/cp-tree.h
M    cp/decl.c

From-SVN: r247599
2017-05-04 15:39:05 +00:00
Jan Hubicka
26f1a658e6 ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; update use of estimate_ipcp_clone_size_and_time.
* ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
	update use of estimate_ipcp_clone_size_and_time.
	(estimate_local_effects): Update use of
	estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
	* ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
	* ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
	Return nonspecialized time.

	* gcc.dg/ipa/ipcp-2.c: Decrease ipcp threshold
	* gcc.dg/tree-ssa/ipa-cp-1.c: Likewise.

From-SVN: r247597
2017-05-04 13:57:35 +00:00
Richard Biener
4d147bca3f tree-ssa-alias.c (get_continuation_for_phi): Improve looking for the last VUSE which def dominates the PHI.
2017-05-04  Richard Biener  <rguenther@suse.de>

	* tree-ssa-alias.c (get_continuation_for_phi): Improve looking
	for the last VUSE which def dominates the PHI.  Directly call
	maybe_skip_until.
	(get_continuation_for_phi_1): Remove.

	* gcc.dg/tree-ssa/ssa-fre-58.c: New testcase.

From-SVN: r247596
2017-05-04 13:29:08 +00:00
Nathan Sidwell
b655c31048 name-lookup.c: Reorder functions to make merging from modules branch simpler.
* name-lookup.c: Reorder functions to make merging from modules
	branch simpler.

From-SVN: r247592
2017-05-04 12:35:05 +00:00
Richard Sandiford
3862ef76c6 Cap niter_for_unrolled_loop to upper bound
For the reasons explained in PR77536, niter_for_unrolled_loop assumes 5
iterations in the absence of profiling information, although it doesn't
increase beyond the estimate for the original loop.  This left a hole in
which the new estimate could be less than the old one but still greater
than the limit imposed by CEIL (nb_iterations_upper_bound, unroll factor).

2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
	to explain the use of truncating division.  Cap the number of
	iterations to the maximum given by nb_iterations_upper_bound,
	if defined.

gcc/testsuite/
	* gcc.dg/vect/vect-profile-1.c: New test.

From-SVN: r247591
2017-05-04 11:37:05 +00:00
Richard Sandiford
6d0da573d2 Fix previous commit
From-SVN: r247589
2017-05-04 11:03:54 +00:00
Thomas Preud'homme
446163e239 configure.ac (--enable-mingw-wildcard): Add new configurable feature.
2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* configure.ac (--enable-mingw-wildcard): Add new configurable feature.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/i386/driver-mingw32.c: new file.
	* config/i386/x-mingw32: Add rule to build driver-mingw32.o.
	* config.host: Link driver-mingw32.o on MinGW host.
	* doc/install.texi: Document new --enable-mingw-wildcard configure
	option.

From-SVN: r247588
2017-05-04 11:02:08 +00:00
Richard Sandiford
e1fd916302 Remove bogus top-level ChangeLog commit (sorry!)
From-SVN: r247587
2017-05-04 11:00:48 +00:00
Marek Polacek
c89ffd9997 re PR tree-optimization/80612 (ICE in get_range_info, at tree-ssanames.c:375)
PR tree-optimization/80612
	* calls.c (get_size_range): Check for INTEGRAL_TYPE_P.

	* gcc.dg/torture/pr80612.c: New test.

From-SVN: r247586
2017-05-04 10:35:58 +00:00
Prakhar Bahuguna
261ce1e56f [ARM] Enable Purecode for ARMv8-M Baseline
This patch adds support for purecode to ARMv8-M Baseline, in addition to
the existing support for ARMv7-M and ARMv8-M Mainline.

2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
            Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>

    gcc/
    * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
    (movt splitter): Likewise.
    * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
    to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
    (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
    block for Thumb-1 with MOVT.
    (thumb2_legitimate_address_p): Move code block ...
    (can_avoid_literal_pool_for_label_p): ... into this new function.
    (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
    literal pool.
    (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
    * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
    "M-profile targets with the MOVT instruction".

    gcc/testsuite/
    * gcc.target/arm/pure-code/pure-code.exp: Add conditional for
    check_effective_target_arm_thumb1_movt_ok.

Co-Authored-By: Andre Vieira <andre.simoesdiasvieira@arm.com>

From-SVN: r247585
2017-05-04 10:26:25 +00:00
Prakhar Bahuguna
556cf0887e [ARM] Rename FPSCR builtins to correct names
The GCC documentation in section 6.60.8 ARM Floating Point Status and
Control Intrinsics states that the FPSCR register can be read and
written to using the intrinsics __builtin_arm_get_fpscr and
__builtin_arm_set_fpscr. However, these are misnamed within GCC itself
and these intrinsic names are not recognised.

This patch corrects the intrinsic names to match the documentation, and
adds tests to verify these intrinsics generate the correct
instructions.

2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

    gcc/
    * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename
    __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
    __builtin_arm_stfscr to __builtin_arm_set_fpscr.

    gcc/testsuite/
    * gcc.target/arm/fpscr.c: New file.

From-SVN: r247584
2017-05-04 10:16:04 +00:00
Martin Liska
cd09e219ce Remove an unused variable.
2017-05-04  Martin Liska  <mliska@suse.cz>

	* tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
	variable cond_code.

From-SVN: r247583
2017-05-04 10:06:54 +00:00
Thomas Preud'homme
010b1cc046 Require c99_runtime for pr78622.c
2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

gcc/testsuite/
    * gcc.c-torture/execute/pr78622.c: Require c99_runtime effective
    target.

From-SVN: r247582
2017-05-04 09:36:29 +00:00
Richard Biener
c3e46927e4 tree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays more conservatively.
2017-05-04  Richard Biener  <rguenther@suse.de>

	* tree.c (array_at_struct_end_p): Handle arrays at struct
	end with flexarrays more conservatively.  Refactor and treat
	arrays of arrays or aggregates more strict.  Fix
	VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
	* tree.c (array_at_struct_end_p): Adjust prototype.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
	* gimple-fold.c (get_range_strlen): Likewise.
	* tree-chkp.c (chkp_may_narrow_to_field): Likewise.

From-SVN: r247581
2017-05-04 09:08:01 +00:00
Tom de Vries
99b68476de Replace absolute line numbers in g++.dg/warn
2017-05-04  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80557
	* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Replace absolute
	line numbers.
	* g++.dg/warn/miss-format-1.C: Same.
	* g++.dg/warn/overflow-warn-1.C: Same.
	* g++.dg/warn/overflow-warn-3.C: Same.
	* g++.dg/warn/overflow-warn-4.C: Same.

From-SVN: r247580
2017-05-04 07:55:11 +00:00
Tom de Vries
09177a4b3c Replace absolute line numbers in gcc.target/i386
2017-05-04  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80557
	* gcc.target/i386/pr57655.c: Replace absolute line numbers.
	* gcc.target/i386/pr68657.c: Same.
	* gcc.target/i386/pr69255-1.c: Same.
	* gcc.target/i386/pr69255-2.c: Same.
	* gcc.target/i386/pr69255-3.c: Same.

From-SVN: r247579
2017-05-04 07:54:59 +00:00
Richard Biener
02c6414935 re PR tree-optimization/31130 (VRP no longer derives range for division after negation)
2017-05-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/31130
	* tree-vrp.c (needs_overflow_infinity): Remove as always returning
	false.
	(supports_overflow_infinity): Likewise.
	(is_negative_overflow_infinity): Likewise.
	(is_positive_overflow_infinity): Likewise.
	(is_overflow_infinity): Likewise.
	(stmt_overflow_infinity): Likewise.
	(overflow_infinity_range_p): Likewise.
	(usable_range_p): Remove as always returning true.
	(make_overflow_infinity): Remove.
	(negative_overflow_infinity): Likewise.
	(positive_overflow_infinity): Likewise.
	(avoid_overflow_infinity): Likewise.
	(set_value_range): Adjust accordingly.
	(set_value_range_to_nonnegative): Likewise, remove now unused
	overflow_infinity arg.
	(vrp_operand_equal_p): Adjust.
	(update_value_range): Likewise.
	(range_int_cst_singleton_p): Likewise.
	(operand_less_p): Likewise.
	(compare_values_warnv): Likewise.
	(extract_range_for_var_from_comparison_expr): Likewise.
	(vrp_int_const_binop): Likewise.
	(zero_nonzero_bits_from_vr): Likewise.
	(extract_range_from_multiplicative_op_1): Likewise.
	(extract_range_from_binary_expr_1): Likewise.
	(extract_range_from_unary_expr): Likewise.
	(extract_range_from_comparison): Likewise.
	(extract_range_basic): Likewise.
	(adjust_range_with_scev): Likewise.
	(compare_ranges): Likewise.
	(compare_range_with_value): Likewise.
	(dump_value_range): Likewise.
	(test_for_singularity): Likewise, remove strict_overflow_p parameter
	never used.
	(simplify_cond_using_ranges): Adjust.

	* gcc.dg/Wstrict-overflow-12.c: XFAIL.
	* gcc.dg/Wstrict-overflow-13.c: Likewise.
	* gcc.dg/Wstrict-overflow-21.c: Likewise.
	* gcc.dg/pr52904.c: Remove XFAIL.
	* gcc.dg/tree-ssa/vrp114.c: New testcase.

From-SVN: r247578
2017-05-04 07:29:55 +00:00
Pekka Jääskeläinen
2b4514101f Removed accidentally committed conflict marker.
From-SVN: r247577
2017-05-04 05:56:32 +00:00
Pekka Jääskeläinen
c6e334cdb1 Minor BRIG/HSAIL frontend updates and bug fixes:
* brig-builtins.def: Added a builtin for class_f64.
* builtin-types.def: Added a builtin type needed by class_f64.
* brigfrontend/brig-code-entry-handler.cc
 (brig_code_entry_handler::build_address_operand): Fix a bug
 with reg+offset addressing on 32b segments. In large mode,
 the offset is treated as 32bits unless it's global, readonly or
 kernarg address space.
* rt/workitems.c: Removed a leftover comment.
* rt/arithmetic.c (__hsail_class_f32, __hsail_class_f64): Fix the
 check for signaling/non-signalling NaN. Add class_f64 default
 implementation.

From-SVN: r247576
2017-05-04 05:50:21 +00:00
GCC Administrator
1738af6048 Daily bump.
From-SVN: r247575
2017-05-04 00:16:25 +00:00
Joseph Myers
17addff89f * de.po: Update.
From-SVN: r247570
2017-05-03 23:24:30 +01:00
Jason Merrill
0cb222fcc8 invoke.texi: Note that -faligned-new is on by default for C++17.
* doc/invoke.texi: Note that -faligned-new is on by default
	for C++17.

From-SVN: r247564
2017-05-03 14:50:25 -04:00
Jason Merrill
8108ea30e6 timevar.def: Add TV_CONSTEXPR.
* timevar.def: Add TV_CONSTEXPR.

	* constexpr.c (cxx_eval_outermost_constant_expr): Use TV_CONSTEXPR.

From-SVN: r247563
2017-05-03 14:50:20 -04:00
David Malcolm
8135a004c2 Fix typo in common.opt
gcc/ChangeLog:
	* common.opt (fdiagnostics-parseable-fixits): Fix typo.

From-SVN: r247562
2017-05-03 18:35:27 +00:00