Commit Graph

153558 Commits

Author SHA1 Message Date
Volker Reichelt d4a5c4ebc7 re PR translation/80280 (Missing closing quote (%>) c/semantics.c and c/c-typeck.c)
PR translation/80280
        * call.c (print_z_candidate): Fix quoting.

From-SVN: r247728
2017-05-07 19:41:09 +00:00
Jeff Law 8637c116c5 revert: re PR tree-optimization/78496 (Missed opportunities for jump threading)
2017-05-07  Jeff Law  <law@redhat.com>

	Revert:
	2017-05-06  Jeff Law  <law@redhat.com>
	PR tree-optimization/78496
	* tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
	code.

	PR tree-optimization/78496
	* tree-vrp.c (simplify_assert_expr_using_ranges): New function.
	(simplify_stmt_using_ranges): Call it.
	(vrp_dom_walker::before_dom_children): Extract equivalences
	from an ASSERT_EXPR with an equality comparison against a
	constant.

	Revert:
	2017-05-06  Jeff Law  <law@redhat.com>
	PR tree-optimization/78496
	* gcc.dg/tree-ssa/ssa-thread-16.c: New test.
	* gcc.dg/tree-ssa/ssa-thread-17.c: New test.

From-SVN: r247727
2017-05-07 09:10:55 -06:00
GCC Administrator 9267267a3d Daily bump.
From-SVN: r247726
2017-05-07 00:16:25 +00:00
Jeff Law 10dfbcba38 re PR tree-optimization/78496 (Missed opportunities for jump threading)
PR tree-optimization/78496
	* tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
	code.

From-SVN: r247722
2017-05-06 12:20:31 -06:00
Jeff Law 973dfbb4a6 re PR tree-optimization/78496 (Missed opportunities for jump threading)
PR tree-optimization/78496
	* tree-vrp.c (simplify_assert_expr_using_ranges): New function.
	(simplify_stmt_using_ranges): Call it.
	(vrp_dom_walker::before_dom_children): Extract equivalences
	from an ASSERT_EXPR with an equality comparison against a
	constant.

	PR tree-optimization/78496
	* gcc.dg/tree-ssa/ssa-thread-16.c: New test.
	* gcc.dg/tree-ssa/ssa-thread-17.c: New test.

From-SVN: r247721
2017-05-06 09:03:40 -06:00
Richard Sandiford 8ffa3150d3 Record equivalences for spill registers
If we decide to allocate a call-clobbered register R to a value that
is live across a call, LRA will create a new spill register TMPR,
insert:

   TMPR <- R

before the call and

   R <- TMPR

after it.  But if we then failed to allocate a register to TMPR, we would
always spill it to the stack, even if R was known to be equivalent to
a constant or to some existing memory location.  And on AArch64, we'd
always fail to allocate such a register for 128-bit Advanced SIMD modes,
since no registers of those modes are call-preserved.

This patch avoids the problem by copying the equivalence information
from the original pseudo to the spill register.  It means that the
code for the testcase is as good with -O2 as it is with -O,
whereas previously the -O code was better.

[Based on the code ARM contributed in branches/ARM/sve-branch@247248]

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

gcc/
	* lra-constraints.c (lra_copy_reg_equiv): New function.
	(split_reg): Use it to copy equivalence information from the
	original register to the spill register.

gcc/testsuite/
	* gcc.target/aarch64/spill_1.c: New test.

From-SVN: r247720
2017-05-06 07:46:48 +00:00
Richard Sandiford 2a3f79973f PR 75964: Invalid integer ABS handling in simplify-rtx.c
RTL has no distinction between signed and unsigned values, so it
doesn't make sense to test for signed overflow.

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

gcc/
	PR rtl-optimization/75964
	* simplify-rtx.c (simplify_const_relational_operation): Remove
	invalid handling of comparisons of integer ABS.

gcc/testsuite/
	PR rtl-optimization/75964
	* gcc.dg/torture/pr75964.c: New test.

From-SVN: r247719
2017-05-06 07:44:13 +00:00
Tom de Vries d554bf236e Remove default_packed lines from i386/avx-vtestp{d,s}*
2017-05-06  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80606
	* gcc.target/i386/avx-vtestpd-1.c: Remove default_packed lines.
	* gcc.target/i386/avx-vtestpd-2.c: Same.
	* gcc.target/i386/avx-vtestpd-256-1.c: Same.
	* gcc.target/i386/avx-vtestpd-256-2.c: Same.
	* gcc.target/i386/avx-vtestpd-256-3.c: Same.
	* gcc.target/i386/avx-vtestpd-3.c: Same.
	* gcc.target/i386/avx-vtestps-1.c: Same.
	* gcc.target/i386/avx-vtestps-2.c: Same.
	* gcc.target/i386/avx-vtestps-256-1.c: Same.
	* gcc.target/i386/avx-vtestps-256-2.c: Same.
	* gcc.target/i386/avx-vtestps-256-3.c: Same.
	* gcc.target/i386/avx-vtestps-3.c: Same.

