Commit Graph

140919 Commits

Author SHA1 Message Date
Wilco Dijkstra
feca59ff11 [AArch64][4/5] Remove redundant code
2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
	redundant immediate generation code.

From-SVN: r227949
2015-09-20 16:43:28 +00:00
Wilco Dijkstra
8fcbb4e328 [AArch64][3/5] Remove dead code
2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
	(AARCH64_NUM_BITMASKS): Remove.
	(aarch64_bitmasks_cmp): Remove.
	(aarch64_build_bitmask_table): Remove.

From-SVN: r227948
2015-09-20 16:41:26 +00:00
Wilco Dijkstra
62c8d76c10 [AArch64][2/5] Improve aarch64_internal_mov_immediate by using faster algorithm
2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
	slow immediate matching loops with a faster algorithm.

From-SVN: r227947
2015-09-20 16:37:39 +00:00
Wilco Dijkstra
a64c73a2f0 [AArch64][1/5] Reimplement aarch64_bitmask_imm
2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
	faster algorithm.

From-SVN: r227946
2015-09-20 16:34:44 +00:00
Oleg Endo
e4bdea2f30 pr43417.c: Move target independent test to ...
gcc/testsuite/
	* gcc.target/sh/pr43417.c: Move target independent test to ...
	* gcc.c-torture/compile/pr43417.c: ... here.

