Commit graph

153451 commits

Author SHA1 Message Date
Dominique d'Humieres
823c79ae1e coarray_lock_7.f90: Fix dg-final regexps.
2017-05-09  Dominique d'Humieres  <dominiq@lps.ens.fr>

	* gfortran.dg/coarray_lock_7.f90: Fix dg-final regexps.

From-SVN: r247803
2017-05-09 17:47:02 +02:00
Martin Sebor
9979f97310 re PR translation/80280 (Missing closing quote (%>) c/semantics.c and c/c-typeck.c)
gcc/ChangeLog:

	PR translation/80280
	* config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
	data member added in r247778.
	(ms_scanf_flag_specs, ms_strftime_flag_specs): Same.

From-SVN: r247801
2017-05-09 09:39:54 -06:00
Nathan Sidwell
442eef68d2 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
From-SVN: r247800
2017-05-09 15:15:46 +00:00
Jason Merrill
e91c2cac34 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
From-SVN: r247799
2017-05-09 11:11:19 -04:00
Claudiu Zissulescu
79557baea8 [ARC] Add support for advanced mpy/mac instructions.
gcc/
2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_conditional_register_usage): Handle ACCL,
	ACCH registers.
	* config/arc/arc.md (mulsidi3): Use advanced mpy instructions when
	available.
	(umulsidi3): Likewise.
	(mulsidi3_700): Disable this pattern when we have advanced mpy
	instructions.
	(umulsidi3_700): Likewise.
	(maddsidi4): New pattern.
	(macd, mac, mac_r, umaddsidi4, macdu, macu, macu_r): Likewise.
	(mpyd_arcv2hs, mpyd_imm_arcv2hs, mpydu_arcv2hs): Likewise.
	(mpydu_imm_arcv2hs): Likewise.
	* config/arc/predicates.md (accl_operand): New predicate.

From-SVN: r247797
2017-05-09 16:19:47 +02:00
Claudiu Zissulescu
c7314bc17b [ARC]Fast interrupts support.
When a processor enters a fast interrupts handler, and duplicate
register banks are configured, the processor saves the user context by
saving the registers in the main register bank to these additional
registers in the duplicate register bank.  In this fast interrupt
context, when you specify the rgf_banked_regs option,the compiler does
not save the registers duplicated in the additional register bank are
not saved.

gcc/
2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc.c (ARC_AUTOBLINK_IRQ_P): Consider fast interrupts
	case also.
	(ARC_AUTOFP_IRQ_P): Likewise.
	(ARC_AUTO_IRQ_P): Likewise.
	(rgf_banked_register_count): New variable.
	(parse_mrgf_banked_regs_option): New function.
	(arc_override_options): Handle rgf_banked_regs option.
	(arc_handle_interrupt_attribute): Add firq option.
	(arc_compute_function_type): Return fast irq type when required.
	(arc_must_save_register): Handle fast interrupts.
	(arc_expand_prologue): Do not emit dwarf info for fast interrupts.
	(arc_return_address_regs): Update.
	* config/arc/arc.h (arc_return_address_regs): Update.
	(arc_function_type): Add fast interrupt type.
	(ARC_INTERRUPT_P): Update.
	(RC_FAST_INTERRUPT_P): Define.
	* config/arc/arc.md (simple_return): Update for fast interrupts.
	(p_return_i): Likewise.
	* config/arc/arc.opt (mrgf-banked-regs): New option.
	* doc/invoke.texi (mrgf-banked-regs): Document.

testsuite/
2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>

	* gcc.target/arc/firq-1.c: New file.
	* gcc.target/arc/firq-2.c: Likewise.
	* gcc.target/arc/firq-3.c: Likewise.
	* gcc.target/arc/firq-4.c: Likewise.
	* gcc.target/arc/firq-5.c: Likewise.
	* gcc.target/arc/firq-6.c: Likewise.

Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>

