1. 18 Aug, 2015 14 commits
    • re PR middle-end/36757 (__builtin_signbit should be type-generic) · 61717a45
      	PR middle-end/36757
      
      	* builtins.c (expand_builtin_signbit): Add asserts to make sure
      	we can expand BUILT_IN_SIGNBIT inline.
      	* builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
      	* doc/extend.texi: Document the type-generic __builtin_signbit.
      
      	* c-common.c (check_builtin_function_arguments): Add check
      	for BUILT_IN_SIGNBIT argument.
      
      	* gcc.dg/builtins-error.c: Add checks for __builtin_signbit.
      	* gcc.dg/tg-tests.h: Add checks for __builtin_signbit.
      
      From-SVN: r226990
      Francois-Xavier Coudert committed
    • re PR rtl-optimization/67218 (Combine incorrectly folds (double) (float) (unsigned)) · a1c045ca
      gcc/
      	PR rtl-optimization/67218
      	* simplify-rtx.c (exact_int_to_float_conversion_p): New function.
      	(simplify_unary_operation_1): Use it.
      
      gcc/testsuite/
      	PR rtl-optimization/67218
      	* gcc.c-torture/execute/ieee/pr67218.c,
      	gcc.target/aarch64/fcvt_int_float_double1.c,
      	gcc.target/aarch64/fcvt_int_float_double2.c,
      	gcc.target/aarch64/fcvt_int_float_double3.c,
      	gcc.target/aarch64/fcvt_int_float_double4.c,
      	gcc.target/aarch64/fcvt_uint_float_double1.c,
      	gcc.target/aarch64/fcvt_uint_float_double2.c,
      	gcc.target/aarch64/fcvt_uint_float_double3.c,
      	gcc.target/aarch64/fcvt_uint_float_double4.c: New tests.
      
      From-SVN: r226987
      Richard Sandiford committed
    • re PR c++/67216 (false is still a null pointer constant) · f641b2d6
      	PR c++/67216
      	* testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc:
      	Fix use of safe-bool idiom that isn't valid in C++11.
      
      From-SVN: r226986
      Jonathan Wakely committed
    • re PR libstdc++/67066 (libstdc++-v3/src/filesystem/dir.cc fails to compile with… · 4c2b10d6
      re PR libstdc++/67066 (libstdc++-v3/src/filesystem/dir.cc fails to compile with --enable-concept-checks)
      
      	PR libstdc++/67066
      	* doc/xml/manual/configure.xml (manual.intro.setup.configure): Add
      	caveats for --enable-concept-checks. Improve link text.
      	* doc/xml/manual/diagnostics.xml (std.diagnostics.concept_checking):
      	Clarify caveats.
      	* doc/html/*: Regenerate.
      	* include/bits/stl_deque.h (deque): Only use concept checks in C++03.
      	* include/bits/stl_stack.h (stack): Likewise.
      	* include/bits/stl_vector.h (vector): Likewise.
      
      From-SVN: r226984
      Jonathan Wakely committed
    • atomic-comp-swap-release-acquire.c: Adjust dg-options to disable LSE extensions. · f6e93c21
      	* gcc.target/aarch64/atomic-comp-swap-release-acquire.c: Adjust
      	dg-options to disable LSE extensions.
      	* gcc.target/aarch64/atomic-op-acq_rel.c: Likewise.
      	* gcc.target/aarch64/atomic-op-acquire.c: Likewise.
      	* gcc.target/aarch64/atomic-op-char.c: Likewise.
      	* gcc.target/aarch64/atomic-op-consume.c: Likewise.
      	* gcc.target/aarch64/atomic-op-imm.c: Likewise.
      	* gcc.target/aarch64/atomic-op-int.c: Likewise.
      	* gcc.target/aarch64/atomic-op-long.c: Likewise.
      	* gcc.target/aarch64/atomic-op-relaxed.c: Likewise.
      	* gcc.target/aarch64/atomic-op-seq_cst.c: Likewise.
      	* gcc.target/aarch64/atomic-op-release.c: Likewise.
      	* gcc.target/aarch64/atomic-op-short.c: Likewise.
      	* gcc.target/aarch64/sync-comp-swap.c: Likewise.
      	* gcc.target/aarch64/sync-op-acquire.c: Likewise.
      	* gcc.target/aarch64/sync-op-full.c: Likewise.
      	* gcc.target/aarch64/sync-op-release.c: Likewise.
      
      From-SVN: r226979
      Matthew Wahab committed
    • re PR c++/67160 (static_assert feature test macro) · 329524f5
      c-family/
      2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67160
      	* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
      	in c++1z mode.
      
      testsuite/
      2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67160
      	* g++.dg/cpp1z/feat-cxx1z.C: New.
      
      From-SVN: r226972
      Paolo Carlini committed
    • re PR middle-end/67222 (ICE in gimple_call_arg with bogus posix_memalign) · 41dd7cf7
      	PR middle-end/67222
      	* gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
      	if the call isn't valid.
      	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
      	gimple_call_builtin_p.
      	(call_may_clobber_ref_p_1): Likewise.
      	(stmt_kills_ref_p): Likewise.
      
      	* gcc.dg/torture/pr67222.c: New test.
      
      From-SVN: r226969
      Marek Polacek committed
    • [MIPS] Fix register renaming in the interrupt handlers. · ec8a2131
      gcc/
      	* config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
      	* config/mips/mips.c (mips_hard_regno_rename_ok): New function.
      	(mips_hard_regno_scratch_ok): Likewise.
      	(TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
      	* config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
      
      gcc/testsuite/
      	* gcc.target/mips/interrupt_handler-bug-1.c: New test.
      
      From-SVN: r226968
      Robert Suchanek committed
    • tree-ssa-loop-niter.c (refine_value_range_using_guard): New. · 7b008bbc
      
      	* tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
      	(determine_value_range): Call refine_value_range_using_guard for
      	each loop initial condition to improve value range.
      
      	gcc/testsuite/ChangeLog
      	* gcc.dg/tree-ssa/loop-bound-1.c: New test.
      	* gcc.dg/tree-ssa/loop-bound-3.c: New test.
      	* gcc.dg/tree-ssa/loop-bound-5.c: New test.
      
      From-SVN: r226966
      Bin Cheng committed
    • xtensa: fix _Unwind_GetCFA · 991995c4
      Returning context->cfa in _Unwind_GetCFA makes CFA point one stack frame
      higher than what was actually used by code at context->ra. This results
      in invalid CFA value in signal frames and premature unwinding completion
      in forced unwinding used by uClibc NPTL thread cancellation.
      Returning context->sp from _Unwind_GetCFA makes all CFA values valid and
      matching code that used them.
      
      2015-08-18  Max Filippov  <jcmvbkbc@gmail.com>
      libgcc/
      	* config/xtensa/unwind-dw2-xtensa.c (_Unwind_GetCFA): Return
      	context->sp instead of context->cfa.
      
      From-SVN: r226964
      Max Filippov committed
    • 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 5 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