From-SVN: r227945
2015-09-20 14:36:58 +00:00
Oleg Endo
82bb2eaead sh.exp (check_effective_target_sh4a, [...]): New effective target checks.
gcc/testsuite/
	* gcc.target/sh/sh.exp (check_effective_target_sh4a,
	check_effective_target_big_endian, check_effective_target_little_endian,
	check_effective_target_any_fpu, check_effective_target_double_fpu,
	check_effective_target_use_single_only_fpu,
	check_effective_target_default_single_fpu,
	check_effective_target_no_fpu, check_effective_target_has_xf_regs,
	check_effective_target_has_fsca, check_effective_target_has_fsrra,
	check_effective_target_has_fpchg, check_effective_target_has_dyn_shift,
	check_effective_target_fmovd_enabled,
	check_effective_target_has_privileged, check_effective_target_has_pref,
	check_effective_target_banked_r0r7_isr,
	check_effective_target_stack_save_isr): New effective target checks.
	* gcc.target/sh/pr51244-16.c: Merge into pr51244-15.c.
	* gcc.target/sh/pr51244-20-sh2a.c: Merge into pr51244-20.c.
	* gcc.target/sh/pr51244-3.c: Merge into pr51244-2.c
	* gcc.target/sh/pr54089-5.c: Merge into pr54089-4.c.
	* gcc.target/sh/20080410-1.c: Use new effective target checks.
	* gcc.target/sh/attr-isr-nosave_low_regs.c: Likewise.
	* gcc.target/sh/attr-isr.c: Likewise.
	* gcc.target/sh/fpul-usage-1.c: Likewise.
	* gcc.target/sh/hiconst.c: Likewise.
	* gcc.target/sh/mfmovd.c: Likewise.
	* gcc.target/sh/pr21255-3.c: Likewise.
	* gcc.target/sh/pr33135-1.c: Likewise.
	* gcc.target/sh/pr33135-2.c: Likewise.
	* gcc.target/sh/pr33135-3.c: Likewise.
	* gcc.target/sh/pr33135-4.c: Likewise.
	* gcc.target/sh/pr39423-2.c: Likewise.
	* gcc.target/sh/pr49880-4.c: Likewise.
	* gcc.target/sh/pr49880-5.c: Likewise.
	* gcc.target/sh/pr50749-sf-postinc-1.c: Likewise.
	* gcc.target/sh/pr50749-sf-postinc-2.c: Likewise.
	* gcc.target/sh/pr50749-sf-postinc-3.c: Likewise.
	* gcc.target/sh/pr50749-sf-postinc-4.c: Likewise.
	* gcc.target/sh/pr50749-sf-predec-1.c: Likewise.
	* gcc.target/sh/pr50749-sf-predec-2.c: Likewise.
	* gcc.target/sh/pr50749-sf-predec-3.c: Likewise.
	* gcc.target/sh/pr50749-sf-predec-4.c: Likewise.
	* gcc.target/sh/pr50751-2.c: Likewise.
	* gcc.target/sh/pr50751-3.c: Likewise.
	* gcc.target/sh/pr50751-5.c: Likewise.
	* gcc.target/sh/pr50751-6.c: Likewise.
	* gcc.target/sh/pr50751-8.c: Likewise.
	* gcc.target/sh/pr51244-15.c: Likewise.
	* gcc.target/sh/pr51244-2.c: Likewise.
	* gcc.target/sh/pr51244-20.c: Likewise.
	* gcc.target/sh/pr51244-6.c: Likewise.
	* gcc.target/sh/pr52483-4.c: Likewise.
	* gcc.target/sh/pr53511-1.c: Likewise.
	* gcc.target/sh/pr53512-1.c: Likewise.
	* gcc.target/sh/pr53512-2.c: Likewise.
	* gcc.target/sh/pr53512-3.c: Likewise.
	* gcc.target/sh/pr53512-4.c: Likewise.
	* gcc.target/sh/pr53513-1.c: Likewise.
	* gcc.target/sh/pr54089-2.c: Likewise.
	* gcc.target/sh/pr54089-3.c: Likewise.
	* gcc.target/sh/pr54089-4.c: Likewise.
	* gcc.target/sh/pr54602-2.c: Likewise.
	* gcc.target/sh/pr54602-3.c: Likewise.
	* gcc.target/sh/pr54602-4.c: Likewise.
	* gcc.target/sh/pr54680.c: Likewise.
	* gcc.target/sh/pr55303-1.c: Likewise.
	* gcc.target/sh/pr55303-2.c: Likewise.
	* gcc.target/sh/pr55303-3.c: Likewise.
	* gcc.target/sh/pr56547-1.c: Likewise.
	* gcc.target/sh/pr56547-2.c: Likewise.
	* gcc.target/sh/pr61195.c: Likewise.
	* gcc.target/sh/pr61996.c: Likewise.
	* gcc.target/sh/pr6526.c: Likewise.
	* gcc.target/sh/pragma-isr-nosave_low_regs.c: Likewise.
	* gcc.target/sh/pragma-isr-trapa2.c: Likewise.
	* gcc.target/sh/prefetch.c: Likewise.
	* gcc.target/sh/rte-delay-slot.c: Likewise.
	* gcc.target/sh/sh2a-band.c: Likewise.
	* gcc.target/sh/sh2a-bclr.c: Likewise.
	* gcc.target/sh/sh2a-bclrmem.c: Likewise.
	* gcc.target/sh/sh2a-bld.c: Likewise.
	* gcc.target/sh/sh2a-bor.c: Likewise.
	* gcc.target/sh/sh2a-bset.c: Likewise.
	* gcc.target/sh/sh2a-bsetmem.c: Likewise.
	* gcc.target/sh/sh2a-bxor.c: Likewise.
	* gcc.target/sh/sh2a-jsrn.c: Likewise.
	* gcc.target/sh/sh2a-movi20s.c: Likewise.
	* gcc.target/sh/sh2a-movrt.c: Likewise.
	* gcc.target/sh/sh2a-resbank.c: Likewise.
	* gcc.target/sh/sh2a-rtsn.c: Likewise.
	* gcc.target/sh/sh2a-tbr-jump.c: Likewise.
	* gcc.target/sh/sh4a-bitmovua.c: Likewise.
	* gcc.target/sh/sh4a-cosf.c: Likewise.
	* gcc.target/sh/sh4a-fsrra.c: Likewise.
	* gcc.target/sh/sh4a-memmovua.c: Likewise.
	* gcc.target/sh/sh4a-sincosf.c: Likewise.
	* gcc.target/sh/sh4a-sinf.c: Likewise.

From-SVN: r227944
2015-09-20 14:09:36 +00:00
Jeff Law
7c3e70560b [PATCH] Fix 47679 by improving jump threading
PR tree-optimization/47679
	* tree-ssa-dom.c (record_temporary_equivalences): No longer static.
	* tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
	* tree-ssa-threadedge.c: Include tree-ssa-dom.h.
	(thread_through_normal_block): Use record_temporary_equivalences.

        PR tree-optimization/47679
	* g++.dg/warn/Wuninitialized-6.C: New test.