From-SVN: r247796
2017-05-09 16:19:35 +02:00
Claudiu Zissulescu
4145318390 [ARC] Automatic context save/restore for regular interrupts.
The AUX_IRQ_CTRL register controls the behavior of automated register
save and restore or prologue and epilogue sequences during a non-fast
interrupt entry and exit, and context save and restore instructions.

A user passes to the compiler the configuration of the AUX_IRQ_CTRL
register via mirq-ctrl-saved option.  This option, specifies
gneral-purposes registers that the processor saves/restores on
interrupt entry and exit, and it is only valid for ARC EM and ARC HS
cores.

gcc/
2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (irq_ctrl_saved): New variable.
	(ARC_AUTOBLINK_IRQ_P): Define.
	(ARC_AUTOFP_IRQ_P): Likewise.
	(ARC_AUTO_IRQ_P): Likewise.
	(irq_range): New function.
	(arc_must_save_register): Likewise.
	(arc_must_save_return_addr): Likewise.
	(arc_dwarf_emit_irq_save_regs): Likewise.
	(arc_override_options): Handle deferred options.
	(MUST_SAVE_REGISTER): Deleted, replaced by arc_must_save_register.
	(MUST_SAVE_RETURN_ADDR): Deleted, replaced by
	arc_must_save_return_addr.
	(arc_compute_frame_size): Handle automated save and restore of
	registers.
	(arc_expand_prologue): Likewise.
	(arc_expand_epilogue): Likewise.
	* config/arc/arc.md (stack_irq_dwarf): New unspec instruction.
	* config/arc/arc.opt (mirq-ctrl-saved): New option.
	* doc/invoke.texi (mirq-ctrl-saved): Document option.

testsuite/
2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/interrupt-5.c: Newfile.
	* gcc.target/arc/interrupt-6.c: Likewise.
	* gcc.target/arc/interrupt-7.c: Likewise.
	* gcc.target/arc/interrupt-8.c: Likewise.
	* gcc.target/arc/interrupt-9.c: Likewise.

From-SVN: r247795
2017-05-09 16:19:22 +02:00
Richard Biener
019bd543a9 vect-44.c: Add --param vect-max-peeling-for-alignment=0 and adjust.
2017-05-09  Richard Biener  <rguenther@suse.de>

	* gcc.dg/vect/vect-44.c: Add --param vect-max-peeling-for-alignment=0
	and adjust.
	* gcc.dg/vect/vect-50.c: Likewise.

From-SVN: r247794
2017-05-09 14:07:01 +00:00
Jason Merrill
6064858051 PR c++/70167 - array prvalue treated as lvalue
* cp-tree.h (CONSTRUCTOR_C99_COMPOUND_LITERAL): New.
	(enum fcl_t): New.
	* semantics.c (finish_compound_literal): Add fcl_context parameter.
	Only make a static variable for C99 syntax.
	* parser.c (cp_parser_postfix_expression): Pass it.
	* pt.c (tsubst_copy_and_build): Likewise.
	* call.c (extend_ref_init_temps): Set
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.

From-SVN: r247793
2017-05-09 09:48:58 -04:00
Nathan Sidwell
6c38fbc648 ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope typedefs.
* ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
	typedefs.

From-SVN: r247791
2017-05-09 13:03:41 +00:00
Marek Polacek
684f84dea9 re PR c/80525 (-Wlogical-op confused by undefined integer overflow)
PR c/80525
	* c-warn.c (unwrap_c_maybe_const): New.
	(warn_logical_operator): Call it.

	* c-c++-common/Wlogical-op-1.c: Don't use -fwrapv anymore.
	* c-c++-common/Wlogical-op-2.c: New test.

