1. 17 Sep, 2015 27 commits
    • 2015-09-17 François Dumont <fdumont@gcc.gnu.org> · 814e52ca
      	* 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
      François Dumont committed
    • Implement N4295 fold-expressions. · 378b307d
      	* 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
      Andrew Sutton committed
    • posix.c (backtrace_open): Cast second argument of open() to int. · 750cdaf7
      2015-09-17  Ian Lance Taylor  <iant@google.com>
      
              * posix.c (backtrace_open): Cast second argument of open() to int.
      
      From-SVN: r227881
      Ian Lance Taylor committed
    • arm.md (*call_value_symbol): Fix operand for interworking. · 1eb50e95
      2015-09-17  Christian Bruel  <christian.bruel@st.com>
      
      	* config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
      
      From-SVN: r227880
      Christian Bruel committed
    • Handle alignment in __atomic_is_lock_free · 310055e7
      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
      Jonathan Wakely committed
    • re PR rtl-optimization/66790 (Invalid uninitialized register handling in REE) · 308fbc42
      	PR rtl-optimization/66790
      	* df-problems.c (LIVE): Amend documentation.
      
      From-SVN: r227874
      Eric Botcazou committed
    • Remove non-deterministic part of canonical() test · 01610fec
      	* testsuite/experimental/filesystem/operations/canonical.cc: Remove
      	non-deterministic part of the test.
      
      From-SVN: r227873
      Jonathan Wakely committed
    • Make std::random_device retry after short reads · a2b4d73d
      	PR libstdc++/65142
      	* src/c++11/random.cc (random_device::_M_getval()): Retry after short
      	reads.
      
      From-SVN: r227872
      Jonathan Wakely committed
    • Remove redundant conditional expressions in <system_error> · 2eb57e54
      	* include/std/system_error (error_code::operator bool(),
      	error_condition::operator bool()): Remove redundant conditional
      	expression.
      
      From-SVN: r227871
      Jonathan Wakely committed
    • Only do shrink_to_fit() when exceptions enabled · 99f04955
      	* 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
      Jonathan Wakely committed
    • Split up optabs.[hc] · 385399a8
      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
      Richard Sandiford committed
    • compiler: Issue channel type errors earlier. · a78eb72a
          
          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
      Ian Lance Taylor committed
    • re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic stack checking) · 4fb94ef9
      	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
      Eric Botcazou committed
    • genmatch.c (parser::parse_expr): Improve error message for mis-placed flags. · 2e96ac06
      2015-09-17  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (parser::parse_expr): Improve error message
      	for mis-placed flags.
      
      From-SVN: r227859
      Richard Biener committed
    • passes.c (rest_of_decl_compilation): Always call early_global_decl debug hook… · bf2dbec4
      passes.c (rest_of_decl_compilation): Always call early_global_decl debug hook when we created a varpool node.
      
      2015-09-17  Richard Biener  <rguenther@suse.de>
      
      	* passes.c (rest_of_decl_compilation): Always call early_global_decl
      	debug hook when we created a varpool node.
      	* dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
      	dwarf2out_early_global_decl, when not just add location or
      	value attributes to existing DIEs.
      
      From-SVN: r227857
      Richard Biener committed
    • re PR fortran/52846 ([F2008] Support submodules) · e3b5d7ba
      2015-09-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	PR fortran/67588
      	* module.c : Add static no_module_procedures.
      	(gfc_match_submodule): Correct memory leakage caused during the
      	freeing of use_lists.
      	(mio_symbol_attribute): Reset above if module procedure is
      	encountered.
      	(gfc_dump_module): Set above and exit without writing smod file
      	if it reset.
      	* gfortran.texi : Add section on submodule support.
      
      2015-09-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* gfortran.dg/public_private_module_5.f90: Add module procedure
      	trigger_smod to ensure that the smod file is written.
      
      From-SVN: r227855
      Paul Thomas committed
    • [AArch64] Implement copysign[ds]f3 · fb0f04fe
      gcc/
      
      	* config/aarch64/aarch64.md (copysigndf3): New.
      	(copysignsf3): Likewise.
      
      gcc/testsuite/
      
      	* gcc.target/aarch64/copysign_1.c: New.
      	* gcc.target/aarch64/copysign_2.c: New.
      
      From-SVN: r227849
      James Greenhalgh committed
    • Fix LRA regressions on 64-bit SPARC. · bb6b3973
      gcc/
      	* config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
      	Declare.
      	* config/sparc/sparc.c (sparc_secondary_memory_needed): New
      	function.
      	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
      	(HARD_REGNO_CALLER_SAVE_MODE): Define.
      	* config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
      	(setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
      	(embmedany_losum, embmedany_brsum, embmedany_textuhi)
      	(embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
      	provide when flag_pic.
      
      From-SVN: r227847
      David S. Miller committed
    • cp-tree.h (note_decl_for_pch): Remove. · b5415a9e
      2015-09-17  Richard Biener  <rguenther@suse.de>
      
      	* cp-tree.h (note_decl_for_pch): Remove.
      	* class.c (build_clone): Do not call note_decl_for_pch.
      	* semantics.c (finish_member_declaration): Likewise.
      	(note_decl_for_pch): Remove.
      	* decl2.c (c_parse_final_cleanups): Mangle all globals before
      	writing the PCH.
      
      From-SVN: r227846
      Richard Biener committed
    • Fix build failure for SH. · 8c464611
      * config/sh/sh.c (label_ref_list_d_pool): Adjust to object_allocator change.
      
      From-SVN: r227845
      Kaz Kojima committed
    • re PR tree-optimization/66388 (Test gcc.target/i386/pr49781-1.c failed because… · e4142529
      re PR tree-optimization/66388 (Test gcc.target/i386/pr49781-1.c failed because of recent scev overflow patches.)
      
      
      	PR tree-optimization/66388
      	* tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New
      	fields.
      	(dump_iv): Dump no_overflow information.
      	(alloc_iv): Initialize new field for struct iv.
      	(mark_bivs): Count number of no_overflow bivs.
      	(find_deriving_biv_for_expr, record_biv_for_address_use): New
      	functions.
      	(idx_find_step): Call new functions above.
      	(add_candidate_1, add_candidate): New paramter.
      	(add_iv_candidate_for_biv): Add sizetype cand for BIV.
      	(get_computation_aff): Simplify convertion of cand for BIV.
      	(get_computation_cost_at): Step cand's base if necessary.
      
      From-SVN: r227844
      Bin Cheng committed
    • tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New parameter. · f3c5f3a3
      
      	* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
      	parameter.
      	(tree_simplify_using_condition): Ditto.
      	(simplify_using_initial_conditions): Ditto.
      	(loop_exits_before_overflow): Pass new argument to function
      	simplify_using_initial_conditions.  Remove case for type conversions
      	simplification.
      	* tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
      	parameter.
      	* tree-scalar-evolution.c (simple_iv): Simplify type conversions
      	in iv base using loop initial conditions.
      
      	gcc/testsuite/ChangeLog
      	* gcc.dg/tree-ssa/loop-bound-2.c: New test.
      	* gcc.dg/tree-ssa/loop-bound-4.c: New test.
      	* gcc.dg/tree-ssa/loop-bound-6.c: New test.
      
      From-SVN: r227843
      Bin Cheng committed
    • [PATCH] Pass in avail_expr_stack and setup edge_infos earlier · e8ae63bb
      	PR tree-optimization/47679
      	* tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
      	(free_all_edge_infos): Use it.
      	(allocate_edge_info): Free preexisting edge info data.
      	(pass_dominator::execute): Set up initial edge info structures.
      	(dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
      	thread_across_edge.
      	* tree-ssa-threadedge.c (thread_across_edge): Accept new argument.  If
      	non-null, then push/pop markers appropriately.
      	* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
      	* tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
      	thread-across_edge.
      
      From-SVN: r227842
      Jeff Law committed
    • [FT32] Fix memory address space predicate. · a481f93b
      gcc/
      
      	* config/ft32/ft32.c Fix the memory address space predicate.
      
      From-SVN: r227841
      James Bowman committed
    • Daily bump. · f0f51b9f
      From-SVN: r227840
      GCC Administrator committed
    • re PR target/67573 ([SH] wrong code generated for… · a9a421e1
      re PR target/67573 ([SH] wrong code generated for libstdc++-v3/src/c++11/cxx11-shim_facets.cc at -mlra)
      
      PR target/67573
      * config/sh/sh.md: Add early clobber to scratch	operand of *call_*pcrel
      insn_and_split so not to CSE scratch reg.
      
      From-SVN: r227837
      Kaz Kojima committed
  2. 16 Sep, 2015 13 commits