From-SVN: r247718
2017-05-06 07:31:27 +00:00
Tom de Vries 7a976fe79d Add absolute line number comment in gcc.target/avr/progmem-error-1.cpp
2017-05-06  Tom de Vries  <tom@codesourcery.com>

	* gcc.target/avr/progmem-error-1.cpp: Add abolute line number comment.

From-SVN: r247717
2017-05-06 07:17:16 +00:00
Tom de Vries 0e852c66f9 Replace absolute line numbers in gcc.target/powerpc
2017-05-06  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80557
	* gcc.target/powerpc/altivec-macros.c: Replace absolute line numbers.
	* gcc.target/powerpc/altivec-types-1.c: Same.

From-SVN: r247716
2017-05-06 07:17:05 +00:00
Tom de Vries 63c40d9286 Replace absolute line numbers in gcc.target/spu
2017-05-06  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80557
	* gcc.target/spu/Wmain.c: Replace absolute line numbers.
	* gcc.target/spu/intrinsics-1.c: Same.

From-SVN: r247715
2017-05-06 07:16:53 +00:00
Tom de Vries b25b8f9162 Replace absolute line numbers in gcc.target/arm
2017-05-06  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80557
	* gcc.target/arm/pr69180.c: Replace absolute line numbers.

From-SVN: r247714
2017-05-06 07:16:43 +00:00
Tom de Vries 6df1349133 Replace absolute line numbers in gcc.target/aarch64
2017-05-06  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80557
	* gcc.target/aarch64/spellcheck_1.c: Replace absolute line numbers.
	* gcc.target/aarch64/spellcheck_2.c: Same.
	* gcc.target/aarch64/spellcheck_3.c: Same.

From-SVN: r247713
2017-05-06 07:16:33 +00:00
Tom de Vries e01261fef5 Replace absolute line numbers in g++.dg/{debug,goacc}
2017-05-06  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/80557
	* g++.dg/debug/dwarf2/dwarf2-1.C: Replace absolute line numbers.
	* g++.dg/debug/dwarf2/dwarf2-2.C: Same.
	* g++.dg/debug/dwarf2/pr46123-2.C: Same.
	* g++.dg/debug/dwarf2/typedef5.C: Same.
	* g++.dg/goacc/data-1.C: Same.

From-SVN: r247712
2017-05-06 07:16:17 +00:00
Uros Bizjak 9f36390d42 i386.c (ext_80387_constant_init): Do not explicitly initialize to zero.
* config/i386/i386.c (ext_80387_constant_init): Do not explicitly
	initialize to zero.
	(init_regs): Remove declaration.
	(function_arg_advance_32): Initialize error_p as boolean variable.

From-SVN: r247711
2017-05-06 09:01:51 +02:00
Joshua Conner 7ab8766a8e Add fuchsia support to libgcc
* config/arm/unwind-arm.h (_Unwind_decode_typeinfo_ptr): Use
	pc-relative indirect handling for fuchsia.
	* config/t-slibgcc-fuchsia: New file.
	* config.host (*-*-fuchsia*, aarch64*-*-fuchsia*, arm*-*-fuchsia*,
	x86_64-*-fuchsia*): Add definitions.

From-SVN: r247710
2017-05-06 00:22:38 +00:00
GCC Administrator 08dd548e8d Daily bump.
From-SVN: r247709
2017-05-06 00:16:44 +00:00
Nathan Sidwell 5cf5c9dabf store-motion.c (remove_reachable_equiv_notes): Reformat long lines.
* store-motion.c (remove_reachable_equiv_notes): Reformat long
	lines.  Use for (;;).

From-SVN: r247705
2017-05-05 23:24:41 +00:00
Bill Schmidt 9945596cef rs6000.c (rs6000_vect_nonmem): New static var.
[gcc]

