1. 18 Aug, 2015 3 commits
    • xtensa: use unwind-dw2-fde-dip instead of unwind-dw2-fde · 0e19db59
      This allows having exception cleanup code in binaries that don't
      register their unwind tables.
      
      2015-08-18  Max Filippov  <jcmvbkbc@gmail.com>
      libgcc/
      	* config/xtensa/t-windowed (LIB2ADDEH): Replace unwind-dw2-fde
      	with unwind-dw2-fde-dip.
      
      From-SVN: r226963
      Max Filippov committed
    • xtensa: reimplement register spilling · b6ac5f62
      Spilling windowed registers in userspace is much easier, more portable,
      less error-prone and equally effective as in kernel. Now that register
      spilling syscall is considered obsolete in the xtensa linux kernel
      replace it with CALL12 followed by series of ENTRY in libgcc.
      
      2015-08-18  Max Filippov  <jcmvbkbc@gmail.com>
      libgcc/
      	* config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill): Use
      	CALL12 followed by series of ENTRY to spill windowed registers.
      	(__xtensa_nonlocal_goto): Call __xtensa_libgcc_window_spill
      	instead of making linux spill syscall.
      
      From-SVN: r226962
      Max Filippov committed
    • Daily bump. · 3b6e0401
      From-SVN: r226961
      GCC Administrator committed
  2. 17 Aug, 2015 14 commits
  3. 16 Aug, 2015 4 commits
  4. 15 Aug, 2015 3 commits
  5. 14 Aug, 2015 16 commits
    • [PR64164] Drop copyrename, use coalescible partition as base when optimizing. · 1f9ceff1
      for  gcc/ChangeLog
      
      	PR rtl-optimization/64164
      	PR bootstrap/66978
      	PR middle-end/66983
      	PR rtl-optimization/67000
      	PR middle-end/67034
      	PR middle-end/67035
      	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
      	* tree-ssa-copyrename.c: Removed.
      	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
      	-ftree-coalesce-vars.
      	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
      	* common.opt (ftree-copyrename): Ignore.
      	(ftree-coalesce-inlined-vars): Likewise.
      	* doc/invoke.texi: Remove the ignored options above.
      	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
      	* tree-ssa-coalesce.h: ... here.
      	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
      	headers required by it.
      	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
      	across variables when flag_tree_coalesce_vars.  Check register
      	use and promoted modes to allow coalescing.  Do not coalesce
      	maybe-byref parms with SSA_NAMEs of other variables, or
      	anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
      	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
      	with its member functions to tree-ssa-coalesce.c.
      	(var_map_base_init): Likewise.  Renamed to
      	compute_samebase_partition_bases.
      	(partition_view_normal): Drop want_bases parameter.
      	(partition_view_bitmap): Likewise.
      	* tree-ssa-live.h: Adjust declarations.
      	* tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
      	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
      	default defs at the entry point.
      	(dump_part_var_map): New.
      	(compute_optimized_partition_bases): New, called by...
      	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
      	of compute_samebase_partition_bases.  Adjust.
      	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
      	* cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
      	(ssa_default_def_partition): New.
      	(get_rtl_for_parm_ssa_default_def): New.
      	(align_local_variable, add_stack_var): Support anonymous SSA
      	names.
      	(defer_stack_allocation): Likewise.  Declare earlier.
      	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
      	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
      	Do no record deferred-allocation marker in
      	SA.partition_to_pseudo.
      	(expand_stack_vars): Adjust check for the marker in it.
      	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
      	redundant MEM attr setting.
      	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
      	from...
      	(expand_one_stack_var): ... this.  New wrapper to check and
      	skip already expanded SSA partitions.
      	(record_alignment_for_reg_var): New, factored out of...
      	(expand_one_var): ... this.
      	(expand_one_ssa_partition): New.
      	(adjust_one_expanded_partition_var): New.
      	(expand_one_register_var): Check and skip already expanded SSA
      	partitions.
      	(expand_used_vars): Don't create DECLs for anonymous SSA
      	names.  Expand all SSA partitions, then adjust all SSA names.
      	(pass::execute): Replace the loops that set
      	SA.partition_to_pseudo from partition leaders and cleared
      	DECL_RTL for multi-location variables, and that which used to
      	rename vars and set attrs, with one that clears DECL_RTL and
      	checks that PARMs and RESULTs default_defs match DECL_RTL.
      	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
      	* emit-rtl.c: Include stor-layout.h.
      	(set_reg_attrs_for_parm): Handle NULL decl.
      	(set_reg_attrs_for_decl_rtl): Take mode from expression if
      	it's not a DECL.
      	* stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
      	rather than its possibly-NULL DECL.
      	* explow.c (promote_ssa_mode): New.
      	* explow.h (promote_ssa_mode): Declare.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
      	(read_complex_part): Export.
      	* expr.h (read_complex_part): Declare.
      	* cfgexpand.h (parm_maybe_byref_p): Declare.
      	* function.c: Include cfgexpand.h.
      	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
      	(use_register_for_parm_decl): Wrapper for the above to
      	special-case the result_ptr.
      	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
      	(split_complex_args): Take assign_parm_data_all argument.
      	Pass it to rtl_for_parm.  Set up rtl and context for split
      	args.  Reset complex parm before fetching its default decl
      	rtl.
      	(assign_parms_unsplit_complex): Use the default-def complex
      	parm rtl if it matches the components.
      	(assign_parms_augmented_arg_list): Adjust.
      	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
      	multiple locations.  Recognize split complex args.
      	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
      	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
      	(assign_parm_setup_block): Prefer SSA-assigned location, and
      	fill in its address if the memory location of a maybe-byref
      	parm was not assigned by cfgexpand.
      	(assign_parm_setup_reg): Likewise.  Adjust its mode as
      	needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
      	sure passed_pointer parms don't need conversion.  Copy address
      	or value as needed.
      	(assign_parm_setup_stack): Prefer SSA-assigned location.
      	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
      	rtl before testing for pointer bounds.  Special-case result_ptr.
      	(expand_function_start): Maybe reset DECL_RTL of result.
      	Prefer SSA-assigned location for result and static chain.
      	Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
      	to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
      	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
      	anonymous SSA names.  Use promote_ssa_mode.
      	(get_temp_reg): Likewise.
      	(remove_ssa_form): Adjust.
      	* stor-layout.c (layout_decl): Don't set mem attributes of
      	non-MEMs.
      	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
      	and get its reg_usage for reg invalidation.
      	(compute_bb_dataflow): Pass it insn.
      	(emit_notes_in_bb): Likewise.
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
      	* gcc.dg/ssp-1.c: Make counter a register.
      	* gcc.dg/ssp-2.c: Likewise.
      	* gcc.dg/torture/parm-coalesce.c: New.
      
      From-SVN: r226901
      Alexandre Oliva committed
    • * tree-core.h (tree_base): Fix typo. · d7e90b66
      From-SVN: r226900
      Marek Polacek committed
    • compiler: Report unnamed receiver types. · 624c7bbf
          
          gccgo used to crash when presented with an invalid receiver type in a
          method.  Instead, unnamed receiver types should report an error.
          
          Fixes golang/go#11557.
          
          Reviewed-on: https://go-review.googlesource.com/13245
      
      From-SVN: r226899
      Ian Lance Taylor committed
    • re PR middle-end/67133 (ICE at -Os and above on x86_64-linux-gnu in gimple_op, at gimple.h:2274) · e37dcf45
      	PR middle-end/67133
      	* gimple.c (infer_nonnull_range_by_attribute): Check that the
      	nonnull argument position is not outside function arguments.
      
      	* gcc.dg/torture/pr67133.c: New test.
      
      From-SVN: r226896
      Marek Polacek committed
    • re PR target/67143 (ICE (could not split insn) on aarch64-linux-gnu) · 356c32e2
      gcc/
      2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
      
      	PR target/67143
      	* config/aarch64/atomics.md (atomic_<optab><mode>): Replace
      	'lconst_atomic' with 'const_atomic'.
      	(atomic_fetch_<optab><mode>): Likewise.
      	(atomic_<optab>_fetch<mode>): Likewise.
      	* config/aarch64/iterators.md (lconst-atomic): Move below
      	'const_atomic'.
      	(const_atomic): New.
      
      gcc/testsuite/
      2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
      	    Matthias Klose  <doko@debian.org>
      
      	PR target/67143
      	* gcc.c-torture/compile/pr67143.c: New
      	* gcc.target/aarch64/atomic-op-imm.c
      	(atomic_fetch_add_negative_RELAXED): New.
      	(atomic_fetch_sub_negative_ACQUIRE): New.
      
      
      Co-Authored-By: Matthias Klose <doko@debian.org>
      
      From-SVN: r226895
      Matthew Wahab committed
    • any (any::operator=(const any&)): Move check for self-assignment. · 2548a4d6
      	* include/experimental/any (any::operator=(const any&)): Move check
      	for self-assignment.
      	(any::operator=(any&&)): Add check for self-assignment.
      	(any::operator=(_ValueType&&)): Constrain template argument.
      	(any::swap(any&)): Add check for self-swap.
      	* testsuite/experimental/any/assign/self.cc: Test move and swap.
      	* testsuite/experimental/any/misc/any_cast_neg.cc: Update dg-error.
      
      From-SVN: r226894
      Jonathan Wakely committed
    • array: Add feature-test macro. · 357c9f7e
      	* include/experimental/array: Add feature-test macro.
      	* testsuite/experimental/array/neg.cc: Update dg-error.
      
      From-SVN: r226893
      Jonathan Wakely committed
    • inclhack.def (aix_stdio_inline): New fix. · d8082c18
              * inclhack.def (aix_stdio_inline): New fix.
              (aix_strtof_const): Limit to *-*-aix*.
              (aix_sysmachine): Same.
              (aix_syswait_2): Same.
              (aix_volatile):	Same.
              * fixincl.x: Regenerated.
              * test/base/stdio.h [AIX_STDIO_INLINE]: New test.
      
      From-SVN: r226891
      David Edelsohn committed
    • Add DWARF2_LINENO_DEBUGGING_INFO, and use it for nvptx · c9665100
      	gcc/
      	* config/nvptx/nvptx.c (nvptx_option_override): Don't override
      	debug options.
      	* config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
      	(DWARF2_DEBUGGING_INFO): Don't define.
      	* debug.h (dwarf2_lineno_debug_hooks): Declare.
      	* toplev.c (process_options): Add a case for it.
      	* dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
      	(dwarf2out_init): Skip most initializations if
      	DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
      	case.
      	* defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
      	DWARF2_LINENO_DEBUGGING_INFO.
      	* opts.c (set_debug_level): Likewise.
      
      Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
      
      From-SVN: r226890
      Thomas Schwinge committed
    • [AArch64][obvious] Fix some target attribute inlining tests for -fPIC · 4436a80d
      	* gcc.target/aarch64/target_attr_5.c: Add static modifier to bar.
      	* gcc.target/aarch64/target_attr_8.c: Likewise.
      	* gcc.target/aarch64/target_attr_14.c: Likewise.
      
      From-SVN: r226889
      Kyrylo Tkachov committed
    • DWARF2: add extensions to handle biased types · 9d147800
      include/ChangeLog:
      
      	* dwarf2.def (DW_AT_GNU_bias): New attribute.
      
      From-SVN: r226888
      Pierre-Marie de Rodat committed
    • DWARF2: add extensions to handle fixed point types · 07d574b4
      include/ChangeLog:
      
      	* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
      	attributes.
      
      From-SVN: r226887
      Pierre-Marie de Rodat committed
    • [AArch64][obvious] Mark target_attr_1.c as compile-only · 483750e4
      	* gcc.target/aarch64/target_attr_1.c: Make test compile-only.
      
      From-SVN: r226886
      Kyrylo Tkachov committed
    • [Patch ARM/AArch64] Add missing is_neon_type types · 3d0810e1
      gcc/
      
      	* config/arm/types.md (is_neon_type): Add missing types.
      
      From-SVN: r226885
      James Greenhalgh committed
    • driver-i386.c (host_detect_local_cpu): Add support for skylake. · 3e0f3349
      gcc/
      
      	* config/i386/driver-i386.c (host_detect_local_cpu): Add support
      	for skylake.
      	* config/i386/i386.c (PTA_SKYLAKE): New macros.
      	(processor_alias_table): Add skylake description.
      	(enum processor_model): Add skylake processor.
      	(arch_names_table): Add skylake record.
      	* doc/invoke.texi: Add skylake item.
      
      gcc/testsuite/
      
      	* gcc.target/i386/builtin_target.c: Add skylake check.
      
      libgcc/
      
      	* config/i386/cpuinfo.c (enum processor_subtypes): Add skylake.
      	(get_intel_cpu): Likewise.
      
      From-SVN: r226884
      Yuri Rumyantsev committed
    • jit: on OS X, add -Wl,-undefined,dynamic_lookup to driver invocation · baf3fbad
      gcc/jit/ChangeLog:
      	* jit-playback.c (invoke_driver): On OS X, add
      	"-Wl,-undefined,dynamic_lookup" to the driver arguments.
      
      From-SVN: r226882
      David Malcolm committed