Commit Graph

140939 Commits

Author SHA1 Message Date
Alexandre Oliva f11a7b6d57 revert to assign_parms assignments using default defs
Revert the fragile and complicated changes to assign_parms designed to
enable it to use RTL assigments chosen by cfgexpand, and instead have
cfgexpand use the RTL assignments by assign_parms, keying them off of
the default defs that are now necessarily introduced for each parm and
result.  The possible lack of a default def was already a problem, and
the fallbacks in place were not enough, as shown by PR67312.  We now
have checking asserts in set_rtl that verify that we're assigning to
each var a piece of RTL that matches the expectations set forth by
use_register_for_decl.

for  gcc/ChangeLog

	PR rtl-optimization/64164
	PR tree-optimization/67312
	PR middle-end/67340
	PR middle-end/67490
	PR bootstrap/67597
	* cfgexpand.c (parm_in_stack_slot_p): Remove.
	(ssa_default_def_partition): Remove.
	(get_rtl_for_parm_ssa_default_def): Remove.
	(set_rtl): Check that RTL assignments match expectations.
	Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
	default def location for params and results.  Record SSA names
	or types in REG and MEM attrs, respectively.
	(set_parm_rtl): New.
	(expand_one_ssa_partition): Drop logic that assigned MEMs with
	unassigned addresses.
	(adjust_one_expanded_partition_var): Don't accept NULL RTL on
	deferred stack alloc vars.
	(expand_used_vars): Skip partitions holding parm default defs.
	Move adjust_one_expanded_partition_var loop...
	(pass_expand::execute): ... here.  Drop redundant assert.
	Adjust comments before the final loop over all ssa names.
	Require assigned rtl of parms and results to match exactly.
	Reset its attributes to match them, not any other variables in
	the same partition.
	(expand_debug_expr): Use entry value for PARM's default defs
	only iff they have zero nondebug uses.
	* cfgexpand.h (parm_in_stack_slot_p): Remove.
	(get_rtl_for_parm_ssa_default_def): Remove.
	(set_parm_rtl): Declare.
	* doc/invoke.texi: Improve wording.
	* explow.c (promote_decl_mode): Fix promote_function_mode for
	result decls not by reference.
	(promote_ssa_mode): Disregard BLKmode from promote_decl, and
	bypass TYPE_MODE to get the actual vector mode.
	* function.c: Include tree-dfa.h.  Revert 2015-08-14's and
	2015-08-19's changes as follows.  Drop include of
	basic-block.h and df.h.
	(rtl_for_parm): Remove.
	(maybe_reset_rtl_for_parm): Remove.
	(parm_in_unassigned_mem_p): Remove.
	(use_register_for_decl): Add logic for RESULT_DECLs matching
	assign_parms' behavior.
	(split_complex_args): Revert.
	(assign_parms_augmented_arg_list): Revert.  Add comment
	referencing the logic above.
	(assign_parm_adjust_stack_rtl): Revert.
	(assign_parm_setup_block): Revert.  Use set_parm_rtl instead
	of SET_DECL_RTL.  Set up a REG if the parm demands so.
	(assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
	calls into a single set_parm_rtl.  Set up a temporary RTL
	temporarily for expand_assignment.
	(assign_parm_setup_stack): Revert.  Use set_parm_rtl.
	(assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
	(assign_bounds): Revert.
	(assign_parms): Revert.  Use set_parm_rtl.
	(allocate_struct_function): Relayout result and parms of
	non-abstruct functions.
	(expand_function_start): Revert.  Use set_parm_rtl.  If the
	result is not a hard reg, create a pseudo from the promoted
	mode of the default def.  Promote static chain mode.
	* tree-outof-ssa.c (remove_ssa_form): Drop unused
	partition_has_default_def.  Set up
	partitions_for_parm_default_defs.
	(finish_out_of_ssa): Remove partition_has_default_def.
	Release partitions_for_parm_default_defs.
	* tree-outof-ssa.h (struct ssaexpand): Remove
	partition_has_default_def.  Add
	partitions_for_parm_default_defs.
	* tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
	stor-layout.h.
	(build_ssa_conflict_graph): Fix conflict-detection of default
	defs of even unused default defs of params and results.
	(for_all_parms): New.
	(create_default_def): New.
	(register_default_def): New.
	(coalesce_with_default): New.
	(create_outofssa_var_map): Create default defs for all parms
	and results, and register their partitions.  Add GIMPLE_RETURN
	operands as coalesce candidates with results.  Add default
	defs of each parm or result as coalesce candidates with its
	other defs.  Mark each result def, and each default def of
	parms, as used_in_copy.
	(gimple_can_coalesce_p): Call it.  Call use_register_for_decl
	with the ssa names, even anonymous ones.  Drop
	parm_in_stack_slot_p calls.  Require same signedness and
	alignment.
	(coalesce_ssa_name): Add coalesce candidates for all defs of
	each parm and result, even unused ones.
	(parm_default_def_partition_arg): New type.
	(set_parm_default_def_partition): New.
	(get_parm_default_def_partitions): New.
	* tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
	* tree-ssa-live.c (partition_view_init): Regard unused defs of
	parms and results as used.
	(verify_live_on_entry): Don't error out just because they're
	not live.

for  gcc/testsuite/ChangeLog

	PR rtl-optimization/64164
	PR tree-optimization/67312
	* gcc.dg/pr67312.c: New.  From Zdenek Sojka.
	* gcc.target/i386/stackalign/return-4.c: Add -O.

From-SVN: r228175
2015-09-27 09:02:00 +00:00
David Edelsohn edfc19ab2b * g++.dg/debug/dwarf2/pr44641.C: Add one to expected line numbers.
From-SVN: r228174
2015-09-26 21:44:59 -04:00
GCC Administrator 2760dd116a Daily bump.
From-SVN: r228173
2015-09-27 00:16:22 +00:00
Mikael Morin 33c330b13a Fix missing deep copy when assigning a DT constructor to an array
This adds the missing deep copy when assiging a constructor of a derived
type with allocatable components to an array.

The check for constantness is removed so that the deep_copy argument passed
to gfc_trans_scalar_assign is set to true.

	PR fortran/67721
gcc/fortran/
	* trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness
	condition guarding deep copy.
gcc/testsuite/
	* gfortran.dg/alloc_comp_deep_copy_3.f03: New.

From-SVN: r228170
2015-09-26 20:34:39 +00:00
Paul Thomas 4f283c42c7 re PR fortran/67567 (resolve.c: gfc_error called with iface->module == NULL)
2013-09-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/67567
	* resolve.c (resolve_fl_procedure): For module procedures, take
	the parent module name and the submodule name from the name of
	the namespace.

From-SVN: r228169
2015-09-26 17:52:24 +00:00
David Edelsohn 136429e2b7 pr64935-1.c: XFAIL on AIX.
* gcc.dg/pr64935-1.c: XFAIL on AIX.
        * gcc.dg/pr64935-2.c: XFAIL on AIX.
        * gcc.dg/debug/dwarf2/dwarf2-macro2.c: XFAIL Start new file on AIX.
        * gcc.dg/debug/dwarf2/dwarf2-macro2.c: XFAIL At line number on AIX.
        * gcc.dg/debug/dwarf2/global-used-types.c: XFAIL ascii on AIX.
        * gcc.dg/debug/dwarf2/noreturn-function-keyword.c: XFAIL
        DW_AT_noreturn on AIX.
        * gcc.dg/debug/dwarf2/noreturn-function-attribute.c: XFAIL
        DW_AT_noreturn on AIX.
        * gcc.dg/debug/dwarf2/lang-c89.c: XFAIL DW_AT_language on AIX.
        * gcc.dg/debug/dwarf2/stacked-qualified-types-3.c: XFAIL DW_TAG on AIX.
        * g++.dg/debug/dwarf2/deleted-member-function.C: XFAIL
        DW_AT_GNU_deleted on AIX.
        * g++.dg/debug/dwarf2/noreturn-function.C: XFAIL DW_AT_noreturn on AIX.
        * g++.dg/debug/dwarf2/template-params-6.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/dwarf4-nested.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/pubnames-2.C: Skip on AIX.
        * g++.dg/debug/dwarf2/pr44641.C: Skip on AIX.
        * g++.dg/debug/dwarf2/pr46527.C: XFAIL on AIX.
        * g++.dg/debug/dwarf2/imported-decl-2.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/namespace-1.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/global-used-types-1.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/lambda1.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/pubnames-3.C: Skip on AIX.
        * g++.dg/debug/dwarf2/pr61433.C: XFAIL on AIX.
        * g++.dg/debug/dwarf2/nested-4.C: XFAIL on AIX.
        * g++.dg/debug/dwarf2/template-func-params-6.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/lineno-simple1.C: XFAIL on AIX.

From-SVN: r228168
2015-09-26 11:34:58 -04:00
David Edelsohn 51fbbb92b4 dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
* dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
        (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
        (output_fde): Don't output length for debug_frame on AIX.
        (output_call_frame_info): Don't output length for debug_frame on AIX.
        (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
        HAVE_XCOFF_DWARF_EXTRAS.
        (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
        HAVE_XCOFF_DWARF_EXTRAS.
        (output_compilation_unit_header): Don't output length on AIX.
        (output_pubnames): Don't output length on AIX.
        (output_aranges): Delete argument. Compute length locally. Don't
        output length on AIX.
        (output_line_info): Don't output length on AIX.
        (dwarf2out_finish): Don't compute aranges_length.
        * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
        (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
        * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
        symbol decoration for AIX.
        (rs6000_xcoff_debug_unwind_info): New.
        (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
        for SECTION_DEBUG.
        (rs6000_xcoff_declare_function_name): Emit different
        .function pseudo-op when DWARF2_DEBUG. Don't call
        xcoffout_declare_function for DWARF2_DEBUG.
        * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
        Redefine.
        * config/rs6000/aix71.h: New.
        * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
        locations support.
        * configure: Regenerate.
        * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
        DWARF support.

From-SVN: r228167
2015-09-26 11:31:35 -04:00
Jeff Law c419f71c82 [PATCH] Fix undefined behaviour in arc port
* config/arc/arc.c (arc_output_addsi): Fix left shift undefined
	behaviour.
	* config/arc/constraints.md (Cca, C2a): Fix left shift undefined
	behaviour.

From-SVN: r228166
2015-09-26 01:48:10 -06:00
Jeff Law a0a65802bf [PATCH] Fix undefined behaviour in SH port
[PATCH] Fix undefined behaviour in SH port
	* config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
	behaviour

From-SVN: r228165
2015-09-26 01:42:32 -06:00
Jeff Law ddec87d98d [PATCH] Fix undefined behaviour in mips port
[PATCH] Fix undefined behaviour in mips port
	* config/mips/mips.c (mips_compute_frame_info): Fix left shift
	undefined behaviour.

From-SVN: r228164
2015-09-26 01:38:29 -06:00
Jeff Law c4362b608b [PATCH] Fix undefined behaviour in cris port
[PATCH] Fix undefined behaviour in cris port
	* config/cris/cris.md (asrandb): Fix left shift undefined
	behaviour.
	(asrandw): Likewise.

From-SVN: r228163
2015-09-26 01:33:05 -06:00
GCC Administrator 01a8b92d54 Daily bump.
From-SVN: r228161
2015-09-26 00:16:12 +00:00
Steven G. Kargl 2d2de608f8 re PR fortran/67614 (ICE on using arithmetic if with null)
2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67614
	* resolve.c (gfc_resolve_code): Prevent ICE for invalid EXPR_NULL.

2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67614
	* gfortran.dg/pr67614.f90: New test.

From-SVN: r228156
2015-09-25 22:30:26 +00:00
Steven G. Kargl b15e7bddd6 re PR fortran/67525 (ICE on select type with improper selector)
2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67525
	* parse.c (match_deferred_characteristics): Remove an assert, which
	allows an invalid SELECT TYPE selector to be detected.

 
2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67525
	* gfortran.dg/pr67525.f90: New test.

From-SVN: r228155
2015-09-25 22:28:04 +00:00
Vladimir Makarov f7697f9cd2 Fix type in the changelog entry,
From-SVN: r228154
2015-09-25 21:11:28 +00:00
Vladimir Makarov c9561e7bea re PR target/61578 (Code size increase for ARM thumb compared to 4.8.x when compiling with -Os)
2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61578
	* lra-constarints.c (match_reload): Check presence of the input pseudo
	in the output pseudo.

From-SVN: r228153
2015-09-25 21:06:08 +00:00
Mikael Morin d24a1f53db Add PR fortran/55603 working test
gcc/testsuite/
	PR fortran/55603
	* gfortran.dg/allocatable_function_9.f90: New.

From-SVN: r228151
2015-09-25 20:28:33 +00:00
Tobias Burnus 9f85af2617 invoke.texi (-fsanitize): Minor wording tweak.
2015-09-25  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fsanitize): Minor wording tweak.

From-SVN: r228148
2015-09-25 20:59:58 +02:00
Tobias Burnus 66208ca436 invoke.texi (-fsanitize): Update URLs.
2015-09-25  Tobias Burnus  <burnus@net-b.de>

        * doc/invoke.texi (-fsanitize): Update URLs.

From-SVN: r228144
2015-09-25 20:41:07 +02:00
Joseph Myers 9e703070e5 * tr.po: Update.
From-SVN: r228138
2015-09-25 18:05:49 +01:00
Teresa Johnson bffb9e6d4b Fix old ChangeLog entry to include global variable name that was changed.
From-SVN: r228137
2015-09-25 16:55:10 +00:00
Teresa Johnson 6697104844 This patch unsets -freorder-blocks-and-partition when -fprofile-use is not specified.
This patch unsets -freorder-blocks-and-partition when -fprofile-use
is not specified. Function splitting was not actually being performed
in that case, as probably_never_executed_bb_p does not distinguish
any basic blocks as being cold vs hot when there is no profile data.
Leaving it enabled, however, causes the assembly code generator to create
(empty) cold sections and labels, leading to unnecessary size overhead.

2015-09-25  Teresa Johnson  <tejohnson@google.com>

	* opts.c (finish_options): Unset -freorder-blocks-and-partition
	if not using profile.

From-SVN: r228136
2015-09-25 16:53:40 +00:00
Ville Voutilainen 5e2f2cd584 Avoid creating dangling references in case of nested tuples
for tuple constructors that construct from other tuples.

2015-09-25  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Avoid creating dangling references in case of nested tuples
	for tuple constructors that construct from other tuples.
	* include/std/tuple (_TC::_NonNestedTuple): New.
	* include/std/tuple (tuple::_TNTC): New.
	* include/std/tuple (tuple(const tuple<_UElements...>&),
	tuple(tuple<_UElements...>&&): Use _TNTC.
	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: New.

From-SVN: r228134
2015-09-25 19:41:45 +03:00
Manuel López-Ibáñez 41d9f1e039 PR pretty-print/67567 do not pass NULL as a string
Fortran passes NULL where a non-null string is expected by the pretty-printer,
which causes a sanitizer warning. This could have been found earlier by using
gcc_checking_assert. Even if the assertion is false, the result is just an
incomplete diagnostic, thus it seems more user-friendly to assert only when
checking. I do not have any idea how to properly fix the Fortran bug, thus this
patch simply works-around it.

gcc/fortran/ChangeLog:

2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR pretty-print/67567
	* resolve.c (resolve_fl_procedure): Work-around when iface->module
	== NULL.

gcc/ChangeLog:

2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR pretty-print/67567
	* pretty-print.c (pp_string): Add gcc_checking_assert.
	* pretty-print.h (output_buffer_append_r): Likewise.

From-SVN: r228131
2015-09-25 14:24:11 +00:00
Oleg Endo f700c7caef re PR target/67675 ([SH] Improve __builtin_strcmp alignment test)
gcc/
	PR target/67675
	* config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
	addr2 individually.  Don't emit logical or insn if one is known to
	be aligned approriately.
	(sh_expand_cmpnstr): Likewise.

gcc/testsuite/
	PR target/67675
	* gcc.target/sh/pr67675.c: New.

From-SVN: r228118
2015-09-25 13:09:04 +00:00
Richard Sandiford e6cf8d65b5 [AArch64] Force __builtin_aarch64_fp[sc]r argument into a REG
The testcase triggered an ICE because the builtin expansion
code passed the output of expand_normal directly to the SET_FP[SC]R
generator, without forcing it into a register first.

gcc/
	* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
	__builtin_aarch64_fp[sc]r arguments into a register.

gcc/testsuite/
	* gcc.target/aarch64/fpcr_fpsr_1.c: New file.

From-SVN: r228116
2015-09-25 11:54:22 +00:00
H.J. Lu 2d6b2e2831 Rename IA MCU processor lakemount to lakemont
IA MCU processor name is lakemont, not lakemount.

gcc/

	* config.gcc (x86_archs): Replace lakemount with lakemont.
	(with_cpu): Likewise.
	(with_arch): Likewise.
	* config/i386/i386-c.c (ix86_target_macros_internal): Replace
	PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
	__tune_lakemount__ with __tune_lakemont__.
	* config/i386/i386.c (lakemount_cost): Renamed to ...
	(lakemont_cost): This.
	(m_LAKEMOUNT): Renamed to ...
	(m_LAKEMONT): This.
	(initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
	(processor_target_table): Replace "lakemount" with "lakemont".
	(processor_alias_table): Likewise.
	(ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
	PROCESSOR_LAKEMONT.
	(ix86_adjust_cost): Likewise.
	(ia32_multipass_dfa_lookahead): Likewise.
	* config/i386/i386.h (processor_type): Likewise.
	* config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
	* doc/invoke.texi: Replace lakemount with lakemont.  Replace
	Lakemount with Lakemont.

gcc/testsuite/

	* gcc.target/i386/pr66749.c (dg-options): Replace
	-mtune=lakemount with -mtune=lakemont.
	* gcc.target/i386/pr66821.c (dg-options): Likewise.
	* gcc.target/i386/pr67329.c (dg-options): Likewise.

From-SVN: r228115
2015-09-25 04:24:07 -07:00
Marek Polacek 974348eec7 c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
* c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
	(ubsan_instrument_shift): Likewise.

	* c-c++-common/ubsan/bounds-11.c: New test.
	* c-c++-common/ubsan/bounds-12.c: New test.

From-SVN: r228114
2015-09-25 11:19:11 +00:00
Marek Polacek 15dbc1a6df re PR sanitizer/64906 (-fsanitize=integer-divide-by-zero creates false -Wmaybe-uninitialized warning)
PR sanitizer/64906
	* c-ubsan.c (ubsan_instrument_division): Also pre-evaluate OP1.

	* c-c++-common/ubsan/pr64906.c: New test.

From-SVN: r228112
2015-09-25 09:50:29 +00:00
H.J. Lu 89e5941d8c Change IA MCU processor from iamcu to lakemount
The first IA MCU processor will be Lakemount.  This patch changes IA MCU
processor name from iamcu to lakemount.

gcc/

	* config.gcc (x86_archs): Replace iamcu with lakemount.
	(with_cpu): Likewise.
	(with_arch): Likewise.
	* doc/invoke.texi: Likewise.
	* config/i386/i386-c.c (ix86_target_macros_internal): Replace
	PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
	__tune_iamcu__ with __tune_lakemount__.
	* config/i386/i386.c (iamcu_cost): Renamed to ...
	(lakemount_cost): This.
	(m_IAMCU): Renamed to ...
	(m_LAKEMOUNT): This.
	(initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
	(processor_target_table): Replace "iamcu" with "lakemount".
	(processor_alias_table): Likewise.
	(ix86_issue_rate): Replace PROCESSOR_IAMCU with
	PROCESSOR_LAKEMOUNT.
	(ix86_adjust_cost): Likewise.
	(ia32_multipass_dfa_lookahead): Likewise.
	* config/i386/i386.h (processor_type): Likewise.
	* config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.

gcc/testsuite/

	* gcc.target/i386/pr66749.c (dg-options): Replace -mtune=iamcu
	with -mtune=lakemount.
	* gcc.target/i386/pr66821.c (dg-options): Likewise.
	* gcc.target/i386/pr67329.c (dg-options): Likewise.

From-SVN: r228109
2015-09-24 17:18:21 -07:00
GCC Administrator 925f700af2 Daily bump.
From-SVN: r228108
2015-09-25 00:16:11 +00:00
John David Anglin 7e7c9d40d1 pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
* config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
	* config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
	Declare.
	* config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
	(pa_expand_compare_and_swap_loop): New.
	(pa_maybe_emit_compare_and_swap_exchange_loop): New.
	* config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
	atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
	(atomic_loaddf_1, atomic_storedf_1): New insn patterns.
	(atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
	Revise.

From-SVN: r228104
2015-09-25 00:01:34 +00:00
Michael Collison 4fe017f67a re PR other/57195 (Mode attributes with specific mode iterator can not be used as mode iterators in *.md files)
2015-09-24  Michael Collison  <michael.collison@linaro.org>

	PR other/57195
	* read-md.c (read_name): Allow mode iterators inside angle
	brackets in rtl expressions.

From-SVN: r228102
2015-09-24 23:26:50 +00:00
Vladimir Makarov 86f0bef373 re PR target/61578 (Code size increase for ARM thumb compared to 4.8.x when compiling with -Os)
2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61578
	* ira-color.c (update_allocno_cost): Add parameter.
	(update_costs_from_allocno): Decrease conflict cost.  Pass the new
	parameter.

From-SVN: r228097
2015-09-24 20:40:30 +00:00
Manuel López-Ibáñez 3563212292 fdiagnostics-color=never does not disable color for some diagnostics
Actually, I was trying to reject non-warning options as argument to
-Werror=. However, the new test fails because -fdiagnostics-color=never is
always placed by the driver after the warning options when calling the compiler
proper. This patch prunes all -fdiagnostics-color from the command-line but the
last one, which is moved to the first position.

gcc/ChangeLog:

2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR driver/67640
	* opts-common.c (prune_options): Discard all -fdiagnostics-color
	but the last one, which is moved to the front to be processed
	first.
	* opts.c (enable_warning_as_error): Reject options that do not
	control warnings.

gcc/testsuite/ChangeLog:

2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR driver/67640
	* gcc.dg/Werror-13.c: New test.

From-SVN: r228094
2015-09-24 16:37:43 +00:00
Jiong Wang 2af16a7c1e [AArch64] Handle const address in aarch64_print_operand
2015-09-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.

From-SVN: r228093
2015-09-24 16:04:12 +00:00
Jiong Wang a6e0bfa7ca [AArch64] Delete aarch64_symbol_context which is not used
2015-09-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
	(aarch64_cannot_force_const_mem): Likewise.
	(aarch64_classify_address): Likewise.
	(aarch64_classify_symbolic_expression): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_symbol): Likewise.
	(aarch64_mov_operand_p): Likewise.
	* config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
	(aarch64_mov_operand): Likewise.

From-SVN: r228092
2015-09-24 16:02:08 +00:00
Jonathan Wakely 9bc5028273 Leave moved-from std::deque in a valid state
PR libstdc++/67707
	* include/bits/stl_deque.h (_Deque_base::_M_move_impl): Initialize
	empty object.
	* testsuite/23_containers/deque/allocator/move.cc: Check moved-from
	deque.

From-SVN: r228090
2015-09-24 16:46:24 +01:00
Szabolcs Nagy 4f761179ed Fix aarch64/target_attr_10 test following r227997.
gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/target_attr_10.c (foo): Use dg-message for note.

From-SVN: r228088
2015-09-24 13:41:52 +00:00
Ian Lance Taylor 055db850c6 runtime: Fix recent lfstack change on Solaris.
Reviewed-on: https://go-review.googlesource.com/14922

From-SVN: r228087
2015-09-24 13:33:20 +00:00
Segher Boessenkool f08e13f110 rs6000: Fix -mdebug=stack code for spe_gp_offset
2015-09-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (debug_stack_info): Invert the test
	for info->spe_gp_size.

From-SVN: r228086
2015-09-24 14:43:43 +02:00
Richard Biener 760e1bb7e2 re PR lto/67699 (ICE (segfault) compiling a const array with -flto)
2015-09-24  Richard Biener  <rguenther@suse.de>

	PR lto/67699
	* lto-cgraph.c (compute_ltrans_boundary): Do not stream
	abstract origins.

	* g++.dg/pr67699.C: New testcase.

From-SVN: r228084
2015-09-24 11:01:14 +00:00
Richard Earnshaw 4dfe21acc2 ARM: fp16 Fix PR 67624 - Incorrect conversion of float Infinity to __fp16
PR libgcc/67624
	libgcc:
	* config/arm/fp16.c (__gnu_f2h_internal): Handle infinity correctly.
	gcc/testsuite:
	* gcc.target/arm/fp16-inf.c: New test.

From-SVN: r228082
2015-09-24 09:40:06 +00:00
Thomas Schwinge 60dd79ca89 Additional changes to switch from gimple to gimple *
gcc/
	* tree-object-size.c (plus_stmt_object_size)
	(cond_expr_object_size): Change the formal parameters from gimple
	to gimple *.
	* tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
	* tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.

From-SVN: r228080
2015-09-24 11:27:12 +02:00
Kirill Yukhin bc6e483f76 avx512vbmi-check.h (main): Fix register name while checking for AVX-512VBMI presence.
gcc/testsuite/
	* gcc.target/i386/avx512vbmi-check.h (main): Fix register
	name while checking for AVX-512VBMI presence.

From-SVN: r228079
2015-09-24 09:03:57 +00:00
Rainer Orth df2a1cc48b Support PIE on Solaris
gcc/testsuite:
	* lib/target-supports.exp (check_effective_target_pie): Check for
	PIE support on Solaris 11.x and 12.

	libgcc:
	* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
	Add crtbeginS.o, crtendS.o to extra_parts if libgcc_cv_solaris_crts.
	* config/sol2/gmon.c: (monstartup): Don't write trailing NUL of
	messages.
	(internal_mcount): Likewise.
	* config/sol2/t-sol2 (crtp.o, crtpg.o, gmon.o): Compile with
	crt_compile, add CRTSTUFF_T_CFLAGS_S.

	gcc:
	* configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
	Check for ld -type pie on Solaris 11.x and 12.
	* configure: Regenerate.
	* config.in: Regenerate.

	* gcc.c (LD_PIE_SPEC): Allow redefinition.

	* config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
	(STARTFILE_SPEC): Use it.
	(ENDFILE_CRTEND_SPEC): Define.
	(ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
	(SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
	ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
	[HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
	(!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
	* config/i386/sol2.h (ENDFILE_SPEC): Remove.
	(ENDFILE_ARCH_SPEC): Define.
	* config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.

From-SVN: r228078
2015-09-24 09:00:22 +00:00
Rainer Orth 2d11044217 Use CRTs provided by Solaris
gcc:
	* configure.ac (gcc_cv_solaris_crts): New test.
	* configure. Regenerate.
	* config.in: Regenerate.
	* config/sol2.h (STARTFILE_SPEC): Simplify, provide
	HAVE_SOLARIS_CRTS variant.

	libgcc:
	* configure.ac (libgcc_cv_solaris_crts): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sol2/crtp.c, config/sol2/crtpg.c: New files.
	* config/gmon-sol2.c: Rename to ...
	* config/sol2/gmon.c: ... this.
	Include auto-target.h.
	(internal_mcount): Wrap setup handling in !HAVE_SOLARIS_CRTS.
	* config/t-sol2: Rename to ...
	* config/sol2/t-sol2: ... this.
	(gmon.o): Reflect renaming.
	(crtp.o, crtpg.o): New rules.
	* config.host (*-*-solaris2*): Reflect renaming.
	Use system CRTs if present.
	Remove default CRT case.

From-SVN: r228077
2015-09-24 08:51:39 +00:00
Kyrylo Tkachov fcb901cdfa [tree-inline][obvious] Delete redundant count_insns_seq
* tree-inline.h (count_insns_seq): Delete prototype.
	(estimate_num_insns_seq): Define prototype.
	* tree-inline.c (count_insns_seq): Delete.
	(estimate_num_insns_seq): Remove static qualifier.
	* tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
	with estimate_num_insns_seq.

From-SVN: r228075
2015-09-24 08:25:13 +00:00
Richard Biener 1fefbb66c8 tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base members.
2015-09-24  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
	members.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
	and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
	offset.
	(ao_ref_init_from_vn_reference): Record clique and base in the
	built base.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise

	* g++.dg/tree-ssa/restrict3.C: New testcase.

From-SVN: r228074
2015-09-24 07:35:55 +00:00
Richard Biener 0a28fdcaf7 re PR c/48885 (missed optimization with restrict qualifier?)
2015-09-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/48885
	* tree-ssa-structalias.c (visit_loadstore): Handle default defs
	as not including any restrict tags from other pointers.

	* gcc.dg/tree-ssa/restrict-6.c: New testcase.

From-SVN: r228073
2015-09-24 07:34:47 +00:00