2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
	(rs6000_init_cost): Initialize rs6000_vect_nonmem.
	(rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
	(rs6000_finish_cost): Avoid vectorizing simple copy loops with
	VF=2 that require versioning.

[gcc/testsuite]

2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/versioned-copy-loop.c: New file.

From-SVN: r247671
2017-05-05 21:27:54 +00:00
David Malcolm ba82e6b5c8 Convert CARET_LINE_MARGIN to const int
gcc/ChangeLog:
	* diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
	int.

From-SVN: r247666
2017-05-05 21:07:38 +00:00
David Malcolm 62a77bdfe9 Convert diagnostic_override_option_index from macro to inline function
gcc/ChangeLog:
	* diagnostic.h (diagnostic_override_option_index): Convert from
	macro to inline function.

From-SVN: r247665
2017-05-05 21:05:15 +00:00
David Malcolm 26d5ed6cea Get rid of macros for diagnostic_report_current_module
diagnostic.h has a couple of macros (diagnostic_last_module_changed
and diagnostic_set_last_module) which are only used within
diagnostic_report_current_module.

This patch eliminates the macros in favor of static functions within
diagnostic.c.

No functional change intended.

gcc/ChangeLog:
	* diagnostic.c (last_module_changed_p): New function.
	(set_last_module): New function.
	(diagnostic_report_current_module): Convert macro usage to
	the above functions.
	* diagnostic.h (diagnostic_context::last_module): Strengthen
	from const line_map * to const line_map_ordinary *.
	(diagnostic_last_module_changed): Delete macro.
	(diagnostic_set_last_module): Delete macro.

From-SVN: r247664
2017-05-05 21:03:07 +00:00
David Malcolm 56d3558517 Eliminate report_diagnostic macro
This patch eliminates the report_diagnostic macro, manually
expanding it in all sites in the code.

No functional change intended.

gcc/c-family/ChangeLog:
	* c-common.c (c_cpp_error): Replace report_diagnostic
	with diagnostic_report_diagnostic.

gcc/c/ChangeLog:
	* c-decl.c (warn_defaults_to): Replace report_diagnostic
	with diagnostic_report_diagnostic.
	* c-errors.c (pedwarn_c99): Likewise.
	(pedwarn_c90): Likewise.

gcc/cp/ChangeLog:
	* error.c (pedwarn_cxx98): Replace report_diagnostic
	with diagnostic_report_diagnostic.

gcc/ChangeLog:
	* diagnostic.c (diagnostic_impl): Replace report_diagnostic
	with diagnostic_report_diagnostic.
	(diagnostic_n_impl_richloc): Likewise.
	* diagnostic.h (report_diagnostic): Delete macro.
	* rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
	with diagnostic_report_diagnostic.
	* substring-locations.c (format_warning_va): Likewise.

gcc/fortran/ChangeLog:
	* cpp.c (cb_cpp_error): Replace report_diagnostic
	with diagnostic_report_diagnostic.
	* error.c (gfc_warning): Likewise.
	(gfc_warning_now_at): Likewise.
	(gfc_warning_now): Likewise.
	(gfc_warning_internal): Likewise.
	(gfc_error_now): Likewise.
	(gfc_fatal_error): Likewise.
	(gfc_error_opt): Likewise.
	(gfc_internal_error): Likewise.

From-SVN: r247663
2017-05-05 21:01:05 +00:00
David Malcolm 80ceac09a5 diagnostic.c: add print_option_information
This patch simplifies diagnostic_report_diagnostic by moving
option-printing to a new subroutine.

Doing so required a slight rewrite.  In both the old and new
code, context->option_name returns a malloc-ed string.
The old behavior was to then use ACONCAT to manipulate the
format_spec, appending the option metadata.
ACONCAT calcs the buffer size, then uses alloca, and then copies the
data to the on-stack buffer.

Given the alloca, this needs rewriting when moving the printing to
a subroutine.  In the new version, the metadata is simply printed
using pp_* calls (so it's hitting the obstack within the
pretty_printer).

This means we can get rid of the save/restore of format_spec: I don't
believe anything else in the code modifies it.

It also seems inherently simpler; it seems odd to me to be
appending metadata to the formatting string, rather than simply
printing the metadata after the formatted string is printed
(the old code also assumed that no option name contained a '%').

No functional change intended.

gcc/ChangeLog:
	* diagnostic.c (diagnostic_report_diagnostic): Eliminate
	save/restor of format_spec.  Move option-printing code to...
	(print_option_information): ...this new function, and
	reimplement by simply printing to the pretty_printer,
	rather than appending to the format string.

From-SVN: r247661
2017-05-05 20:56:36 +00:00
David Malcolm dc41c9b07d diagnostic_report_diagnostic: refactor pragma-handling
This patch simplifies diagnostic_report_diagnostic by moving the
pragma-handling logic into a subroutine.

No functional change intended.

gcc/ChangeLog:
	* diagnostic.c (diagnostic_report_diagnostic): Split out pragma
	handling logic into...
	(update_effective_level_from_pragmas): ...this new function.

From-SVN: r247660
2017-05-05 20:51:18 +00:00
Andrew Waterman 8228569284 RISC-V: Add -mstrict-align option
The RISC-V user ISA permits misaligned accesses, but they may trap
and be emulated.  That emulation software needs to be compiled assuming
strict alignment.

Even when strict alignment is not required, set SLOW_UNALIGNED_ACCESS
based upon -mtune to avoid a performance pitfall.

gcc/ChangeLog:

2017-05-04  Andrew Waterman  <andrew@sifive.com>

	* config/riscv/riscv.opt (mstrict-align): New option.
	* config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
	(SLOW_UNALIGNED_ACCESS): Define.
	(riscv_slow_unaligned_access): Declare.
	* config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
	field.
	(riscv_slow_unaligned_access): New variable.
	(rocket_tune_info): Set slow_unaligned_access to true.
	(optimize_size_tune_info): Set slow_unaligned_access to false.
	(riscv_cpu_info_table): Add entry for optimize_size_tune_info.
	(riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
	(riscv_option_override): Set riscv_slow_unaligned_access.
        * doc/invoke.texi: Add -mstrict-align to RISC-V.

From-SVN: r247659
2017-05-05 20:24:46 +00:00
Kito Cheng 248710c431 RISC-V: Unify indention in riscv.md
This contains only whitespace changes.

gcc/ChangeLog

2017-05-04  Kito Cheng  <kito.cheng@gmail.com>

	* config/riscv/riscv.md: Unify indentation.

From-SVN: r247658
2017-05-05 20:24:38 +00:00
Michael Meissner 8acb85754a re PR target/79038 (Improve PowerPC ISA 3.0 conversion between integers and hardware _Float128)
[gcc]
2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79038
	PR target/79202
	PR target/79203
	* config/rs6000/rs6000.md (u code attribute): Add FIX and
	UNSIGNED_FIX.
	(extendsi<mode>2): Add support for doing sign extension via
	VUPKHSW and XXPERMDI if the value is in Altivec registers and we
	don't have ISA 3.0 instructions.
	(extendsi<mode>2 splitter): Likewise.
	(fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
	generate the normal insns since SImode can now go in vector
	registers.  Disallow the special UNSPECs needed for previous
	machines to hide SImode being used.  Add new insns
	fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
	(fix_trunc<mode>si2_stfiwx): Likewise.
	(fix_trunc<mode>si2_internal): Likewise.
	(fixuns_trunc<mode>si2): Likewise.
	(fixuns_trunc<mode>si2_stfiwx): Likewise.
	(fctiw<u>z_<mode>_smallint): Likewise.
	(fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
	of floating point to 32-bit integer from doing a direct move to
	the GPR registers to do a store.
	(fctiwz_<mode>): Break long line.

[gcc/testsuite]
2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79038
	PR target/79202
	PR target/79203
	* gcc.target/powerpc/ppc-round3.c: New test.
	* gcc.target/powerpc/ppc-round2.c: Update expected code.

From-SVN: r247657
2017-05-05 20:21:15 +00:00
Nathan Sidwell 4b4b2e58e3 cp-tree.h (IDENTIFIER_GLOBAL_VALUE): Use get_namespace_value.
* cp-tree.h (IDENTIFIER_GLOBAL_VALUE): Use get_namespace_value.
	(SET_IDENTIFIER_GLOBAL_VALUE): Use set_global_value.
	(IDENTIFIER_NAMESPACE_VALUE): Delete.
	* name-lookup.h (namespace_binding, set_namespace_binding):
	Replace
	with ...
	(get_namespace_value, set_global_value): ... these.
	(get_global_value_if_present, is_typename_at_global_scope):
	Delete.
	* decl.c (poplevel): Use get_namespace_value.
	(grokdeclarator): Use IDENTIFIER_GLOBAL_VALUE.
	* class.c (build_vtbl_initializer): Stash library decl in
	static var. Use IDENTIFIER_GLOBAL_VALUE.
	* except.c (do_get_exception_ptr, do_begin_catch, do_end_catch)
	do_allocate_exception, do_free_exception, build_throw): Likewise.
	* init.c (throw_bad_array_new_length): Likewise.
	* rtti.c (throw_bad_cast, throw_bad_typeid): Likewise.
	* name-lookup.c (arg_assoc_namespace, pushdecl_maybe_friend_1)
	check_for_our_of_scope_variable, push_overloaded_decl_1): Use
	get_namespace_value.
	(set_namespace_binding_1): Rename to
	(set_namespace_binding): ... here.
	(set_global_value): New.
	(lookup_name_innermost_nonclass_level_1, push_namespace): Use
	get_namespace_value.
	* pt.c (listify): Use get_namespace_value.
((--This line, and those below, will be ignored--

M    cp/name-lookup.c
M    cp/name-lookup.h
M    cp/ChangeLog
M    cp/except.c
M    cp/class.c
M    cp/pt.c
M    cp/init.c
M    cp/cp-tree.h
M    cp/decl.c
M    cp/rtti.c

From-SVN: r247654
2017-05-05 20:04:45 +00:00
Bin Cheng 359b060e79 Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
* Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
	* tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
	(addr_list, addr_offset_valid_p): New.
	(split_address_groups): Check offset validity with above function.
	(gt-tree-ssa-loop-ivopts.h): Include header file.

From-SVN: r247653
2017-05-05 18:34:45 +00:00
Martin Sebor 13c5654f74 builtins.c (check_sizes, [...]): Fix typos introduced during merge conflict resolution.
gcc/ChangeLog:
	* builtins.c (check_sizes, check_strncat_sizes): Fix typos
	introduced during merge	conflict resolution.
	(expand_builtin_strncat): Same.

gcc/testsuite/ChangeLog:
	* gcc.dg/pr78138.c: Adjust text of expected diagnostics.
	* gcc.dg/pr79214.c: Same.
	* gcc.dg/pr79222.c: Same.
	* gcc.dg/pr79223.c: Same.
	* gcc.dg/tree-ssa/builtins-folding-gimple-ub.c: Expect warnings.

From-SVN: r247652
2017-05-05 12:03:26 -06:00
Nathan Sidwell 2d66253dd8 * config.gcc (arm*-*-*): Add missing 'fi'.
From-SVN: r247650
2017-05-05 17:31:57 +00:00
Steve Ellcey b4a3af07b5 invoke.texi (-fopt-info): Explicitly say order of options included in -fopt-info does not matter.
2017-05-05  Steve Ellcey  <sellcey@cavium.com>

	* doc/invoke.texi (-fopt-info): Explicitly say order of options
	included in -fopt-info does not matter.
	* doc/optinfo.texi (-fopt-info): Fix description of default
	behavour. Explicitly say order of options included in -fopt-info
	does not matter.

From-SVN: r247648
2017-05-05 17:00:46 +00:00
Thomas Preud'homme 2f738ca53b [ARM] Allow combination of aprofile and rmprofile multilibs
2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config.gcc: Allow combinations of aprofile and rmprofile values for
    --with-multilib-list.
    * config/arm/t-multilib: New file.
    * config/arm/t-aprofile: Remove initialization of MULTILIB_*
    variables.  Remove setting of ISA and floating-point ABI in
    MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
    MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
    and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
    matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
    CPU options.
    * config/arm/t-rmprofile: Likewise except for the matches changes.
    * doc/install.texi (--with-multilib-list): Document the combination of
    aprofile and rmprofile values and warn about pitfalls in doing that.

From-SVN: r247646
2017-05-05 16:50:40 +00:00
Nathan Sidwell 77fa3ec1b2 call.c (make_temporary_var_for_ref_to_temp): Push decl into current scope.
* call.c (make_temporary_var_for_ref_to_temp): Push decl into
	current scope.
	* lex.c (unqualified_name_lookup_error): Likewise.

From-SVN: r247645
2017-05-05 16:50:14 +00:00
Nathan Sidwell 7187a6c83a class.c (alter_class): Use retrofit_lang_decl directly.
* class.c (alter_class): Use retrofit_lang_decl directly.
	* decl.c (push_local_name, dupliate_decls): Likewise.
	* semantics.c (omp_privatize_field): Likewise.

From-SVN: r247644
2017-05-05 16:47:39 +00:00
Wilco Dijkstra 8e10223f36 Float to int moves currently generate inefficient code due to hacks used in the movsi and movdi patterns.
Float to int moves currently generate inefficient code due to
hacks used in the movsi and movdi patterns.  The 'r = w' variant
uses '*' which tells the register allocator to ignore it.
As a result the float to int moves typically spill to the stack,
which is extremely inefficient.

    gcc/
	* config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
	(movdi_aarch64): Likewise.

From-SVN: r247643
2017-05-05 16:18:17 +00:00
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