From-SVN: r227942
2015-09-20 00:37:39 -06:00
Trevor Saunders
355fe0884b switch from gimple to gimple*
This renames the gimple_statement_base struct to gimple removes the
typedef of gimple_statement_base * to gimple, and then adjusts all of
the places that use the type.

gcc/ChangeLog:

2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* coretypes.h (gimple): Change typedef to be a forward
	declaration.
	* gimple.h (gimple_statement_base): rename to gimple.
	* (all functions and types using gimple): Adjust.
	* *.[ch]: Likewise.

gcc/cp/ChangeLog:

2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* cp-gimplify.c (gimplify_must_not_throw_expr): Adjust.

From-SVN: r227941
2015-09-20 00:52:59 +00:00
GCC Administrator
e4f2a3e458 Daily bump.
From-SVN: r227940
2015-09-20 00:16:12 +00:00
Andrew Dixie
7e0d34b561 xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
            David Edelsohn  <dje.gcc@gmail.com>

        * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
        (ASM_PREFERRED_EH_DATA_FORMAT): Define.
        (EH_FRAME_THROUGH_COLLECT2): Define.
        (EH_TABLES_CAN_BE_READ_ONLY): Define.
        (ASM_OUTPUT_DWARF_PCREL): Define.
        (ASM_OUTPUT_DWARF_DATAREL): Define.

Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>

From-SVN: r227937
2015-09-19 18:57:47 -04:00
Tim Shen
236d76c4a9 re PR libstdc++/67361 (std::regex_error::what() should say something about the error_code)
PR libstdc++/67361
	* include/bits/regex_error.h: Add __throw_regex_error that
	supports string.
	* include/bits/regex_automaton.h: Add more specific exception
	messages.
	* include/bits/regex_automaton.tcc: Likewise.
	* include/bits/regex_compiler.h: Likewise.
	* include/bits/regex_compiler.tcc: Likewise.
	* include/bits/regex_scanner.h: Likewise.
	* include/bits/regex_scanner.tcc: Likewise.

From-SVN: r227936
2015-09-19 20:56:27 +00:00
John David Anglin
b8b71bc0d8 pa.c (pa_function_ok_for_sibcall): Remove special treatment of TARGET_ELF32.
* config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
	of TARGET_ELF32.

From-SVN: r227933
2015-09-19 18:32:28 +00:00
Ville Voutilainen
15eefe5738 Implement nested namespace definitions.
/cp
2015-09-18  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement nested namespace definitions.
	* parser.c (cp_parser_namespace_definition): Grok nested namespace
	definitions.

/testsuite
2015-09-18  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement nested namespace definitions.
	* g++.dg/cpp1z/nested-namespace-def1.C: New.
	* g++.dg/cpp1z/nested-namespace-def2.C: Likewise.
	* g++.dg/cpp1z/nested-namespace-def3.C: Likewise.
	* g++.dg/lookup/name-clash5.C: Adjust.
	* g++.dg/lookup/name-clash6.C: Likewise.

