David Malcolm [Tue, 30 Jun 2015 19:38:12 +0000 (19:38 +0000)]
 
PR jit/66546: Add gcc_jit_context_set_bool_allow_unreachable_blocks
gcc/jit/ChangeLog:
	PR jit/66546
	* docs/cp/topics/contexts.rst
	(gccjit::context::set_bool_allow_unreachable_blocks): New.
	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
	* docs/topics/contexts.rst (Options): Add notes discussing the
	transition from enums to entrypoints for new options.
	(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.
	* jit-common.h (gcc::jit::inner_bool_option): New enum.
	* jit-recording.c: Within namespace gcc::jit...
	(recording::context::context): Handle m_inner_bool_options.
	(recording::context::set_inner_bool_option): New.
	(inner_bool_option_reproducer_strings): New.
	(recording::context::log_all_options): Log the "inner" bool
	options.
	(recording::context::log_inner_bool_option): New.
	(recording::context::dump_reproducer_to_file): Write initializers
	for "inner" bool options.
	(recording::function::validate): Don't check for block
	reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
	* jit-recording.h: Within namespace gcc::jit...
	(recording::context::set_inner_bool_option): New.
	(recording::context::get_inner_bool_option): New.
	(recording::context::log_inner_bool_option): New.
	(recording::context::m_inner_bool_options): New.
	* libgccjit++.h
	(gccjit::context::set_bool_allow_unreachable_blocks): New.
	* libgccjit.c
	(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
	* libgccjit.h: Add note about options present in the
	initial release of libgccjit.
	(gcc_jit_context_set_bool_allow_unreachable_blocks): New API
	entrypoint.
	(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
	New macro.
	* libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
	(gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
	entrypoint.
gcc/testsuite/ChangeLog:
	PR jit/66546
	* jit.dg/all-non-failing-tests.h: Add note about
	test-validly-unreachable-block.c.
	* jit.dg/test-validly-unreachable-block.c: New file.
From-SVN: r225206
David Malcolm [Tue, 30 Jun 2015 19:27:19 +0000 (19:27 +0000)]
 
PR jit/66628: add gcc_jit_context_add_command_line_option
gcc/jit/ChangeLog:
	PR jit/66628
	* docs/cp/topics/contexts.rst (Additional command-line options):
	New section.
	* docs/topics/compatibility.rst: New file.
	* docs/topics/contexts.rst (Additional command-line options): New
	section.
	* docs/topics/index.rst: Add compatibility.rst.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.
	* jit-playback.c (make_fake_args): Add call to
	append_command_line_options.
	* jit-recording.c: Within namespace gcc::jit...
	(recording::context::~context): Free the optnames within
	m_command_line_options.
	(recording::context::set_bool_option): Likewise.
	(recording::context::add_command_line_option): New method.
	(recording::context::append_command_line_options): New method.
	(recording::context::dump_reproducer_to_file): Add command-line
	options.
	* jit-recording.h: Within namespace gcc::jit...
	(recording::context::add_command_line_option): New method.
	(recording::context::append_command_line_options): New method.
	(recording::context::m_command_line_options): New field.
	* libgccjit++.h (gccjit::context::add_command_line_option): New
	method.
	* libgccjit.c (gcc_jit_context_add_command_line_option): New API
	entrypoint.
	* libgccjit.h (gcc_jit_context_add_command_line_option): New API
	entrypoint.
	(LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
	macro.
	* libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
	LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.
gcc/testsuite/ChangeLog:
	PR jit/66628
	* jit.dg/all-non-failing-tests.h: Add note about
	test-extra-options.c.
	* jit.dg/test-extra-options.c: New testcase.
From-SVN: r225205
David Malcolm [Tue, 30 Jun 2015 19:18:34 +0000 (19:18 +0000)]
 
fixes to gcc_jit_context_dump_reproducer_to_file
gcc/jit/ChangeLog:
	* jit-recording.c
	(gcc::jit::recording::context::dump_reproducer_to_file):
	Add pragma to generated reproducers to disable -Wunused-variable.
	Fix handling of NULL string options.
From-SVN: r225204
David Malcolm [Tue, 30 Jun 2015 19:09:31 +0000 (19:09 +0000)]
 
jit: fix some .rst issues in docs
gcc/jit/ChangeLog:
	* docs/cp/topics/expressions.rst: Remove stray semicolon.
	* docs/cp/topics/functions.rst: Remove stray backslash.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.
From-SVN: r225203
Vladimir Makarov [Tue, 30 Jun 2015 17:44:00 +0000 (17:44 +0000)]
 
Add missed test
From-SVN: r225201
Vladimir Makarov [Tue, 30 Jun 2015 17:40:55 +0000 (17:40 +0000)]
 
re PR debug/66691 (ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5744)
2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
	PR debug/66691
	* lra-int.h (lra_substitute_pseudo): Add a parameter.
	(lra_substitute_pseudo_within_insn): Ditto.
	* lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
	of constant.
	(lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
	to lra_substitute_pseudo.
	* lra-lives.c (process_bb_lives): Add an argument to
	lra_substitute_pseudo_within_insn call.
	* lra-constraints.c (inherit_reload_reg, split_reg): Add an
	argument to lra_substitute_pseudo and
	lra_substitute_pseudo_within_insn calls.
	(remove_inheritance_pseudos, undo_optional_reloads): Ditto.
2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
	PR debug/66691
	* gcc.target/i386/pr66691.c: New.
From-SVN: r225200
H.J. Lu [Tue, 30 Jun 2015 16:46:45 +0000 (16:46 +0000)]
 
IA MCU psABI support: testsuite
We run Intel MCU psABI tests on Linux/ia32 with -miamcu.  Since Intel
MCU psABI has a different calling convention, the only Linux libc function
allowed is "abort".
asm-support.S contains some support functions as well as a subset of
soft-fp, which is written in assembly with x87 instructions, to provide
intrinsics needed by -miamcu so that Intel MCU psABI tests can run on
Linux.
	* gcc.target/i386/iamcu/abi-iamcu.exp: New file.
	* gcc.target/i386/iamcu/args.h: Likewise.
	* gcc.target/i386/iamcu/asm-support.S: Likewise.
	* gcc.target/i386/iamcu/defines.h: Likewise.
	* gcc.target/i386/iamcu/macros.h: Likewise.
	* gcc.target/i386/iamcu/test_3_element_struct_and_unions.c: Likewise.
	* gcc.target/i386/iamcu/test_basic_64bit_returning.c: Likewise.
	* gcc.target/i386/iamcu/test_basic_alignment.c: Likewise.
	* gcc.target/i386/iamcu/test_basic_array_size_and_align.c: Likewise.
	* gcc.target/i386/iamcu/test_basic_returning.c: Likewise.
	* gcc.target/i386/iamcu/test_basic_sizes.c: Likewise.
	* gcc.target/i386/iamcu/test_basic_struct_size_and_align.c: Likewise.
	* gcc.target/i386/iamcu/test_basic_union_size_and_align.c: Likewise.
	* gcc.target/i386/iamcu/test_bitfields.c: Likewise.
	* gcc.target/i386/iamcu/test_complex_returning.c: Likewise.
	* gcc.target/i386/iamcu/test_passing_floats.c: Likewise.
	* gcc.target/i386/iamcu/test_passing_integers.c: Likewise.
	* gcc.target/i386/iamcu/test_passing_structs.c: Likewise.
	* gcc.target/i386/iamcu/test_passing_structs_and_unions.c: Likewise.
	* gcc.target/i386/iamcu/test_passing_unions.c: Likewise.
	* gcc.target/i386/iamcu/test_struct_returning.c: Likewise.
	* gcc.target/i386/iamcu/test_varargs.c: Likewise.
From-SVN: r225199
H.J. Lu [Tue, 30 Jun 2015 16:42:07 +0000 (16:42 +0000)]
 
IA MCU psABI support: changes to libraries
Patch in the bottom adds support of IA MCU psABI to libgcc (enables
soft-fp) and libdecnumber (enables it for IA MCU).
config/
	* dfp.m4 (enable_decimal_float): Also set to yes for
	i?86*-*-elfiamcu target.
gcc/
	* configure: Regenerated.
libdecnumber/
	* configure: Regenerated.
libgcc/
	* config.host: Support i[34567]86-*-elfiamcu target.
	* config/t-softfp-sfdftf: New file.
	* config/i386/32/t-iamcu: Likewise.
	* configure: Regenerated.
From-SVN: r225198
H.J. Lu [Tue, 30 Jun 2015 16:40:19 +0000 (16:40 +0000)]
 
IA MCU psABI support: GCC changes
This patch introduces basic IA MCU psABI support into GCC.
	* configure.ac (ospace_frag): Enable for i?86*-*-elfiamcu
	target.
	* configure: Regenerate.
gcc/
	* config.gcc: Support i[34567]86-*-elfiamcu target.
	* config/i386/iamcu.h: New.
	* config/i386/i386.opt: Add -miamcu.
	* doc/invoke.texi: Document -miamcu.
	* common/config/i386/i386-common.c  (ix86_handle_option): Turn
	off x87/MMX/SSE/AVX codegen for -miamcu.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__iamcu/__iamcu__ for -miamcu.
	* config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
	to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
	(BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
	* config/i386/i386.c (ix86_option_override_internal): Ignore and
	warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
	MCU by default.  Default long double to 64-bit for Intel MCU.
	Turn on -freg-struct-return for Intel MCU.  Issue an error when
	-miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
	AVX is turned on.
	(function_arg_advance_32): Pass value whose size is no larger
	than 8 bytes in registers for Intel MCU.
	(function_arg_32): Likewise.
	(ix86_return_in_memory): Return value whose size is no larger
	than 8 bytes in registers for Intel MCU.
	(iamcu_alignment): New function.
	(ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
	true.
	(ix86_local_alignment): Don't increase alignment for Intel MCU.
	(x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
	true.
From-SVN: r225197
Marek Polacek [Tue, 30 Jun 2015 16:36:44 +0000 (16:36 +0000)]
 
match.pd (~x | x): Don't use tree_nop_conversion_p.
	* match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
	the final expression with the operand's type and then convert
	it to the type of the expression.
	* gcc.dg/fold-ior-3.c: New test.
From-SVN: r225196
Marek Polacek [Tue, 30 Jun 2015 16:35:16 +0000 (16:35 +0000)]
 
match.pd (X - (X / Y) * Y): Use convert1 and convert2.
	* match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
	both operands of the resulting expression.
	* gcc.dg/fold-minus-6.c: New test.
From-SVN: r225195
Tom de Vries [Tue, 30 Jun 2015 15:43:55 +0000 (15:43 +0000)]
 
Run testsuite/libgomp.oacc-c++/c++.exp at -O2 by default
2015-06-30  Tom de Vries  <tom@codesourcery.com>
	* testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
	already set.  Use DEFAULT_CFLAGS in dg-runtest.
	* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
	"-O2".
From-SVN: r225194
Jason Merrill [Tue, 30 Jun 2015 15:40:38 +0000 (11:40 -0400)]
 
re PR debug/66653 (ice in gen_type_die_with_usage, at dwarf2out.c:20876)
	PR debug/66653
	* decl2.c (is_late_template_attribute): True for tls_model.
From-SVN: r225193
Jason Merrill [Tue, 30 Jun 2015 14:31:36 +0000 (10:31 -0400)]
 
re PR debug/66653 (ice in gen_type_die_with_usage, at dwarf2out.c:20876)
	PR debug/66653
	* cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
	(DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
	(SET_DECL_GNU_TLS_P): New.
	* call.c (make_temporary_var_for_ref_to_temp): Use
	CP_DECL_THREAD_LOCAL_P.
	(set_up_extended_ref_temp): Likewise.
	* decl.c (duplicate_decls, expand_static_init): Likewise.
	(redeclaration_error_message, grokvardecl): Likewise.
	(start_decl, register_dtor_fn, grokdeclarator): Likewise.
	* decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
	(handle_tls_init): Likewise.
	* pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
	* semantics.c (finish_id_expression): Likewise.
	(handle_omp_array_sections_1, finish_omp_clauses): Likewise.
	(finish_omp_threadprivate): Likewise.
	* tree.c (decl_storage_duration): Likewise.
	* cp-gimplify.c (omp_var_to_track): Likewise.
	(cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
	* lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
	already set.
From-SVN: r225192
Jonathan Wakely [Tue, 30 Jun 2015 14:22:14 +0000 (15:22 +0100)]
 
Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
	* doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
	* doc/Makefile.in: Regenerate.
From-SVN: r225191
Jonathan Wakely [Tue, 30 Jun 2015 13:35:36 +0000 (14:35 +0100)]
 
* include/bits/stl_pair.h: Replace class keyword with typename.
From-SVN: r225190
Ville Voutilainen [Tue, 30 Jun 2015 13:26:49 +0000 (16:26 +0300)]
 
Implement N4387, "Improving pair and tuple", and LWG 2367.
2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
	Implement N4387, "Improving pair and tuple", and LWG 2367.
	* include/bits/stl_pair.h (_ConstructiblePair,
	_ImplicitlyConvertiblePair, _MoveConstructiblePair,
	_ImplicitlyMoveConvertiblePair): New.
	(pair()): Constrain it.
	(pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
	pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
	pair(pair<_U1, _U2>&&)): Make conditionally explicit.
	* include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
	(tuple()): Constrain it.
	(tuple(const _UElements&...), tuple(_UElements&&...),
	tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
	tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
	tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
	tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
	tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
	tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
	tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
	tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
	conditionally explicit.
	* include/experimental/functional (__boyer_moore_array_base): Name
	array type explicitly instead of using an empty braced-init-list.
	* testsuite/20_util/pair/cons/explicit_construct.cc: New.
	* testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
	* testsuite/20_util/pair/requirements/dr2367.cc: New.
	* testsuite/20_util/tuple/cons/explicit_construct.cc: New.
	* testsuite/20_util/tuple/requirements/dr2367.cc: New.
From-SVN: r225189
Edward Smith-Rowland [Tue, 30 Jun 2015 12:58:48 +0000 (12:58 +0000)]
 
Implement N4197 - Adding u8 character literals
libcpp:
2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
	Implement N4197 - Adding u8 character literals
	* include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens;
	(struct cpp_options): Add utf8_char_literals.
	* init.c (struct lang_flags): Add utf8_char_literals;
	(struct lang_flags lang_defaults): Add column for utf8_char_literals.
	* macro.c (stringify_arg()): Treat CPP_UTF8CHAR token;
	* expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()):
	Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens;
	(cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token;
	(eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token.
	* lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens.
	* charset.c (converter_for_type(), cpp_interpret_charconst()):
	Treat CPP_UTF8CHAR token.
gcc/c-family:
2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
	Implement N4197 - Adding u8 character literals
	* c-family/c-ada-spec.c (print_ada_macros()): Treat CPP_UTF8CHAR
	like CPP_CHAR.
	* c-family/c-common.c (c_parse_error()): print CPP_UTF8CHAR
	and CPP_UTF8CHAR_USERDEF tokens.
	* c-family/c-lex.c (c_lex_with_flags()): Treat CPP_UTF8CHAR_USERDEF
	and CPP_UTF8CHAR tokens; (lex_charconst()): Treat CPP_UTF8CHAR token.
gcc/cp:
2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
	Implement N4197 - Adding u8 character literals
	* parser.c (cp_parser_primary_expression()): Treat CPP_UTF8CHAR
	and CPP_UTF8CHAR_USERDEF tokens;
	(cp_parser_parenthesized_expression_list()): Treat CPP_UTF8CHAR token.
gcc/testsuite:
2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
	Implement N4197 - Adding u8 character literals
	* g++.dg/cpp1z/utf8.C: New.
	* g++.dg/cpp1z/utf8-neg.C: New.
	* g++.dg/cpp1z/udlit-utf8char.C: New.
From-SVN: r225185
Richard Biener [Tue, 30 Jun 2015 12:54:23 +0000 (12:54 +0000)]
 
fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and ~x | ~y -> ~(x & y)...
2015-06-30  Richard Biener  <rguenther@suse.de>
	* fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
	~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
	(X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
	* match.pd: ... to patterns here.
From-SVN: r225184
Jonathan Wakely [Tue, 30 Jun 2015 12:53:14 +0000 (13:53 +0100)]
 
* configure: Regenerate.
From-SVN: r225183
Richard Biener [Tue, 30 Jun 2015 12:52:55 +0000 (12:52 +0000)]
 
re PR tree-optimization/66704 (ICE in tree-vectorizer at tree-ssanames.c:457)
2015-06-30  Richard Biener  <rguenther@suse.de>
	PR tree-optimization/66704
	* tree-vect-data-refs.c (vect_setup_realignment): Use
	make_ssa_name for non-SSA name source.
From-SVN: r225182
Tom de Vries [Tue, 30 Jun 2015 12:22:04 +0000 (12:22 +0000)]
 
Run testsuite/libgomp.c++/c++.exp at -O2 by default
2015-06-30  Tom de Vries  <tom@codesourcery.com>
	* testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
	already set.  Use DEFAULT_CFLAGS in dg-runtest.
	* testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
	* testsuite/libgomp.c++/pr64824.C: Same.
	* testsuite/libgomp.c++/pr64868.C: Same.
	* testsuite/libgomp.c++/pr66199-1.C: Same.
	* testsuite/libgomp.c++/pr66199-2.C: Same.
	* testsuite/libgomp.c++/target-2.C: Same.
	* testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
	-std=<standard> option.
	* testsuite/libgomp.c++/udr-11.C: Same.
	* testsuite/libgomp.c++/udr-12.C: Same.
	* testsuite/libgomp.c++/udr-13.C: Same.
	* testsuite/libgomp.c++/udr-14.C: Same.
	* testsuite/libgomp.c++/udr-15.C: Same.
	* testsuite/libgomp.c++/udr-16.C: Same.
	* testsuite/libgomp.c++/udr-17.C: Same.
	* testsuite/libgomp.c++/udr-18.C: Same.
	* testsuite/libgomp.c++/udr-19.C: Same.
	* testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
	* testsuite/libgomp.c++/simd-1.C: Same.
	* testsuite/libgomp.c++/simd-2.C: Same.
	* testsuite/libgomp.c++/simd-3.C: Same.
	* testsuite/libgomp.c++/simd-4.C: Same.
	* testsuite/libgomp.c++/simd-5.C: Same.
	* testsuite/libgomp.c++/simd-6.C: Same.
	* testsuite/libgomp.c++/simd-7.C: Same.
	* testsuite/libgomp.c++/simd-8.C: Same.
	* testsuite/libgomp.c++/simd-9.C: Same.
	* testsuite/libgomp.c++/simd10.C: Same.
	* testsuite/libgomp.c++/simd11.C: Same.
	* testsuite/libgomp.c++/simd12.C: Same.
	* testsuite/libgomp.c++/simd13.C: Same.
From-SVN: r225181
Jakub Jelinek [Tue, 30 Jun 2015 12:12:42 +0000 (14:12 +0200)]
 
re PR middle-end/66702 (#pragma omp declare simd uniform and linear issues)
	PR middle-end/66702
	* omp-low.c (simd_clone_adjust): Handle addressable linear
	or uniform parameters or non-gimple type uniform parameters.
	* testsuite/libgomp.c++/pr66702-1.C: New test.
	* testsuite/libgomp.c++/pr66702-2.C: New test.
From-SVN: r225179
Richard Biener [Tue, 30 Jun 2015 11:58:48 +0000 (11:58 +0000)]
 
fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x)...
2015-06-30  Richard Biener  <rguenther@suse.de>
	* fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
	~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
	~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
	* match.pd: ... here.
	Add a few cases of A - B -> A + (-B) when B "easily" negates.
	Move (x & y) | x -> x and friends before
	(x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
From-SVN: r225178
Marek Polacek [Tue, 30 Jun 2015 11:05:13 +0000 (11:05 +0000)]
 
* gcc.dg/fold-ior-2.c (fn4): Swap operands.
From-SVN: r225174
Eric Botcazou [Tue, 30 Jun 2015 11:05:11 +0000 (11:05 +0000)]
 
leon.md (leon_load): Enable for all LEON variants if -mfix-ut699 is not specified.
	* config/sparc/leon.md (leon_load): Enable for all LEON variants if
	-mfix-ut699 is not specified.
	(leon3_load): Rename into...
	(ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
	is specified.
From-SVN: r225173
Tom de Vries [Tue, 30 Jun 2015 11:00:32 +0000 (11:00 +0000)]
 
Add parloops-exit-first-loop-alt-{5,6,7}.c
2015-06-30  Tom de Vries  <tom@codesourcery.com>
	* gcc.dg/parloops-exit-first-loop-alt-5.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt-6.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt-7.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt.c: Update comment.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
From-SVN: r225172
Marek Polacek [Tue, 30 Jun 2015 09:02:00 +0000 (09:02 +0000)]
 
fold-const.c (fold_binary_loc): Move ~X | X folding ...
	* fold-const.c (fold_binary_loc): Move ~X | X folding ...
	* match.pd: ... here.
	* gcc.dg/fold-ior-2.c: New test.
From-SVN: r225164
Richard Biener [Tue, 30 Jun 2015 08:52:48 +0000 (08:52 +0000)]
 
target-insns.def (canonicalize_funcptr_for_compare): Add.
2015-06-30  Richard Biener  <rguenther@suse.de>
	* target-insns.def (canonicalize_funcptr_for_compare): Add.
	* fold-const.c (build_range_check): Replace uses of
	HAVE_canonicalize_funcptr_for_compare.
	(fold_widened_comparison): Likewise.
	(fold_sign_changed_comparison): Likewise.
	* dojump.c: Include "target.h".
	(do_compare_and_jump): Replace uses of
	HAVE_canonicalize_funcptr_for_compare and
	gen_canonicalize_funcptr_for_compare.
	* expr.c (do_store_flag): Likewise.
From-SVN: r225163
Tom de Vries [Tue, 30 Jun 2015 08:35:57 +0000 (08:35 +0000)]
 
Use max_loop_iterations in transform_to_exit_first_loop_alt
2015-06-30  Tom de Vries  <tom@codesourcery.com>
	PR tree-optimization/66652
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
	max_loop_iterations to determine if nit + 1 overflows.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
	using restrict pointers.
	(main): Add arguments to calls to f.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
	* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt-3.c (f):  Rewrite using restrict
	pointers.
	* gcc.dg/parloops-exit-first-loop-alt.c: Same.
From-SVN: r225162
Richard Biener [Tue, 30 Jun 2015 08:35:30 +0000 (08:35 +0000)]
 
tree-vrp.c (register_edge_assert_for_2): Also register asserts for dominating conversion results.
2015-06-30  Richard Biener  <rguenther@suse.de>
	* tree-vrp.c (register_edge_assert_for_2): Also register
	asserts for dominating conversion results.
From-SVN: r225161
Uros Bizjak [Tue, 30 Jun 2015 08:26:57 +0000 (10:26 +0200)]
 
lex.c (search_line_sse42): New main loop using asm flag outputs.
	* lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
	loop using asm flag outputs.
From-SVN: r225160
Bin Cheng [Tue, 30 Jun 2015 02:39:54 +0000 (02:39 +0000)]
 
tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name field in struct iv.
	* tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
	field in struct iv.
From-SVN: r225159
Jack Howarth [Tue, 30 Jun 2015 02:10:43 +0000 (02:10 +0000)]
 
re PR target/66509 (the new clang-based assembler in Xcode 7 on 10.11 fails on the libjava/java/lang/reflect/natArray.cc file from FSF gcc 5.1 at -m32)
	PR target/66509
	* configure.ac: Fix filds and fildq test for 64-bit.
	* configure: Regenerated.
From-SVN: r225158
GCC Administrator [Tue, 30 Jun 2015 00:16:13 +0000 (00:16 +0000)]
 
Daily bump.
From-SVN: r225157
Nathan Sidwell [Mon, 29 Jun 2015 23:23:10 +0000 (23:23 +0000)]
 
nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
	* config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
	(nvptx_reorg): Here.  Keep the non-subreg pieces.
From-SVN: r225154
Paolo Carlini [Mon, 29 Jun 2015 22:02:08 +0000 (22:02 +0000)]
 
re PR c++/65977 (Constexpr should be allowed in declaration of friend template specialization)
/cp
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>
	PR c++/65977
	* decl.c (grokfndecl): Allow constexpr declarations of friend
	template specializations.
/testsuite
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>
	PR c++/65977
	* g++.dg/cpp0x/constexpr-friend-3.C: New.
	* g++.dg/cpp0x/constexpr-friend-2.C: Adjust.
From-SVN: r225148
H.J. Lu [Mon, 29 Jun 2015 20:50:57 +0000 (20:50 +0000)]
 
Use PIE_SPEC/NO_PIE_SPEC for crtend.o/crtendS.o
We need to link with crtend.o and crtendS.o properly for GCC configured
to generate PIE by default.
	* config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
	PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
From-SVN: r225144
François Dumont [Mon, 29 Jun 2015 20:17:56 +0000 (20:17 +0000)]
 
stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.
2015-06-29  François Dumont  <fdumont@gcc.gnu.org>
	* include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
	to pre-C++11 mode.
	* include/debug/functions.h
	(__gnu_debug::__valid_range, __gnu_debug::__base): Move...
	* include/debug/safe_iterator.h
	(__gnu_debug::_Sequence_traits): New.
	(__gnu_debug::__get_distance_from_begin): New.
	(__gnu_debug::__get_distance_to_end): New.
	(__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
	distance information. Add optional check_dereferenceable parameter,
	default true.
	(__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
	default definition...
	(__gnu_debug::__get_distance): New overload for _Safe_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/helper_functions.h: ...here. New.
	(__gnu_debug::__unsafe): New helper function to remove safe iterator
	layer.
	* include/debug/stl_iterator.h: New. Include latter.
	* include/bits/stl_iterator.h: Include latter in debug mode.
	* include/debug/stl_iterator.tcc: Adapt.
	* include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
	overload for _Safe_local_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/safe_local_iterator.tcc: Adapt.
	* include/debug/macros.h (__glibcxx_check_valid_range2): New.
	(__glibcxx_check_insert_range): Add _Dist parameter.
	(__glibcxx_check_insert_range_after): Likewise.
	(__glibcxx_check_string, __glibcxx_check_string_len): Implement using
	_GLIBCXX_DEBUG_PEDASSERT.
	* include/debug/deque (deque<>::assign): Remove iterator debug layer
	when possible.
	(deque<>::insert): Likewise.
	* include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
	(forward_list<>::splice_after): Use latter.
	(forward_list<>::assign): Remove iterator debug layer when possible.
	(forward_list<>::insert_after): Likewise.
	(__gnu_debug::_Sequence_traits<>): Partial specialization.
	* include/debug/list (list<>::assign): Remove iterator debug layer when
	possible.
	(list<>::insert): Likewise.
	[__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
	* include/debug/map.h (map<>::insert): Remove iterator debug layer when
	possible.
	* include/debug/multimap.h (multimap<>::insert): Likewise.
	* include/debug/set.h (set<>::insert): Likewise.
	* include/debug/multiset.h (multiset<>::insert): Likewise.
	* include/debug/string (basic_string<>::append, basic_string<>::assign,
	basic_string<>::insert, basic_string<>::replace): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
	* include/debug/unordered_set
	(unordered_set<>::insert, unordered_multiset<>insert): Likewise.
	* include/debug/vector
	(vector<>::assign, vector<>::insert): Likewise.
	* include/Makefile.am: Add new debug headers.
	* include/Makefile.in: Regenerate.
From-SVN: r225143
Eric Botcazou [Mon, 29 Jun 2015 17:45:34 +0000 (17:45 +0000)]
 
re PR ada/63310 (Ada bootstrap error with -fcompare-debug)
	PR ada/63310
	* gcc-interface/utils.c (gnat_write_global_declarations): Always
	build the dummy global variable if code was generated.
From-SVN: r225139
Uros Bizjak [Mon, 29 Jun 2015 17:18:17 +0000 (19:18 +0200)]
 
i386.md (*jcc_1): Use %!
	* config/i386/i386.md (*jcc_1): Use %! in asm template.
	Set attribute "length_nobnd" instead of "length".
	(*jcc_2): Ditto.
	(jump): Ditto.
	(*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
From-SVN: r225138
Sandra Loosemore [Mon, 29 Jun 2015 17:01:52 +0000 (13:01 -0400)]
 
nios2.c (nios2_delegitimize_address): Make assert less restrictive.
2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
	gcc/
	* config/nios2/nios2.c (nios2_delegitimize_address): Make
	assert less restrictive.
From-SVN: r225137
Manuel López-Ibáñez [Mon, 29 Jun 2015 16:25:26 +0000 (16:25 +0000)]
 
Wunused-parameter warnings are given from cgraph::finalize_function,
which is the middle-end. This is an oddity compared to other
-Wunused-* warnings. Moreover, Fortran has its own definition of
-Wunused-parameter that conflicts with the middle-end definition.
This patch moves the middle-end part of Wunused-parameter to the C/C++
FEs. I'm not sure if other FEs expected this warning to work. If so,
they do not seem to test for it. Ada, for example, explicitly disables
it.
gcc/ChangeLog:
2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	PR fortran/66605
	* cgraphunit.c (cgraph_node::finalize_function): Do not call
	do_warn_unused_parameter.
	* function.c (do_warn_unused_parameter): Move from here.
	* function.h (do_warn_unused_parameter): Do not declare.
gcc/c-family/ChangeLog:
2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	PR fortran/66605
	* c-common.c (do_warn_unused_parameter): Move here.
	* c-common.h (do_warn_unused_parameter): Declare.
gcc/ada/ChangeLog:
2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	PR fortran/66605
	* gcc-interface/misc.c (gnat_post_options): No need to disable
	warn_unused_parameter anymore.
gcc/cp/ChangeLog:
2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	PR fortran/66605
	* decl.c (finish_function): Call do_warn_unused_parameter.
gcc/testsuite/ChangeLog:
2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	PR fortran/66605
	* gfortran.dg/wunused-parameter.f90: New test.
gcc/c/ChangeLog:
2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	PR fortran/66605
	* c-decl.c (finish_function): Call do_warn_unused_parameter.
From-SVN: r225135
Matthew Wahab [Mon, 29 Jun 2015 16:12:12 +0000 (16:12 +0000)]
 
re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
	PR target/65697
	* gcc.target/arm/armv-sync-comp-swap.c: New.
	* gcc.target/arm/armv-sync-op-acquire.c: New.
	* gcc.target/arm/armv-sync-op-full.c: New.
	* gcc.target/arm/armv-sync-op-release.c: New.
From-SVN: r225134
Matthew Wahab [Mon, 29 Jun 2015 16:09:10 +0000 (16:09 +0000)]
 
re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
	PR target/65697
	* config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
	initial acquire barrier with final barrier.
From-SVN: r225133
Matthew Wahab [Mon, 29 Jun 2015 16:03:34 +0000 (16:03 +0000)]
 
re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
	PR target/65697
	* config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
	initial acquire barrier with final barrier.
From-SVN: r225132
Joseph Myers [Mon, 29 Jun 2015 15:58:13 +0000 (16:58 +0100)]
 
* sv.po: Update.
From-SVN: r225130
Richard Henderson [Mon, 29 Jun 2015 14:35:19 +0000 (07:35 -0700)]
 
i386: Implement asm flag outputs
        * config/i386/constraints.md (Bf): New constraint.
        * config/i386/i386-c.c (ix86_target_macros): Define
        __GCC_ASM_FLAG_OUTPUTS__.
        * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
        as flags outputs.
        * doc/extend.texi (FlagOutputOperands): Document them.
testsuite/
        * gcc.target/i386/asm-flag-1.c: New.
        * gcc.target/i386/asm-flag-2.c: New.
        * gcc.target/i386/asm-flag-3.c: New.
        * gcc.target/i386/asm-flag-4.c: New.
        * gcc.target/i386/asm-flag-5.c: New.
From-SVN: r225122
Jiong Wang [Mon, 29 Jun 2015 14:20:50 +0000 (14:20 +0000)]
 
[AArch64] Generalize TLSLE macro and pattern names
2015-06-29  Jiong Wang  <jiong.wang@arm.com>
	* config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
	* config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
	unspec name.
	(tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
	* config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
	SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
	(aarch64_symbol_context): Ditto.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
	and use new pattern name.
	(aarch64_expand_mov_immediate): Ditto.
	(aarch64_print_operand): Ditto.
	(aarch64_classify_tls_symbol): Ditto.
From-SVN: r225121
Marek Polacek [Mon, 29 Jun 2015 14:17:13 +0000 (14:17 +0000)]
 
fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
	* fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
	* match.pd: ... pattern here.
Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r225120
Tom de Vries [Mon, 29 Jun 2015 13:53:32 +0000 (13:53 +0000)]
 
Simplify structure try_transform_to_exit_first_loop_alt
2015-06-29  Tom de Vries  <tom@codesourcery.com>
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
	function structure.
From-SVN: r225119
Matthew Wahab [Mon, 29 Jun 2015 13:50:42 +0000 (13:50 +0000)]
 
invoke.texi (Aarch64 Options, -march): Split out arch and feature description...
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
	* doc/invoke.texi (Aarch64 Options, -march): Split out arch and
	feature description, split out the native option, add a link to
	the feature documentation, rearrange and slightly rewrite text.
	(Aarch64 options, -mcpu): Likewise.
	(Aarch64 options, Feature Modifiers): Add an anchor.  Mention
	+rdma implies Adv. SIMD.
From-SVN: r225118
Marek Polacek [Mon, 29 Jun 2015 13:12:44 +0000 (13:12 +0000)]
 
re PR c/66322 (Linus Torvalds: -Wswitch-bool produces dubious warnings, fails to notice really bad things)
	PR c/66322
	* c-common.c (check_case_bounds): Add bool * parameter.  Set
	OUTSIDE_RANGE_P.
	(c_add_case_label): Add bool * parameter.  Pass it down to
	check_case_bounds.
	(c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
	warning here.
	* c-common.h (c_add_case_label, c_do_switch_warnings): Update
	declarations.
	* c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
	(c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
	about -Wswitch-bool here.
	(do_case): Update c_add_case_label call.
	(c_finish_case): Update c_do_switch_warnings call.
	* decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
	(push_switch): Set OUTSIDE_RANGE_P.
	(pop_switch): Update c_do_switch_warnings call.
	(finish_case_label): Update c_add_case_label call.
	* semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
	here.
	* function.c (stack_protect_epilogue): Remove a cast to int.
	* doc/invoke.texi: Update -Wswitch-bool description.
	* c-c++-common/pr60439.c: Add dg-prune-output and add switch cases.
	* c-c++-common/pr66322.c: New test.
	* g++.dg/eh/scope1.C: Remove dg-warning.
From-SVN: r225116
Richard Biener [Mon, 29 Jun 2015 11:28:17 +0000 (11:28 +0000)]
 
genmatch.c (add_operator): Treat ADDR_EXPR as atom.
2015-06-29  Richard Biener  <rguenther@suse.de>
	* genmatch.c (add_operator): Treat ADDR_EXPR as atom.
	* fold-const.c (fold_binary_loc): Move &A - &B simplification
	via ptr_difference_const ...
	* match.pd: ... here.
	When matching (X ^ Y) == Y also match with swapped operands.
From-SVN: r225115
Richard Biener [Mon, 29 Jun 2015 08:44:56 +0000 (08:44 +0000)]
 
lto-streamer.h (LTO_major_version): Bump to 5.
2015-06-29  Richard Biener  <rguenther@suse.de>
	* lto-streamer.h (LTO_major_version): Bump to 5.
From-SVN: r225113
Richard Biener [Mon, 29 Jun 2015 07:30:47 +0000 (07:30 +0000)]
 
re PR tree-optimization/66677 (ICE: in vect_transform_stmt, at tree-vect-stmts.c:7626)
2015-06-29  Richard Biener  <rguenther@suse.de>
	PR tree-optimization/66677
	* tree-vect-stmts.c (vect_transform_stmt): Make assert about
	STMT_VINFO_VEC_STMT clobbering less strict.
	* gcc.dg/vect/pr66677.c: New testcase.
From-SVN: r225112
GCC Administrator [Mon, 29 Jun 2015 00:16:12 +0000 (00:16 +0000)]
 
Daily bump.
From-SVN: r225111
Kugan Vivekanandarajah [Mon, 29 Jun 2015 00:15:41 +0000 (00:15 +0000)]
 
re PR tree-optimization/64130 (vrp: handle non zero constant divided by range cannot be zero.)
gcc/ChangeLog:
2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
	PR middle-end/64130
	* tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
	division, compute max and min when value ranges for dividend and
	divisor are available.
gcc/testsuite/ChangeLog:
2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
	PR middle-end/64130
	* gcc.dg/tree-ssa/pr64130.c: New test.
From-SVN: r225108
Uros Bizjak [Sun, 28 Jun 2015 21:28:07 +0000 (23:28 +0200)]
 
* Add forgotten ChangeLog entry.
From-SVN: r225107
Chung-Lin Tang [Sun, 28 Jun 2015 20:46:01 +0000 (20:46 +0000)]
 
regrename.h (regrename_do_replace): Change to return bool.
2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
	    Sandra Loosemore <sandra@codesourcery.com>
	gcc/
	* regrename.h (regrename_do_replace): Change to return bool.
	* regrename.c (rename_chains): Check return value of
	regname_do_replace.
	(regrename_do_replace): Re-validate the modified insns and
	return bool status.
	* config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
	Update to match rename_chains changes.
	* config/c6x/c6x.c (try_rename_operands): Assert that
	regrename_do_replace returns true.
Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
From-SVN: r225106
Uros Bizjak [Sun, 28 Jun 2015 19:38:56 +0000 (21:38 +0200)]
 
i386.md (<mode>_ldx): Do not zero-extend non-Pmode operand 2 here.
	* config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
	operand 2 here.  Use copy_addr_to_reg to copy non-index
	register operand 2 to a temporary.
	(<mode>_stx): Ditto for operand 1.
	(*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
	* config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
	(ix86_store_bounds): Ditto.
From-SVN: r225105
GCC Administrator [Sun, 28 Jun 2015 00:16:12 +0000 (00:16 +0000)]
 
Daily bump.
From-SVN: r225103
Patrick Palka [Sat, 27 Jun 2015 18:43:11 +0000 (18:43 +0000)]
 
Make debug_tree() print the length of a TREE_VEC
gcc/ChangeLog:
	* print-tree.c (print_node) [TREE_VEC]: Print its length.
From-SVN: r225100
Marek Polacek [Sat, 27 Jun 2015 10:40:21 +0000 (10:40 +0000)]
 
call.c: Use VECTOR_TYPE_P.
	* call.c: Use VECTOR_TYPE_P.
	* constexpr.c: Likewise.
	* cvt.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* init.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.
From-SVN: r225099
Marek Polacek [Sat, 27 Jun 2015 10:39:31 +0000 (10:39 +0000)]
 
call.c (set_up_extended_ref_temp): Use VAR_P.
	* call.c (set_up_extended_ref_temp): Use VAR_P.
	* class.c: Use VAR_P throughout.
	* constexpr.c (cxx_eval_constant_expression): Use VAR_P.
	* cp-array-notation.c (make_triplet_val_inv): Likewise.
	* decl.c: Use VAR_OR_FUNCTION_DECL_P or VAR_P
	throughout.
	* decl2.c: Likewise.
	* error.c (dump_decl): Use VAR_P.
	* mangle.c (decl_implicit_alias_p): Likewise.
	* parser.c: Use VAR_P throughout.
	* pt.c: Likewise.
	* semantics.c: Likewise.
	* vtable-class-hierarchy.c: Likewise.
	* tree.c (handle_abi_tag_attribute): Use VAR_OR_FUNCTION_DECL_P.
From-SVN: r225098
Andreas Schwab [Sat, 27 Jun 2015 08:40:34 +0000 (08:40 +0000)]
 
* pt.c (check_unstripped_args): Mark parameter as unused.
From-SVN: r225095
GCC Administrator [Sat, 27 Jun 2015 00:16:11 +0000 (00:16 +0000)]
 
Daily bump.
From-SVN: r225093
Andrew MacLeod [Fri, 26 Jun 2015 23:30:37 +0000 (23:30 +0000)]
 
gimple.c (gimple_call_set_fndecl): Remove.
2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
	* gimple.c (gimple_call_set_fndecl): Remove.
	* gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
	build1_loc directly instead of build_fold_addr_expr_loc.
From-SVN: r225090
Marek Polacek [Fri, 26 Jun 2015 22:35:29 +0000 (22:35 +0000)]
 
c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P or VECTOR_INTEGER_TYPE_P throughout.
	* c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
	or VECTOR_INTEGER_TYPE_P throughout.
	* c-gimplify.c: Likewise.
	* c-typeck.c: Use VECTOR_TYPE_P throughout.
From-SVN: r225089
Jason Merrill [Fri, 26 Jun 2015 21:31:13 +0000 (17:31 -0400)]
 
re PR c++/66216 (Defaulted Operators and constructors not working with aligned attribute)
	PR c++/66216
	* class.c (finish_struct): Call fixup_attribute_variants.
From-SVN: r225087
Jason Merrill [Fri, 26 Jun 2015 21:31:08 +0000 (17:31 -0400)]
 
re PR c++/66684 (ICE in merge_exception_specifiers, at cp/typeck2.c:2114)
	PR c++/66684
	* typeck2.c (merge_exception_specifiers): Allow different
	noexcept-specifiers if we've had errors.
From-SVN: r225086
Jason Merrill [Fri, 26 Jun 2015 20:33:46 +0000 (16:33 -0400)]
 
re PR c++/66255 (ice in retrieve_specialization)
	PR c++/66255
	* pt.c (check_unstripped_args): Split out from...
	(retrieve_specialization): ...here.  Allow typedefs in the type of
	a non-type argument.
From-SVN: r225084
Jason Merrill [Fri, 26 Jun 2015 20:33:41 +0000 (16:33 -0400)]
 
re PR c++/66067 (tree check ICE: accessed elt 1 of tree_vec with 0 elts in write_template_args, at cp/mangle.c:2574)
	PR c++/66067
	* mangle.c (write_nested_name): Limit TYPENAME_TYPE handling to
	TYPE_DECLs.
	* mangle.c (write_template_args): Handle 0 length TREE_VEC.
From-SVN: r225083
Jason Merrill [Fri, 26 Jun 2015 20:33:35 +0000 (16:33 -0400)]
 
re PR c++/66654 (ice in digest_init_r, at cp/typeck2.c:1103)
	PR c++/66654
	* typeck2.c (digest_init_r): Only expect reshaping if the class is
	aggregate.
From-SVN: r225082
Jonathan Wakely [Fri, 26 Jun 2015 20:10:24 +0000 (21:10 +0100)]
 
Implement N4258 (Cleaning-up noexcept in the Library rev 3)
	* doc/xml/manual/intro.xml: Document LWG 2108 status.
	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
	Define.
	* include/bits/allocator.h (allocator::is_always_equal): Likewise.
	* include/bits/forward_list.h
	(forward_list::operator=(forward_list&&)): Use __bool_constant.
	(forward_list::swap(forward_list&)): Add noexcept.
	* include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
	Likewise.
	(_Hashtable::swap(_Hashtable&)): Likewise.
	* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
	Use _Alloc_traits::is_always_equal.
	(deque::operator=(deque&&)): Likewise.
	(deque::_M_move_assign1(deque&&, false_type)): Add comment and use
	__bool_constant.
	(swap(deque&, deque&)): Add noexcept.
	* include/bits/stl_list.h (list::operator=(list&&)): Use
	__bool_constant.
	(swap(list&, list&)): Add noexcept.
	* include/bits/stl_map.h (map::swap(map&)): Include _Compare in
	noexcept.
	(swap(map&, map&)): Add noexcept.
	* include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
	_Compare in noexcept.
	(swap(multimap&, multimap&)): Add noexcept.
	* include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
	_Compare in noexcept.
	(swap(multiset&, multiset&)): Add noexcept.
	* include/bits/stl_set.h (set::swap(set&)): Include _Compare in
	noexcept.
	(swap(set&, set&)): Add noexcept.
	* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
	_Compare in noexcept.
	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
	is_always_equal.
	* include/bits/stl_vector.h (vector::operator=(vector&&)): Use
	__bool_constant.
	(swap(vector&, vector&)): Add noexcept.
	* include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
	swap(unordered_multimap& unordered_multimap&)): Add noexcept.
	* include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
	swap(unordered_multiset& unordered_multiset&)): Add noexcept.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal):
	Remove.
	(__alloc_traits::_S_always_equal()): Use is_always_equal instead of
	__allocator_always_compares_equal.
	* include/ext/array_allocator.h (array_allocator::is_always_equal):
	Define.
	* include/std/scoped_allocator (__any_of, __propagate_on_copy,
	__propagate_on_move, __propagate_on_swap): Remove.
	(scoped_allocator_adaptor::propagate_on_container_copy_assignment,
	scoped_allocator_adaptor::propagate_on_container_move_assignment,
	scoped_allocator_adaptor::propagate_on_container_swap): Define with
	__and_ instead of __any_of.
	(scoped_allocator_adaptor::is_always_equal): Define.
	* testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
	* testsuite/20_util/scoped_allocator/propagation.cc: Make traits
	derive from true_type or false_type.
	* testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
	is_always_equal member and remove the trait specialization.
	* testsuite/23_containers/vector/52591.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
From-SVN: r225081
Marek Polacek [Fri, 26 Jun 2015 19:55:12 +0000 (19:55 +0000)]
 
array-notation-common.c (find_rank): Use INDIRECT_REF_P.
	* array-notation-common.c (find_rank): Use INDIRECT_REF_P.
	* c-common.c (c_fully_fold_internal): Likewise.
	(c_alignof_expr): Likewise.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
	* c-ubsan.c (ubsan_instrument_bounds): Likewise.
	* cilk.c (create_parm_list): Likewise.
	* c-array-notation.c (fix_builtin_array_notation_fn): Use
	INDIRECT_REF_P.
	* c-typeck.c (array_to_pointer_conversion): Likewise.
	(build_unary_op): Likewise.
	(c_finish_return): Likewise.
From-SVN: r225080
Jonathan Wakely [Fri, 26 Jun 2015 17:26:38 +0000 (18:26 +0100)]
 
stl_bvector.h (vector<bool>::vector()): Add noexcept.
	* include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
	* include/bits/stl_map.h (map::map()): Likewise.
	* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
	* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
	* include/bits/stl_set.h (set::set()): Likewise.
From-SVN: r225024
Richard Sandiford [Fri, 26 Jun 2015 16:50:19 +0000 (16:50 +0000)]
 
hash-map.h (hash_map::traverse): Use the definition of the Key typedef rather than the typedef itself.
gcc/
	* hash-map.h (hash_map::traverse): Use the definition of the
	Key typedef rather than the typedef itself.
From-SVN: r225021
Martin Jambor [Fri, 26 Jun 2015 14:59:11 +0000 (16:59 +0200)]
 
Fix PR 66301 - check for dump_file in eliminate_dom_walker::before_dom_children
2015-06-26  Martin Jambor  <mjambor@suse.cz>
	PR debug/66301
	* tree-ssa-pre.c (before_dom_children): Check that dump_file is not
	NULL instead of calling dump_enabled_p.
From-SVN: r225019
James Greenhalgh [Fri, 26 Jun 2015 14:04:12 +0000 (14:04 +0000)]
 
[Patch AArch64 4/4] Add -moverride tuning command, and wire it up for
 control of fusion and fma-steering
gcc/
	* config/aarch64/aarch64.opt: (override): New.
	* doc/invoke.texi (override): Document.
	* config/aarch64/aarch64.c (aarch64_flag_desc): New
	(aarch64_fusible_pairs): Likewise.
	(aarch64_tuning_flags): Likewise.
	(aarch64_tuning_override_function): Likewise.
	(aarch64_tuning_override_functions): Likewise.
	(aarch64_parse_one_option_token): Likewise.
	(aarch64_parse_boolean_options): Likewise.
	(aarch64_parse_fuse_string): Likewise.
	(aarch64_parse_tune_string): Likewise.
	(aarch64_parse_one_override_token): Likewise.
	(aarch64_parse_override_string): Likewise.
	(aarch64_override_options): Parse the -override string if it
	is present.
From-SVN: r225018
Jiong Wang [Fri, 26 Jun 2015 14:00:56 +0000 (14:00 +0000)]
 
[AArch64][2/2] Implement -fpic for -mcmodel=small
2015-06-26  Jiong Wang  <jiong.wang@arm.com>
gcc/
  * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
  SYMBOL_SMALL_GOT_28K.
  * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
  relocation modifiers.
  (unspec): New enum "UNSPEC_GOTMALLPIC28K.
  (ldr_got_small_28k_<mode>): New.
  (ldr_got_small_28k_sidi): New.
  * config/aarch64/iterators.md (got_modifier): New mode iterator.
  * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
  * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
  SYMBOL_SMALL_GOT_28K.
  (aarch64_rtx_costs): Add costs for new instruction sequences.
  (initialize_aarch64_code_model): Initialize new model.
  (aarch64_classify_symbol): Recognize new model and new symbol classification.
  (aarch64_asm_preferred_eh_data_format): Support new model.
  (aarch64_load_symref_appropriately): Generate new instruction
  sequences for -fpic.
  (TARGET_USE_PSEUDO_PIC_REG): New definition.
  (aarch64_use_pseudo_pic_reg): New function.
gcc/testsuite/
  * gcc.target/aarch64/pic-small.c: New testcase.
From-SVN: r225017
James Greenhalgh [Fri, 26 Jun 2015 13:58:29 +0000 (13:58 +0000)]
 
[Patch AArch64 3/4] De-const-ify struct tune_params
gcc/
	* config/aarch64/aarch64-protos.h (tune_params): Remove
	const from members.
	(aarch64_tune_params): Remove const, change to no longer be
	a pointer.
	* config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
	change to no longer be a pointer, initialize to generic_tunings.
	(aarch64_min_divisions_for_recip_mul): Change dereference of
	aarch64_tune_params to member access.
	(aarch64_reassociation_width): Likewise.
	(aarch64_rtx_mult_cost): Likewise.
	(aarch64_address_cost): Likewise.
	(aarch64_branch_cost): Likewise.
	(aarch64_rtx_costs): Likewise.
	(aarch64_register_move_cost): Likewise.
	(aarch64_memory_move_cost): Likewise.
	(aarch64_sched_issue_rate): Likewise.
	(aarch64_builtin_vectorization_cost): Likewise.
	(aarch64_override_options): Take a copy of the selected tuning
	struct in to aarch64_tune_params, rather than just setting
	a pointer, change dereferences of aarch64_tune_params to member
	accesses.
	(aarch64_override_options_after_change): Change dereferences of
	aarch64_tune_params to member access.
	(aarch64_macro_fusion_p): Likewise.
	(aarch_macro_fusion_pair_p): Likewise.
	* config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
From-SVN: r225016
James Greenhalgh [Fri, 26 Jun 2015 13:57:16 +0000 (13:57 +0000)]
 
[Patch AArch64 2/4] Control the FMA steering pass in tuning  structures rather than as core property
gcc/
	* config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
	(aarch64_tune_flags): Likewise.
	(AARCH64_TUNE_FMA_STEERING): Likewise.
	* config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
	to AARCH64_FL_USE_FMA_STEERING_PASS.
	(cortex-a57.cortex-a53): Likewise.
	(cortex-a72): Use cortexa72_tunings.
	(cortex-a72.cortex-a53): Likewise.
	(exynos-m1): Likewise.
	* config/aarch64/aarch64-protos.h (tune_params): Add
	a field: extra_tuning_flags.
	* config/aarch64/aarch64-tuning-flags.def: New.
	* config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
	(aarch64_extra_tuning_flags): Likewise.
	(aarch64_tune_params): Declare here.
	* config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.
	(cortexa72_tunings): New.
	* config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
	 (gate): Check against aarch64_tune_params.
	* config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
	aarch64-protos.h.
From-SVN: r225015
James Greenhalgh [Fri, 26 Jun 2015 13:54:53 +0000 (13:54 +0000)]
 
[Patch AArch64 1/4] Define candidates for instruction fusion in a .def file
gcc/
	* config/aarch64/aarch64-fusion-pairs.def: New.
	* config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
	* config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
	aarch64_fusion_pairs.
	(AARCH64_FUSE_MOV_MOVK): Likewise.
	(AARCH64_FUSE_ADRP_ADD): Likewise.
	(AARCH64_FUSE_MOVK_MOVK): Likewise.
	(AARCH64_FUSE_ADRP_LDR): Likewise.
	(AARCH64_FUSE_CMP_BRANCH): Likewise.
From-SVN: r225014
Jiong Wang [Fri, 26 Jun 2015 13:41:24 +0000 (13:41 +0000)]
 
[AArch64][1/2] Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G
2015-06-26  Jiong Wang  <jiong.wang@arm.com>
	* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
	SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
	(aarch64_expand_mov_immediate): Ditto.
	(aarch64_print_operand): Ditto.
	(aarch64_classify_symbol): Ditto.
From-SVN: r225013
Nathan Sidwell [Fri, 26 Jun 2015 12:33:33 +0000 (12:33 +0000)]
 
* config/nvptx/nvptx.md (call_operation): Remove unused variables.
From-SVN: r225009
Bin Cheng [Fri, 26 Jun 2015 11:12:20 +0000 (11:12 +0000)]
 
re PR bootstrap/66638 (profiledbootstrap failure on x86-64 with LTO)
	PR bootstrap/66638
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
	assertion failed.  Remove assertion itself.
From-SVN: r225008
Richard Biener [Fri, 26 Jun 2015 10:59:27 +0000 (10:59 +0000)]
 
fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B and -A CMP CST -> A CMP -CST which is redundant...
2015-06-26  Richard Biener  <rguenther@suse.de>
	* fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
	and -A CMP CST -> A CMP -CST which is redundant with a pattern
	in match.pd.
	Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
	(X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
	(X ^ C1) op C2 -> X op (C1 ^ C2) to ...
	* match.pd: ... patterns here.
	* gcc.dg/tree-ssa/forwprop-25.c: Adjust.
From-SVN: r225007
Eric Botcazou [Fri, 26 Jun 2015 10:27:01 +0000 (10:27 +0000)]
 
Minor comment tweak.
From-SVN: r225005
Eric Botcazou [Fri, 26 Jun 2015 10:25:04 +0000 (10:25 +0000)]
 
trans.c (Handled_Sequence_Of_Statements_to_gnu): When not optimizing the CFG...
	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): When
	not optimizing the CFG, clear the DECL_DECLARED_INLINE_P flag on the
	at-end procedures.
From-SVN: r225004
Eric Botcazou [Fri, 26 Jun 2015 10:21:54 +0000 (10:21 +0000)]
 
gigi.h (note_types_used_by_globals): Delete.
	* gcc-interface/gigi.h (note_types_used_by_globals): Delete.
	(gnat_write_global_declarations): New prototype.
	* gcc-interface/utils.c (type_decls): Rename back to...
	(global_decls): ...this.
	(gnat_pushdecls): Revert previous change.
	(create_var_decl): Do not output global variables.
	(note_types_used_by_globals): Rename back to...
	(gnat_write_global_declarations): ...this.  Output variables on the
	global_decls vector.
	* gcc-interface/misc.c (gnat_parse_file): Adjust to above renaming.
From-SVN: r225003
Eric Botcazou [Fri, 26 Jun 2015 10:17:00 +0000 (10:17 +0000)]
 
gigi.h (create_var_decl_1): Rename into...
	* gcc-interface/gigi.h (create_var_decl_1): Rename into...
	(create_var_decl): ...this.  Add default value for last parameter.
	(create_type_stub_decl): Adjust.
	(create_type_decl): Likewise.
	(create_field_decl): Likewise.
	(create_param_decl): Likewise.
	(create_label_decl): Likewise.
	(create_subprog_decl): Likewise.
	* gcc-interface/utils.c (create_var_decl_1): Rename into...
	(create_var_decl): ...this.  Rename var_name into name and var_init
	into init, move const_decl_allowed_p last and adjust accordingly.
	(create_type_stub_decl): Rename type_name into name and adjust.
	(create_type_decl): Likewise.
	(create_field_decl): Likewise for field_name and field_type.
	(create_param_decl): Likewise for param_name and param_type.
	(create_label_decl): Likewise for label_name.
	(create_subprog_decl): Likewise for subprog_name and subprog_type.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust couple of calls
	to create_var_decl_1.
From-SVN: r225002
Marek Polacek [Fri, 26 Jun 2015 10:13:49 +0000 (10:13 +0000)]
 
match.pd ((x | y) & ~(x & y) -> x ^ y, (x | y) & (~x ^ y) -> x & y): New patterns.
	* match.pd ((x | y) & ~(x & y) -> x ^ y,
	(x | y) & (~x ^ y) -> x & y): New patterns.
	* gcc.dg/fold-and-1.c: New test.
	* gcc.dg/fold-and-2.c: New test.
From-SVN: r225001
Richard Sandiford [Fri, 26 Jun 2015 10:06:56 +0000 (10:06 +0000)]
 
rtl.h (emit): Add an optional boolean parameter to control whether barriers are emitted.
gcc/
	* rtl.h (emit): Add an optional boolean parameter to control
	whether barriers are emitted.
	* emit-rtl.c (emit): Likewise.
	* gensupport.c (get_emit_function): Return null rather than "emit".
	* genemit.c (gen_emit_seq): Handle the null return value.
	Don't emit barriers after the final instruction in the sequence.
	* gentarget-def.c (main): Don't emit barriers after the instruction.
From-SVN: r225000
Marek Polacek [Fri, 26 Jun 2015 10:03:35 +0000 (10:03 +0000)]
 
cp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.
	* cp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.
	* cp-ubsan.c (cp_ubsan_check_member_access_r): Likewise.
From-SVN: r224999
Eric Botcazou [Fri, 26 Jun 2015 10:03:22 +0000 (10:03 +0000)]
 
trans.c (loop_info_d): Add low_bound...
	* gcc-interface/trans.c (loop_info_d): Add low_bound, high_bound,
	artificial, has_checks and warned_aggressive_loop_optimizations.
	(gigi): Set warn_aggressive_loop_optimizations to 0.
	(inside_loop_p): New inline predicate.
	(push_range_check_info): Rename into...
	(find_loop_for): ...this and do not push range_check_info_d object.
	(Loop_Statement_to_gnu): Set artificial, low_bound and high_bound
	fields of gnu_loop_info.  Adjust detection of checks enabled by
	-funswitch-loops and adds one for -faggressive-loop-optimizations.
	(gnat_to_gnu) <N_Indexed_Component>: If aggressive loop optimizations
	are enabled, warn for loops overrunning an array of size 1 not at the
	end of a record.
From-SVN: r224998
Ramana Radhakrishnan [Fri, 26 Jun 2015 09:08:03 +0000 (09:08 +0000)]
 
[Patch ARM] Fix thinko in use of TARGET_UNIFIED_ASM
While paving the way to turn on unified syntax in ARM state I came
across this use of TARGET_UNIFIED_ASM that really doesn't make sense.
The idea that pop has different encoding sizes is a property of the
Thumb instruction set rather than a property of which form of unified
syntax was used. I still have quite a large patch set for the unified
asm switch but it seems useful to get this one out of the way to catch
any other issues.
Tested with an appropriate set of multilibs on arm-none-eabi /
applied. Bootstrapped on armhf.
Applied to trunk.
2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	* config/arm/arm.c (arm_output_multireg_pop): Fix use of
	TARGET_UNIFIED_ASM.
From-SVN: r224997
Marek Polacek [Fri, 26 Jun 2015 08:07:23 +0000 (08:07 +0000)]
 
* c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.
From-SVN: r224996
Richard Biener [Fri, 26 Jun 2015 07:50:12 +0000 (07:50 +0000)]
 
match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
2015-06-26  Richard Biener  <rguenther@suse.de>
	* match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
	* gfortran.dg/reassoc_3.f90: Adjust.
2015-06-26  Richard Biener  <rguenther@suse.de>
	* match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
	irrespective on whether the inner operation has a single use
	of both off are constant.
From-SVN: r224995
Uros Bizjak [Fri, 26 Jun 2015 07:45:07 +0000 (09:45 +0200)]
 
re PR target/66412 (ICE on valid code at -O2 and -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5748)
	PR target/66412
	* config/i386/i386.md (various splitters): Use shallow_copy_rtx
	before doing PUT_MODE or PUT_CODE on operands to avoid
	in-place RTX modification.
testsuite/ChangeLog:
	PR target/66412
	* gcc.target/i386/pr66412.c: New test.
Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org>
From-SVN: r224994