From-SVN: r247786
2017-05-09 11:21:14 +00:00
Nathan Sidwell
641da50a0c c-tree.h (pushdecl): Declare.
gcc/c/
	* c-tree.h (pushdecl): Declare.
	gcc/cp/
	* cp-lang.c (get_global_decls, cxx_pushdecl): New.
	(LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Override.
	* name-lookup.h (pushdecl_top_level): Declare.
	gcc/c-family/
	* c-common.c (c_register_builtin_type): Use pushdecl lang_hook.
	* c-common.h (pushdecl_top_level, pushdecl): Don't declare here.
	gcc/objc/
	* objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use
	pushdecl lang_hook.

From-SVN: r247785
2017-05-09 11:17:45 +00:00
Marek Polacek
40abbbea66 * doc/invoke.texi: Fix typo.
From-SVN: r247784
2017-05-09 10:53:49 +00:00
Richard Biener
05e5efc896 tree-vrp.c (vrp_val_is_max): Adjust comment.
2017-05-09  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (vrp_val_is_max): Adjust comment.
	(vrp_val_is_min): Likewise.
	(set_value_range_to_value): Likewise.
	(set_value_range_to_nonnegative): Likewise.
	(gimple_assign_nonzero_p): Likewise.
	(gimple_stmt_nonzero_p): Likewise.
	(vrp_int_const_binop): Likewise.  Remove unreachable case.
	(adjust_range_with_scev): Adjust comments.
	(compare_range_with_value): Likewise.
	(extract_range_from_phi_node): Likewise.
	(test_for_singularity): Likewise.

From-SVN: r247783
2017-05-09 10:22:27 +00:00
Senthil Kumar Selvaraj
fd71825b42 Fix broken cunroll-13.c for avr target
The test reports bogus failures because the loop variable i is declared
as int, and the constant expected in the dump doesn't fit in an int for avr.
Fixed by explicitly using __INT32_TYPE__ for targets with __SIZEOF_INT__ < 4.

gcc/testsuite/

2017-05-09  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* gcc.dg/tree-ssa/cunroll-13.c: Use __INT32_TYPE__ for
	for targets with __SIZEOF_INT__ < 4.

From-SVN: r247782
2017-05-09 09:59:25 +00:00
Richard Biener
39032dee86 tree-vrp.c (get_single_symbol): Add assert that we don't get overflowed constants as invariant part.
2017-05-09  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (get_single_symbol): Add assert that we don't
	get overflowed constants as invariant part.
	(compare_values_warnv): Add comment before the TREE_NO_WARNING
	checks.  Use wi::cmp instead of recursing for integer constants.
	(compare_values): Just ignore whether we assumed undefined
	overflow instead of failing the compare.
	(extract_range_for_var_from_comparison_expr): Add comment before the
	TREE_NO_WARNING sets.
	(test_for_singularity): Likewise.
	(extract_range_from_comparison): Do not disable optimization
	when we assumed undefined overflow.
	(extract_range_basic): Remove init of unused var.

From-SVN: r247781
2017-05-09 08:14:44 +00:00
Richard Biener
4ca2e6ec7c vect-50.c: Revert last change.
2017-05-09  Richard Biener  <rguenther@suse.de>

	* gcc.dg/vect/vect-50.c: Revert last change.
	* gcc.dg/vect/vect-44.c: Likewise.

From-SVN: r247780
2017-05-09 08:07:47 +00:00
Richard Biener
44dedb4b17 tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
2017-05-09  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
	(extract_range_from_multiplicative_op_1): Adjust.
	(extract_range_from_binary_expr_1): Use int_const_binop.

From-SVN: r247779
2017-05-09 07:57:04 +00:00
Martin Sebor
631238ac3f PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
gcc/c-family/ChangeLog:

	PR translation/80280
	* c-format.h (struct format_flag_spec): Add new member.
	(T89_T): New macro.
	* c-format.c (local_tree_type_node): New global.
	(printf_flag_specs, asm_fprintf_flag_spec): Initialize new data.
	(gcc_diag_flag_specs, scanf_flag_specs, strftime_flag_specs): Ditto.
	(strfmon_flag_specs): Likewise.
	(gcc_diag_char_table, gcc_cdiag_char_table): Split up specifiers
	with distinct quoting properties.
	(gcc_tdiag_char_table, gcc_cxxdiag_char_table): Same.
	(flag_chars_t::validate): Add argument and handle bad quoting.
	(check_format_info_main): Handle quoting problems.
	(init_dynamic_diag_info): Simplify.

gcc/testsuite/ChangeLog:

	PR translation/80280
	* gcc.dg/format/gcc_diag-10.c: New test.

From-SVN: r247778
2017-05-08 20:47:14 -06:00
Kelvin Nilsen
6ba86ba72f re PR target/80101 (ICE in store_data_bypass_p, at recog.c:3737)
gcc/testsuite/ChangeLog:

2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/80101
	* gcc.target/powerpc/pr80101-1.c: New test.


gcc/ChangeLog:

2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/80101
	* config/rs6000/power6.md: Replace store_data_bypass_p calls with
	rs6000_store_data_bypass_p in seven define_bypass directives and
	in several comments.
	* config/rs6000/rs6000-protos.h: Add prototype for
	rs6000_store_data_bypass_p function.
	* config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
	function implements slightly different (rs6000-specific) semantics
	than store_data_bypass_p, returning false rather than aborting
	with assertion error when arguments do not satisfy the
	requirements of store data bypass.
	(rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
	rs6000_store_data_bypass_p.

From-SVN: r247777
2017-05-09 01:15:46 +00:00
GCC Administrator
6abd0017dd Daily bump.
From-SVN: r247776
2017-05-09 00:16:18 +00:00
Max Filippov
5057f9e00f xtensa: add support for SSP
gcc/
2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa-protos.h
       	(xtensa_initial_elimination_offset): New declaration.
	* config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
	New function. Move its body from the INITIAL_ELIMINATION_OFFSET
	macro definition, add case for FRAME_POINTER_REGNUM when
	FRAME_GROWS_DOWNWARD.
	* config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro
	definition.
	(INITIAL_ELIMINATION_OFFSET): Replace body with call to
	xtensa_initial_elimination_offset.

From-SVN: r247771
2017-05-08 23:53:14 +00:00
Nathan Sidwell
26ffe6942c * doc/invoke.texi: Alphabetize -fdump options.
From-SVN: r247760
2017-05-08 21:52:53 +00:00
Martin Sebor
ea494cd74f re PR translation/80280 (Missing closing quote (%>) c/semantics.c and c/c-typeck.c)
gcc/ChangeLog:

	PR translation/80280
	* config/sol2-c.c (solaris_pragma_align): Correct quoting.

From-SVN: r247758
2017-05-08 14:50:24 -06:00
Jason Merrill
f3ec182d6c PR c++/80178 - parameter passing for uncopyable classes
* tree.c (type_has_nontrivial_copy_init): True for classes with only
	deleted copy/move ctors.
	(remember_deleted_copy, maybe_warn_parm_abi): New.
	* decl.c (require_complete_types_for_parms, check_function_type):
	Call maybe_warn_parm_abi.
	* call.c (convert_for_arg_passing, build_cxx_call): Likewise.

From-SVN: r247757
2017-05-08 15:08:07 -04:00
Jason Merrill
49f0c04c37 Bump C++ ABI version.
* c-opts.c (c_common_post_options): Update defaults for
	flag_abi_version and flag_abi_compat_version.

From-SVN: r247756
2017-05-08 14:45:42 -04:00
Thomas Koenig
0f6ed1211d re PR fortran/79930 (Potentially Missed Optimisation for MATMUL / DOT_PRODUCT)
2017-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/79930
	* frontend-passes.c (matmul_to_var_expr): New function,
	add prototype.
	(matmul_to_var_code):  Likewise.
	(optimize_namespace):  Use them from gfc_code_walker.

2017-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/79930
	* gfortran.dg/inline_transpose_1.f90:  Add
	-finline-matmul-limit=0 to options.
	* gfortran.dg/matmul_5.f90:  Likewise.
	* gfortran.dg/vect/vect-8.f90: Likewise.
	* gfortran.dg/inline_matmul_14.f90:  New test.
	* gfortran.dg/inline_matmul_15.f90:  New test.

From-SVN: r247755
2017-05-08 18:22:44 +00:00
Nathan Sidwell
507e429b2f decl.c (builtin_function_1): Set DCL_ANTICIPATED before pushing.
* decl.c (builtin_function_1): Set DCL_ANTICIPATED before pushing.
	(start_preparsed_function): Do decl pushing before setting
	current_funciton_decl and announcing it.

From-SVN: r247754
2017-05-08 17:59:03 +00:00
Thomas Koenig
fd9910392b re PR libfortran/80602 (Reduce stack usage for blocked matmul)
2017-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80602
	* m4/matmul_internal.m4:  'matmul_name`:  Change
	t1 to a VLA of the required size.
        * generated/matmul_c10.c: Regenerated.
        * generated/matmul_c16.c: Regenerated.
        * generated/matmul_c4.c: Regenerated.
        * generated/matmul_c8.c: Regenerated.
        * generated/matmul_i1.c: Regenerated.
        * generated/matmul_i16.c: Regenerated.
        * generated/matmul_i2.c: Regenerated.
        * generated/matmul_i4.c: Regenerated.
        * generated/matmul_i8.c: Regenerated.
        * generated/matmul_r10.c: Regenerated.
        * generated/matmul_r16.c: Regenerated.
        * generated/matmul_r4.c: Regenerated.
        * generated/matmul_r8.c: Regenerated.

2017-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80602
	* gfortran.dg/matmul_15.f90:  New test case.

From-SVN: r247753
2017-05-08 17:56:13 +00:00
Nathan Sidwell
d16d5eac2a name-lookup.h (pushdecl_with_scope): Replace with ...
* name-lookup.h (pushdecl_with_scope): Replace with ...
	(pushdecl_outermost_localscope): ... this.
	* name-lookup.c (pushdecl_with_scope): Replace with ...
	(pushdecl_outermost_localscope): ... this.
	(pushdecl_namespace_level): Adjust.
	* decl.c (cp_make_fname_decl): Use pushdecl_outermost_localscope.
	* lambda.c (insert_capture_proxy): Likewise.

From-SVN: r247752
2017-05-08 17:54:55 +00:00
Bernd Edlinger
29eb9a442b target.def (compute_frame_layout): New optional target hook.
2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * target.def (compute_frame_layout): New optional target hook.
        * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
        * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
        * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
        target hook.
        * reload1.c (verify_initial_elim_offsets): Likewise.
        * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
        (use_simple_return_p): Call arm_compute_frame_layout if needed.
        (arm_get_frame_offsets): Split up into this ...
        (arm_compute_frame_layout): ... and this function.

From-SVN: r247750
2017-05-08 17:44:36 +00:00
Jonathan Wakely
9057edd30c Tweak static assertions in std::optional
* include/std/optional: Use a separate static_assert per condition.
	* testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
	numbers.

From-SVN: r247748
2017-05-08 18:13:38 +01:00
Nathan Sidwell
7574e45845 class.c (build_vtbl_initializer): Don't shadow outer variable with static var.
* class.c (build_vtbl_initializer): Don't shadow outer variable
	with static var.

From-SVN: r247747
2017-05-08 16:58:44 +00:00
Richard Sandiford
564cf83d79 [AArch64] Tighten move constraints for symbolic operands
The movsi and movdi constraints allowed the source to be any
absolute symbolic expression ("S").  That's OK for operands that
have already been vetted by the aarch64_mov_operand predicate but
causes problems if the register allocator substitutes an equivalence
(the usual "the constraints can't accept more than the predicates"
restriction).

Although all other uses of "S" in the backend are redundant and could
in principle be removed, "S" itself is a publicly-documented constraint
and so we'd have to keep its definition.  This patch therefore adds a
new "Usa" constraint for legitimate absolute address operands.

2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* config/aarch64/constraints.md (Usa): New constraint.
	* config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.

From-SVN: r247746
2017-05-08 16:18:49 +00:00
Nathan Sidwell
06aa549005 Revert _binding -> _value change.
* name-lookup.h (get_namespace_value, set_global_value): Rename to
	...
	(get_namespace_binding, set_global_binding): ... these.
	* name-lookup.c (get_namespace_value, set_global_value): Rename to
	...
	(get_namespace_binding, set_global_binding): ... these.
	(arg_assoc_namespace, pushdecl_maybe_friend_1)
	check_for_out_of_scope_variable, push_overloaded_decl_1,
	lookup_name_innermost_nonclass_level, push_namespace): Adjust.
	* cp-tree.h (IDENTIFIER_GLOBAL_VALUE)
	SET_IDENTIFIER_GLOBAL_VALUE): Adjust.
	* decl.c (poplevel): Adjust.
	* pt.c (make_constrained_auto): Likewise.