From-SVN: r227932
2015-09-19 07:44:01 +03:00
Jeff Law
8e33db8fc0 [PATCH] avail_expr_stack is no longer file scoped
PR tree-optimization/47679
        * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
        it here ...
        (dom_opt_dom_walker): New private member holding the avail_exprs_stack
        object.  Update constructor.
        (pass_dominator::execute):  Corresponding chagnes to declaration
        and initialization of avail_exprs_stack.  Update constructor call
        for dom_opt_dom_walker object.
        (lookup_avail_expr, record_cond): Accept additional argument.  Pass
        it down to children as needed.
        (record_equivalences_from_incoming_edge): Likewise.
        (eliminate_redundant_computations): Likewise.
        (record_equivalences_from_stmt): Likewise.
        (simplify_stmt_for_jump_threading): Likewise.
        (record_temporary_equivalences): Likewise.
        (optimize_stmt): Likewise.
        (dom_opt_dom_walker::thread_across_edge): Update access to
        avail_exprs_stack object and pass it to children as needed.
        (dom_opt_dom_walker::before_dom_children): Similarly.
        (dom_opt_dom_walker::after_dom_children): Similarly.
        * tree-ssa-threadedge.c (pfn_simplify): New typedef.
        (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
        Add avail_expr_stack argument.  Pass it to children as needed.
        (dummy_simplify): Likewise.
        (simplify_control_stmt_condition): Likewise.
        (thread_around_empty_blocks): Likewise.
        (thread_through_normal_block): Likewise.
        (thread_across_edge): Likewise.
        * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
        * tree-vrp.c (simplify_stmt_for_jump_threading): Update.

From-SVN: r227931
2015-09-18 20:56:15 -06:00
GCC Administrator
8788ec9417 Daily bump.
From-SVN: r227929
2015-09-19 00:16:11 +00:00
Manuel López-Ibáñez
eaa797e8d5 Misplaced return in previous commit.
2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-pragma.c (handle_pragma_diagnostic): Fix wrong return.

From-SVN: r227924
2015-09-18 22:34:53 +00:00
Manuel López-Ibáñez
c4914de618 Use explicit locations for some warnings in c-pragma.c.
gcc/cp/ChangeLog:

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

	* parser.c (pragma_lex): Add loc argument. Rearrange the code to
	make it more similar to the C version.

gcc/c-family/ChangeLog:

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

	* c-pragma.c (handle_pragma_diagnostic): Use explicit location
	when warning.
	* c-pragma.h (pragma_lex): Add optional loc argument.

gcc/c/ChangeLog:

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

	* c-parser.c (pragma_lex): Add loc argument.

gcc/testsuite/ChangeLog:

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

	* gcc.dg/pragma-diag-5.c: New test.

From-SVN: r227923
2015-09-18 19:36:19 +00:00
Jeff Law
edfc92491b [PATCH] const_and_copies is no longer file scoped
PR tree-optimization/47679
	* tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
	it here ...
	(dom_opt_dom_walker): New private member holding the const_and_copies
	object.  Update constructor.
	(pass_dominator::execute): Corresponding changes to declaration
	and initialization of const_and_copies.  Update constructor call
	for the dom_opt_dom_walker object.
	(record_temporary_equivalences): Accept const_and_copies argument
	pass it down to children as needed.
	(record_equality): Likewise.
	(record_equivalences_from_incoming_edge): Likewise.
	(cprop_into_successor_phis, optimize_stmt): Likewise.
	(eliminate_redundant_computations): Likewise.
	(dom_opt_dom_walker::thread_across_edge): Update access to
	const_and_copies object and pass it to children as needed.
	(dom_opt_dom_walker::before_dom_children): Similarly.
	(dom_opt_dom_walker::after_dom_children): Similarly.

From-SVN: r227922
2015-09-18 13:33:48 -06:00
Jeff Law
1b2fe7d3f7 [PATCH] avail_exprs is no longer file scoped
* tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
	it into the avail_exprs_stack class.
	(pass_dominator::execute): Corresponding changes to declaration
	and initialization of avail_exprs.  Pass avail_exprs to
	dump_dominator_optimization_stats.
	(record_cond): Extract avail_exprs from avail_exprs_stack.
	(lookup_avail_expr): Similarly.
	(htab_staticstics): Remove unnecessary prototype.  Move to earlier
	position in file.
	(dump_dominator_optimization_stats): Make static and prototype.
	Add argument for the hash table to dump.
	(debug_dominator_optimization_stats): Remove.
	* tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
	prototype.
	(debug_dominator_optimization_stats): Similarly.
	* tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
	"void" in prototype for pop_to_marker method.  Add accessor method
	for the underlying avail_exprs table.

	* tree-ssa-threadedge.c: Remove trailing whitespace.

From-SVN: r227921
2015-09-18 13:12:22 -06:00
John David Anglin
5877e54ea0 pa-protos.h (pa_cint_ok_for_move): Change argument type to unsigned.
* config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
	unsigned.
	(pa_ldil_cint_p): Likewise.
	* config/pa/pa.c (pa_cint_ok_for_move): likewise.
	(pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
	Update callers.
	* config/pa/pa.md: Likewise.

From-SVN: r227920
2015-09-18 18:56:10 +00:00
David Malcolm
57eb2d70a6 Move diagnostic_show_locus and friends out into a new source file
gcc/ChangeLog:
	* Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
	* diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
	(diagnostic_show_locus): Likewise.
	(diagnostic_print_caret_line): Likewise.
	* diagnostic-show-locus.c: New file.

From-SVN: r227915
2015-09-18 18:27:44 +00:00
David Edelsohn
54f0c25b30 Update copyright.
From-SVN: r227912
2015-09-18 14:14:45 -04:00
David Edelsohn
7e704eb4d6 dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to "back" parameter.
* dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
        "back" parameter. Declare label in #if block.

From-SVN: r227911
2015-09-18 14:03:26 -04:00
Uros Bizjak
dcd7a7dfce re PR middle-end/67619 (ICE at -O1 and above on x86_64-linux-gnu in int_mode_for_mode, at stor-layout.c:425)
PR middle-end/67619
	* except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
	the address to a register.

testsuite/ChangeLog:

	PR middle-end/67619
	* gcc.dg/torture/pr67619.c: New test.

From-SVN: r227909
2015-09-18 18:27:51 +02:00
Jeff Law
a502f7b6e4 [PATCH] Break out phi-only cprop into its own file
PR tree-optimization/47679
	* Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
	* tree-ssa-dom.c: Remove unnecessary header includes.
	(remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
	(get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
	(propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
	(eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
	(pass_phi_only_cprop::execute): Likewise.
	(make_pass_phi_only_cprop): Likewise.
	* tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
	uses of file scoped statics by passing the required objects
	as parameters wherever needed.

From-SVN: r227908
2015-09-18 09:29:01 -06:00
Andrew Dixie
e707a2dd66 aix61.h (STARTFILE_SPEC): Add crtdbase.o.
* config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
        * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
        Declare.
        (rs6000_asm_output_dwarf_datarel): Declare.

Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>

From-SVN: r227907
2015-09-18 10:20:01 -04:00
Andrew Dixie
04218b3564 config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts.
libgcc/
        * config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts.
        * config/rs6000/crtdbase.S: New file.
        * config/rs6000/t-aix-cxa: Build crtdbase.o.

gcc/
        * defaults.h (EH_FRAME_SECTION_NAME): Depend on
        EH_FRAME_THROUGH_COLLECT2.
        * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
        DW_EH_PE_datarel.
        * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
        even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
        collect2 labels to EH_FRAME_THROUGH_COLLECT2.
        * except.c (switch_to_exception_section): Use a read-only section
        even if EH_FRAME_SECTION_NAME is undefined.
        * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
        * collect2.c (write_c_file_stat): Provide dbase on AIX.
        (scan_prog_file): Don't export __dso_handle nor
        __gcc_unwind_dbase.
        * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
        (EH_TABLES_CAN_BE_READ_ONLY): Define.
        (ASM_OUTPUT_DWARF_PCREL): Define.
        (ASM_OUTPUT_DWARF_DATAREL): Define.
        (EH_FRAME_THROUGH_COLLECT2): Define.
        (EH_FRAME_IN_DATA_SECTION): Delete.
        * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
        (rs6000_aix_asm_output_dwarf_datarel): New.
        (rs6000_xcoff_asm_init_sections): Don't set exception_section.
        * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
        (EH_FRAME_THROUGH_COLLECT2): Define.
        * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
        (EH_FRAME_THROUGH_COLLECT2): Define.
        (EH_TABLES_CAN_BE_READ_ONLY): Define.
        * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
        (EH_FRAME_THROUGH_COLLECT2): New.
        (ASM_OUTPUT_DWARF_DATAREL): New.
        * doc/tm.texi: Regenerate.

Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>

From-SVN: r227906
2015-09-18 10:10:36 -04:00
Richard Biener
8cd60b238b dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert we're in early phase.
2015-09-18  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
	we're in early phase.
	(schedule_generic_params_dies_gen): Likewise.
	(gen_remaining_tmpl_value_param_die_attribute): Do only as much
	work as possible, retaining unhandled cases.
	(gen_scheduled_generic_parms_dies): Set early-dwarf flag and
	clear out generic_type_instances at the end.
	(dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
	(dwarf2out_early_finish): ... here.  Do most of
	gen_remaining_tmpl_value_param_die_attribute here.

From-SVN: r227905
2015-09-18 12:59:32 +00:00
Jonathan Wakely
7215aaedd6 Fix errors due to extra includes in extc++.h
* include/precompiled/extc++.h: Fix bootstrap error due to
	unconditional inclusion of <ext/enc_filebuf.h>.
	* include/ext/random: Check for definition of UINT32_C.

From-SVN: r227902
2015-09-18 12:21:05 +01:00
Alan Lawrence
d0f4e7fcdb completely_scalarize arrays as well as records.
gcc/:
    
	PR tree-optimization/67283
	* tree-sra.c (type_consists_of_records_p): Rename to...
	(scalarizable_type_p): ...this, add case for ARRAY_TYPE.
	(completely_scalarize_record): Rename to...
	(completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
	(scalarize_elem): New.
	(analyze_all_variable_accesses): Follow renamings.
    
gcc/testsuite/:
    
	* gcc.dg/tree-ssa/sra-15.c: New.
	* gcc.dg/tree-ssa/sra-16.c: New.

From-SVN: r227901
2015-09-18 10:55:11 +00:00
Richard Biener
f5916470c4 dwarf2out.c (add_location_or_const_value_attribute): Do nothing in early-dwarf.
2015-09-18  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (add_location_or_const_value_attribute): Do nothing
	in early-dwarf.

From-SVN: r227899
2015-09-18 08:42:34 +00:00
Richard Biener
a0f79fcc43 re PR tree-optimization/66142 (Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE)
2015-09-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66142
	* fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
	treat MEM[&x] and x the same.
	* tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
	when we simplified sth.
	(vn_reference_maybe_forwprop_address): Likewise.
	(valueize_refs_1): When we simplified through
	vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
	set valueized_anything to true.
	(vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
	one ref kills the other instead of just a offset-based test.
	* tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
	for the operand_equal_p test to compare bases and also compare
	sizes.

From-SVN: r227896
2015-09-18 07:57:00 +00:00
GCC Administrator
9ace6a8733 Daily bump.
From-SVN: r227892
2015-09-18 00:16:14 +00:00
Catherine Moore
05c0e3eb54 debug.cc: Include <cstdio>.
2015-09-17  Catherine Moore  <clm@codesourcery.com>

        * src/c++11/debug.cc: Include <cstdio>.

From-SVN: r227888
2015-09-17 19:16:53 -04:00
Gerald Pfeifer
0b546684ad Include <cerrno> in src/c++11/random.cc
2015-09-17  Gerald Pfeifer  <gerald@pfeifer.com>

	* src/c++11/random.cc: Include <cerrno>.

From-SVN: r227887
2015-09-17 22:28:00 +01:00
Bernd Edlinger
e9db0d1b40 re PR sanitizer/64078 (FAIL: c-c++-common/ubsan/object-size-9.c)
2015-09-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR sanitizer/64078
        * c-c++-common/ubsan/object-size-9.c (s): Add alignment attribute.
        (f2, f3): Make the function static.
        * c-c++-common/ubsan/object-size-10.c (a, b): Add alignment attribute.

From-SVN: r227886
2015-09-17 19:43:00 +00:00
François Dumont
814e52ca21 2015-09-17 François Dumont <fdumont@gcc.gnu.org>
* include/debug/formatter.h
	(_Error_formatter::_Parameter::_M_print_field): Deprecate.
	(_Error_formatter::_Parameter::_M_print_description): Likewise.
	(_Error_formatter::_M_format_word): Likewise.
	(_Error_formatter::_M_print_word): Likewise.
	(_Error_formatter::_M_print_string): Likewise.
	(_Error_formatter::_M_get_max_length): Likewise.
	(_Error_formatter::_M_max_length): Delete.
	(_Error_formatter::_M_indent): Likewise.
	(_Error_formatter::_M_column): Likewise.
	(_Error_formatter::_M_first_line): Likewise.
	(_Error_formatter::_M_wordwrap): Likewise.
	* src/c++11/debug.cc: Adapt.

From-SVN: r227885
2015-09-17 19:23:26 +00:00
Andrew Sutton
378b307d0d Implement N4295 fold-expressions.
* cp-tree.def: Add UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR,
	BINARY_LEFT_FOLD_EXPR, BINARY_RIGHT_FOLD_EXPR.
	* cp-objcp-common.c (cp_common_init_ts): Handle them.
	* cp-tree.h (FOLD_EXPR_CHECK, BINARY_FOLD_EXPR_CHECK, FOLD_EXPR_P)
	(FOLD_EXPR_MODIFY_P, FOLD_EXPR_OP, FOLD_EXPR_PACK, FOLD_EXPR_INIT): New.
	* parser.c (cp_parser_skip_to_closing_parenthesis): Split out...
	(cp_parser_skip_to_closing_parenthesis_1): This function.  Change
	or_comma parameter to or_ttype.
	(cp_parser_fold_operator, cp_parser_fold_expr_p)
	(cp_parser_fold_expression): New.
	(cp_parser_primary_expression): Use them.
	* pt.c (expand_empty_fold, fold_expression, tsubst_fold_expr_pack)
	(tsubst_fold_expr_init, expand_left_fold, tsubst_unary_left_fold)
	(tsubst_binary_left_fold, expand_right_fold)
	(tsubst_unary_right_fold, tsubst_binary_right_fold): New.
	(tsubst_copy): Use them.
	(type_dependent_expression_p): Handle fold-expressions.
	* semantics.c (finish_unary_fold_expr)
	(finish_left_unary_fold_expr, finish_right_unary_fold_expr)
	(finish_binary_fold_expr): New.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r227883
2015-09-17 14:26:06 -04:00
Ian Lance Taylor
750cdaf713 posix.c (backtrace_open): Cast second argument of open() to int.
2015-09-17  Ian Lance Taylor  <iant@google.com>

        * posix.c (backtrace_open): Cast second argument of open() to int.

From-SVN: r227881
2015-09-17 13:08:04 -04:00
Christian Bruel
1eb50e95fb arm.md (*call_value_symbol): Fix operand for interworking.
2015-09-17  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm.md (*call_value_symbol): Fix operand for interworking.

From-SVN: r227880
2015-09-17 17:57:59 +02:00
Eric Botcazou
4e9a8214b8 * gcc-interface/trans.c (emit_check): Do not touch TREE_SIDE_EFFECTS.
From-SVN: r227879
2015-09-17 15:51:40 +00:00
Jonathan Wakely
310055e7b4 Handle alignment in __atomic_is_lock_free
gcc:

2015-09-17  Richard Henderson  <rth@redhat.com>

	PR libstdc++/65913
	* builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
	pointers that encode the alignment of the object.

libstdc++-v3:

2015-09-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/65913
	* include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
	__atomic_base<_PTp*>::is_lock_free()): Call the built-in with the
	immediate pointer value, not a variable.
	* include/std/atomic (atomic<T>::is_lock_free()): Likewise.
	* testsuite/29_atomics/atomic/65913.cc: New.

From-SVN: r227878
2015-09-17 16:46:04 +01:00
Eric Botcazou
308fbc4290 re PR rtl-optimization/66790 (Invalid uninitialized register handling in REE)
PR rtl-optimization/66790
	* df-problems.c (LIVE): Amend documentation.

From-SVN: r227874
2015-09-17 15:35:24 +00:00
Jonathan Wakely
01610fec49 Remove non-deterministic part of canonical() test
* testsuite/experimental/filesystem/operations/canonical.cc: Remove
	non-deterministic part of the test.

From-SVN: r227873
2015-09-17 16:33:20 +01:00
Jonathan Wakely
a2b4d73daf Make std::random_device retry after short reads
PR libstdc++/65142
	* src/c++11/random.cc (random_device::_M_getval()): Retry after short
	reads.

From-SVN: r227872
2015-09-17 16:06:42 +01:00
Jonathan Wakely
2eb57e545b Remove redundant conditional expressions in <system_error>
* include/std/system_error (error_code::operator bool(),
	error_condition::operator bool()): Remove redundant conditional
	expression.

From-SVN: r227871
2015-09-17 15:56:50 +01:00
Jonathan Wakely
99f04955ed Only do shrink_to_fit() when exceptions enabled
* include/bits/allocator.h (__shrink_to_fit_aux<T, true>::_S_do_it):
	Do nothing if exceptions are disabled.
	* include/bits/basic_string.h (basic_string::shrink_to_fit): Likewise.

From-SVN: r227870
2015-09-17 15:56:46 +01:00
Richard Sandiford
385399a875 Split up optabs.[hc]
optabs.[hc] is a bit of a behemoth.  It includes basic functions for querying
what a target can do, related tree- and gimple-level query functions,
related rtl-level query functions, and the functions that actually
generate code.  Some gimple optimisations therefore need:

#include "insn-config.h"
#include "expmed.h"
#include "dojump.h"
#include "explow.h"
#include "emit-rtl.h"
#include "varasm.h"
#include "stmt.h"
#include "expr.h"

purely to query whether the target has support for a particular operation.

This patch splits optabs up as follows:

      - optabs-query.[hc]: IL-independent functions for querying what a target
          can do natively.
      - optabs-tree.[hc]: tree and gimple query functions (an extension of
          optabs-query.[hc]).
      - optabs-libfuncs.[hc]: optabs-specific libfuncs (an extension of
          libfuncs.h)
      - optabs.h: For now includes optabs-query.h and optabs-libfuncs.h.

Only two files outside optabs need to include both optabs.h and
optabs-tree.h: expr.c and function.c.  I think that's expected given
that both are related to expand.

It might be good to split optabs.h further, but this is already quite
a big patch.

I changed can_conditionally_move_p from returning an int to returning
a bool and fixed a few formatting glitches.  There should be no other
changes to the functions themselves.

gcc/
	* Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
	and optabs-tree.o.
	(GTFILES): Replace optabs.c with optabs-libfunc.c.
	* genopinit.c (main): Add an include guard to insn-opinit.h.
	Protect the rtx_code parts with NUM_RTX_CODE.
	* optabs.h: Split parts out to...
	* optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these
	new files.
	* optabs.c: Split parts out to...
	* optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these
	new files.
	* cilk-common.c: Include optabs-query.h rather than optabs.h.
	* fold-const.c: Likewise.
	* target-globals.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-math-opts.c: Include optabs-tree.h rather than
	optabs.h.  Remove unncessary include files.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vrp.c: Likewise.
	* toplev.c: Include optabs-query.h and optabs-libfuncs.h
	rather than optabs.h.
	* expr.c: Include optabs-tree.h.
	* function.c: Likewise.

From-SVN: r227865
2015-09-17 14:28:59 +00:00
Ian Lance Taylor
a78eb72ac0 compiler: Issue channel type errors earlier.
When asking for the type of a receive operation, the compiler would
    return an error type if the receive operator was being used on an
    invalid channel type and the error would be reported in a later pass.
    There are several ways that the type checking pass would not see
    the original node and fail to issue the error.  This patch modifies
    receive operations to give an error immediately once it is known that
    the channel type is invalid.
    
    Fixes golang/go#12323.
    
    Reviewed-on: https://go-review.googlesource.com/13987

From-SVN: r227863
2015-09-17 13:57:40 +00:00
Eric Botcazou
4fb94ef9aa re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic stack checking)
PR middle-end/65958
	* config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
	* config/arm/arm-protos.h (output_probe_stack_range): Declare.
	* config/arm/arm.c: Include common/common-target.h.
	(use_return_insn): Return 0 if the static chain register was saved
	above a non-APCS frame.
	(arm_compute_static_chain_stack_bytes): Adjust for stack checking.
	(struct scratch_reg): New.
	(get_scratch_register_on_entry): New function.
	(release_scratch_register_on_entry): Likewise.
	(arm_emit_probe_stack_range): Likewise.
	(output_probe_stack_range): Likewise.
	(arm_expand_prologue): Factor out code dealing with the IP register
	for nested function and adjust it for stack checking.
	Invoke arm_emit_probe_stack_range if static builtin stack checking
	is enabled.
	(thumb1_expand_prologue): Sorry out if static builtin stack checking
	is enabled.
	(arm_expand_epilogue): Add the saved static chain register, if any, to
	the amount of pre-pushed registers to pop.
	(arm_frame_pointer_required): Return true if static stack checking is
	enabled and we want to catch the exception with the EABI unwinder.
	* config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
	(UNSPEC_PROBE_STACK_RANGE): Likewise.
	* config/arm/arm.md (probe_stack): New insn.
	(probe_stack_range): Likewise.

From-SVN: r227860
2015-09-17 11:06:57 +00:00