1. 17 Sep, 2015 18 commits
    • 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 15 commits
    • Implement filesystem::canonical() without realpath · 30362998
      	PR libstdc++/67173
      	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check _XOPEN_VERSION
      	and PATH_MAX for _GLIBCXX_USE_REALPATH.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* src/filesystem/ops.cc: (canonical) [!_GLIBCXX_USE_REALPATH]: Add
      	alternative implementation.
      	* testsuite/experimental/filesystem/operations/canonical.cc: New.
      	* testsuite/experimental/filesystem/operations/exists.cc: Add more
      	tests.
      	* testsuite/experimental/filesystem/operations/absolute.cc: Add test
      	variables.
      	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
      	* testsuite/experimental/filesystem/operations/current_path.cc:
      	Likewise.
      	* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
      	* testsuite/experimental/filesystem/operations/status.cc: Likewise.
      	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
      	Likewise.
      
      From-SVN: r227836
      Jonathan Wakely committed
    • Move check_global_declaration from toplev.c to cgraphunit.c · 4ec39494
      Unfortunately, toplev.c is a kitchen sink of things that do not belong anywhere
      in particular. For example, check_global_declarations is only used in
      cgraphunit.c. Moving it there allows us to make it static and remove one call
      to symtab_node::get.
      
      gcc/ChangeLog:
      
      2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* toplev.h (check_global_declaration): Remove declaration.
      	* toplev.c (check_global_declaration): Move to ...
      	* cgraphunit.c: ... here. Make it static and pass a symtab_node *.
      	(analyze_functions): Update call.
      
      From-SVN: r227835
      Manuel López-Ibáñez committed
    • compiler: Don't crash on erroneous channel reads. · ca2fe289
          
          Fixes golang/go#12320.
          
          Reviewed-on: https://go-review.googlesource.com/13932
      
      From-SVN: r227834
      Ian Lance Taylor committed
    • Fix endianness assumption in LRA. · ea09f50d
      gcc/
      	* lra-constraints.c (simplify_operand_subreg): Do not assume that
      	lowpart of a SUBREG has offset zero.
      
      From-SVN: r227833
      David S. Miller committed
    • read_dir.f90: XFAIL this testcase on DragonFly. · 35187a74
      2015-09-16  John Marino  <gnugcc@marino.st>
      
      	* gfortran.dg/read_dir.f90: XFAIL this testcase on DragonFly.
      
      From-SVN: r227832
      John Marino committed
    • [PATCH] Move code out of tree-ssa-dom into tree-ssa-scopedtables · d3139801
      	PR tree-optimization/47679
      	* tree-ssa-dom.c (enum expr_kind): Moved from here to
      	tree-ssa-scopedtables.h.
      	(struct hashable_expr, class expr_hash_elt): Likewise.
      	(struct expr_elt_hasher, class avail_exprs_stack): Likewise.
      	Move associated methods into tree-ssa-scopedtables.c.
      	(avail_expr_hash, initialize_expr_from_cond): Similarly.
      	(hashable_expr_equal_p, add_expr_commutative): Likewise.
      	(add_hashable_expr): Likewise.
      	(record_cond): Delete element directly.
      	* tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
      	private copy ctor and assignment operator methods.
      	(expr_elt_hasher): Inline trivial methods.
      	(initialize_expr_from_cond): Prototype.
      	* tree-ssa-scopedtables.c: Add necessary includes, functions and
      	methods that were previously in tree-ssa-dom.c.  Improve various
      	comments.
      
      From-SVN: r227831
      Jeff Law committed
    • compiler: Don't crash on malformed numeric constants. · 1d44db18
          
          Fixes golang/go#11548.
          
          Reviewed-on: https://go-review.googlesource.com/13794
      
      From-SVN: r227830
      Ian Lance Taylor committed
    • invoke.texi ([Wsubobject-linkage]): Extend documentation. · 48c6522f
      2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
      
      From-SVN: r227828
      Paolo Carlini committed
    • shrink-wrap: Fix up partitions (PR67587) · 86b107ae
      With the new shrink-wrap algorithm, blocks reachable both with and
      without prologue are duplicated, and their incoming edges are then
      distributed accordingly.  So we need to call fixup_partitions.
      
      
      2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	PR bootstrap/67587
      	* function.c (rest_of_handle_thread_prologue_and_epilogue): Call
      	fixup_partitions.
      
      From-SVN: r227827
      Segher Boessenkool committed
    • re PR tree-optimization/67253 (ICE at -O3 on x86_64-linux-gnu (verify_gimple failed)) · ae2ffe2a
      2015-09-16  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/67253
      	* cfgexpand.c (expand_gimple_stmt_1): Do not clobber
      	location of possibly shared trees.
      
      	* gcc.dg/torture/pr67253.c: New testcase.
      
      From-SVN: r227826
      Richard Biener committed
    • re PR middle-end/67271 (ICE with -O1,2,3 on darwin14.5 x86_64) · 486bc847
      2015-09-16  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/67271
      	* fold-const.c (native_encode_expr): Bail out on bogus offsets.
      
      	* gcc.dg/pr67271.c: New testcase.
      
      From-SVN: r227825
      Richard Biener committed
    • tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for offset and… · b0463d3d
      tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for offset and size computations instead of HOST_WIDE_INT.
      
      	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
      	offset and size computations instead of HOST_WIDE_INT.
      
      From-SVN: r227819
      Eric Botcazou committed
    • re PR middle-end/67442 (GCC 5.2.0 on x86_64 creates invalid address on specific… · 87261d26
      re PR middle-end/67442 (GCC 5.2.0 on x86_64 creates invalid address on specific array index calculation through pointer)
      
      2015-09-16  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/67442
      	* fold-const.c (extract_muldiv_1): Properly extend multiplication
      	result before builting a tree via wide_int_to_tree.
      
      	* gcc.dg/torture/pr67442.c: New testcase.
      
      From-SVN: r227818
      Richard Biener committed
    • Share memory blocks between pool allocators · fcb87c50
      gcc/
      	* Makefile.in: Add memory-block.cc
      	(pool_allocator::initialize): Use fixed block size.
      	(pool_allocator::release): Use memory_block_pool.
      	(pool_allocator::allocate): Likewise.
      	* asan.c (asan_mem_ref_pool): Adjust to use common block size in all
      	object pools.
      	* cfg.c (initialize_original_copy_tables): Likewise.
      	* cselib.c (elt_list_pool, elt_loc_list_pool,
      	cselib_val_pool): Likewise.
      	* df-problems.c (df_chain_alloc): Likewise.
      	* df-scan.c (df_scan_alloc): Likewise.
      	* dse.c (cse_store_info_pool, rtx_store_info_pool,
      	read_info_type_pool, insn_info_type_pool, bb_info_pool,
      	group_info_pool, deferred_change_pool): Likewise.
      	* et-forest.c (et_nodes, et_occurrences): Likewise.
      	* ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
      	ipcp_agg_lattice_pool): Likewise.
      	* ipa-inline-analysis.c (edge_predicate_pool): Likewise.
      	* ipa-profile.c (histogram_pool): Likewise.
      	* ipa-prop.c (ipa_refdesc_pool): Likewise.
      	* ira-build.c (live_range_pool, allocno_pool, object_pool,
      	initiate_cost_vectors, pref_pool, copy_pool): Likewise.
      	* ira-color.c (update_cost_record_pool): Likewise.
      	* lra-lives.c (lra_live_range_pool): Likewise.
      	* lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
      	* memory-block.cc: New file.
      	* memory-block.h: New file.
      	* regcprop.c (queued_debug_insn_change_pool): Use common block size.
      	* sched-deps.c (sched_deps_init): Likewise.
      	* sel-sched-ir.c (sched_lists_pool): Likewise.
      	* stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
      	* tree-sra.c (access_pool): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	* tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
      	* tree-ssa-reassoc.c (operand_entry_pool): Likewise.
      	* tree-ssa-sccvn.c (allocate_vn_table): Likewise.
      	* tree-ssa-strlen.c (strinfo_pool): Likewise.
      	* tree-ssa-structalias.c (variable_info_pool): Likewise.
      	* var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
      	location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
      
      gcc/c-family/
      	* c-format.c (check_format_arg): Adjust to use common block size in all
      	object pools.
      
      From-SVN: r227817
      Mikhail Maltsev committed
    • Daily bump. · 5e4e62af
      From-SVN: r227816
      GCC Administrator committed
  3. 15 Sep, 2015 7 commits