((--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/decl.c
M    cp/ChangeLog
M    cp/pt.c

From-SVN: r247745
2017-05-08 15:51:57 +00:00
Joseph Myers
1e5c24003b * es.po, sv.po: Update.
From-SVN: r247743
2017-05-08 16:42:27 +01:00
Jonathan Wakely
6d430cbd12 Clarify mt_allocator documentation w.r.t deallocation
* doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
	* doc/html/*: Regenerate.

From-SVN: r247742
2017-05-08 16:09:08 +01:00
Thomas Preud'homme
c2f46874fd Define TM_MULTILIB_CONFIG for ARM multilib
TM_MULTILIB_CONFIG is not set in config.gcc when building with multilib
for arm targets, leading to config/arm/t-multilib not including any of
the files (t-aprofile and t-rmprofile) definining the architecture and
FPU to build multilib for. This patch fixes that by setting
TM_MULTILIB_CONFIG to with_multilib_list's value after it has been
checked. It also fix a trailing whitespace issue.

2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
    with_multilib_list after it has been checked.

From-SVN: r247741
2017-05-08 14:35:56 +00:00
Richard Biener
a92464ddb2 tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
2017-05-08  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
	(bitmap_set_subtract_values): Likewise.

From-SVN: r247739
2017-05-08 13:35:29 +00:00
Richard Biener
da11a720a3 tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
2017-05-08  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
	(gimple_assign_nonzero): ... this and remove strict_overflow_p
	argument.
	(gimple_stmt_nonzero_warnv_p): Rename to ...
	(gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
	argument.
	(vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
	(extract_range_basic): Adjust, do not disable propagation on
	strict overflow sensitive simplification.
	(vrp_visit_cond_stmt): Likewise.

From-SVN: r247738
2017-05-08 12:52:44 +00:00
Wilco Dijkstra
18b8c294e2 This fixes a few failures on ARM and AArch64 due to a recent change in...
This fixes a few failures on ARM and AArch64 due to a recent change in
alignment peeling by switching the vector cost model off.

Tested on AArch64, ARM and x64 - committed as obvious.

    testsuite/
	* gcc.dg/vect/vect-44.c: Add -fno-vect-cost-model.
	* gcc.dg/vect/vect-50.c: Likewise.

From-SVN: r247737
2017-05-08 12:38:52 +00:00
GCC Administrator
41e97de9d5 Daily bump.
From-SVN: r247733
2017-05-08 00:16:30 +00:00
Jan Hubicka
5a8d501f0d ipa-inline-analysis.c (estimate_function_body_sizes): Recompute body size unconditionally.
* ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
	body size unconditionally.

From-SVN: r247729
2017-05-07 22:21:05 +00:00
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