Commit Graph

140723 Commits

Author SHA1 Message Date
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
Richard Biener
2e96ac06b2 genmatch.c (parser::parse_expr): Improve error message for mis-placed flags.
2015-09-17  Richard Biener  <rguenther@suse.de>

	* genmatch.c (parser::parse_expr): Improve error message
	for mis-placed flags.

From-SVN: r227859
2015-09-17 11:02:11 +00:00
Richard Biener
bf2dbec420 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
2015-09-17 09:47:43 +00:00
Paul Thomas
e3b5d7bae1 re PR fortran/52846 ([F2008] Support submodules)
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
2015-09-17 09:09:34 +00:00
James Greenhalgh
fb0f04feaa [AArch64] Implement copysign[ds]f3
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
2015-09-17 08:23:05 +00:00
David S. Miller
bb6b3973cc Fix LRA regressions on 64-bit SPARC.
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
2015-09-17 00:54:07 -07:00
Richard Biener
b5415a9ebc cp-tree.h (note_decl_for_pch): Remove.
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
2015-09-17 07:48:09 +00:00
Kaz Kojima
8c464611a3 Fix build failure for SH.
* config/sh/sh.c (label_ref_list_d_pool): Adjust to object_allocator change.

From-SVN: r227845
2015-09-17 07:45:41 +00:00
Bin Cheng
e414252910 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
2015-09-17 03:40:18 +00:00
Bin Cheng
f3c5f3a325 tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New parameter.
* 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
2015-09-17 03:08:41 +00:00
Jeff Law
e8ae63bb6c [PATCH] Pass in avail_expr_stack and setup edge_infos earlier
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
2015-09-16 21:01:03 -06:00
James Bowman
a481f93b12 [FT32] Fix memory address space predicate.
gcc/

	* config/ft32/ft32.c Fix the memory address space predicate.

From-SVN: r227841
2015-09-17 02:29:25 +00:00
GCC Administrator
f0f51b9f2a Daily bump.
From-SVN: r227840
2015-09-17 00:16:12 +00:00
Kaz Kojima
a9a421e199 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
2015-09-17 00:12:57 +00:00
Jonathan Wakely
3036299861 Implement filesystem::canonical() without realpath
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
2015-09-16 23:50:28 +01:00
Manuel López-Ibáñez
4ec39494ac Move check_global_declaration from toplev.c to cgraphunit.c
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
2015-09-16 21:25:28 +00:00
Ian Lance Taylor
ca2fe289df compiler: Don't crash on erroneous channel reads.
Fixes golang/go#12320.
    
    Reviewed-on: https://go-review.googlesource.com/13932

From-SVN: r227834
2015-09-16 18:04:22 +00:00
David S. Miller
ea09f50d91 Fix endianness assumption in LRA.
gcc/
	* lra-constraints.c (simplify_operand_subreg): Do not assume that
	lowpart of a SUBREG has offset zero.

From-SVN: r227833
2015-09-16 10:46:21 -07:00
John Marino
35187a744c read_dir.f90: XFAIL this testcase on DragonFly.
2015-09-16  John Marino  <gnugcc@marino.st>

	* gfortran.dg/read_dir.f90: XFAIL this testcase on DragonFly.

From-SVN: r227832
2015-09-16 17:32:36 +00:00
Jeff Law
d31398011e [PATCH] Move code out of tree-ssa-dom into tree-ssa-scopedtables
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
2015-09-16 11:25:51 -06:00
Ian Lance Taylor
1d44db181f compiler: Don't crash on malformed numeric constants.
Fixes golang/go#11548.
    
    Reviewed-on: https://go-review.googlesource.com/13794

From-SVN: r227830
2015-09-16 17:21:33 +00:00
Paolo Carlini
48c6522f71 invoke.texi ([Wsubobject-linkage]): Extend documentation.
2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.

From-SVN: r227828
2015-09-16 15:14:39 +00:00
Segher Boessenkool
86b107aea1 shrink-wrap: Fix up partitions (PR67587)
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
2015-09-16 17:02:32 +02:00
Richard Biener
ae2ffe2a03 re PR tree-optimization/67253 (ICE at -O3 on x86_64-linux-gnu (verify_gimple failed))
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
2015-09-16 14:27:52 +00:00
Richard Biener
486bc8471f re PR middle-end/67271 (ICE with -O1,2,3 on darwin14.5 x86_64)
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
2015-09-16 14:26:04 +00:00
Eric Botcazou
b0463d3db4 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
2015-09-16 10:02:21 +00:00
Richard Biener
87261d2685 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
2015-09-16 07:25:15 +00:00
Mikhail Maltsev
fcb87c50b0 Share memory blocks between pool allocators
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
2015-09-16 00:56:54 +00:00
GCC Administrator
5e4e62af0c Daily bump.
From-SVN: r227816
2015-09-16 00:16:11 +00:00
Ian Lance Taylor
4ed054aee9 compiler: Report init dependency errors with builtin functions.
Fixes golang/go#12319.
    
    Reviewed-on: https://go-review.googlesource.com/13931

From-SVN: r227813
2015-09-15 23:12:03 +00:00
Ian Lance Taylor
a2bf11d16a libgo: If compiler can split-stack and linker can not, use -fno-split-stack.
If the compiler supports split-stack but we are using a gold linker that
    does not, as happens on PPC with current GCC but old gold, then we need
    to compile the Go code with -fno-split-stack to avoid a linker error
    avoid the inability to call from split-stack code to non-split-stack
    code.
    
    Reviewed-on: https://go-review.googlesource.com/14598

From-SVN: r227811
2015-09-15 21:15:37 +00:00
Max Filippov
c8338173d7 xtensa: fix xtensa_fallback_frame_state for call0 ABI
2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
	* config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
	definition.
	(DWARF_FRAME_REGISTERS): Reserve space for one extra register in
	call0 ABI.

libgcc/
	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state):
	Add support for call0 ABI.

From-SVN: r227809
2015-09-15 19:30:32 +00:00
Max Filippov
e1b8828bc8 xtensa: fix TLS calls for call0 ABI
2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
	* config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
	to pass TLS call argument, according to current ABI.
	* config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
	callx0 for TLS call, according to current ABI.

From-SVN: r227808
2015-09-15 19:24:26 +00:00
Eric Botcazou
cc6fbd8040 tree-eh.c (lower_try_finally_dup_block): Clear location information on stack restore statements.
* tree-eh.c (lower_try_finally_dup_block): Clear location information
	on stack restore statements.
	(decide_copy_try_finally): Do not consider a stack restore statement as
	coming from sources.

From-SVN: r227805
2015-09-15 17:57:49 +00:00
Uros Bizjak
10d48e7cd9 alpha.c (alpha_expand_block_clear): Use HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
* config/alpha/alpha.c (alpha_expand_block_clear): Use
	HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.

From-SVN: r227804
2015-09-15 19:50:15 +02:00
Marek Polacek
0e36f5c7c1 re PR c/67580 (Improve error message on missing "struct" tag)
PR c/67580
	* c-decl.c (tag_exists_p): New function.
	* c-parser.c (c_parser_declaration_or_fndef): Give a hint when
	struct/union/enum keywords are missing.
	* c-tree.h (tag_exists_p): Declare.

	* gcc.dg/pr67580.c: New test.

From-SVN: r227803
2015-09-15 17:19:11 +00:00
Ian Lance Taylor
c33c18cdc6 libgo: test linking split-stack and non-split-stack together
PPC has split-stack support in current GCC, but old version of gold will
    reject attempts to link PPC split-stack and non-split-stack code
    together.  Test for that, and don't compile the C code with
    -fsplit-stack if it doesn't work.
    
    Reviewed-on: https://go-review.googlesource.com/14594

From-SVN: r227802
2015-09-15 17:05:14 +00:00
Jeff Law
10e0393ceb [PATCH] More class-ification of DOM
PR tree-optimization/47679
	* tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
	methods and private members.
	(avail_exprs_stack): Similarly.  Change type of global
	from a pair of expr_hash_elt_t to the new class.
	(expr_elt_hasher::hash): Corresponding changes.
	(expr_elt_hasher::equal): Similarly.
	(avail_expr_hash): Similarly.
	(pass_dominator::execute): Similarly.
	(dom_opt_dom_walker::thread_across_edge): Similarly.
	(record_cond): Similarly.
	(dom_opt_dom_walker::before_dom_children): Similarly.
	(dom_opt_dom_walker::after_dom_children): Similarly.
	(lookup_avail_expr): Likewise.
	(initialize_hash_element): Now a expr_hash_elt constructor.
	(initialize_hash_element_from_expr): Similarly.
	(free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
	(free_expr_hash_elt): Call dtor for the element.
	(remove_local_expressions_from_table): Now the "pop_to_marker"
	method in the available_exprs_stack class.
	(avail_expr_stack::record_expr): Method factored out.
	(print_expr_hash_elt): Now a method in the expr_hash_elt class.
	Fix formatting.
	(hashable_expr_equal_p): Fix formatting.

From-SVN: r227801
2015-09-15 11:03:49 -06:00
David Malcolm
31bdd08a9d Change of location_get_source_line signature
gcc/ChangeLog:
	* input.h (location_get_source_line): Drop "expanded_location"
	param in favor of a file and line number.
	* input.c (location_get_source_line): Likewise.
	(dump_location_info): Update for change in signature of
	location_get_source_line.
	* diagnostic.c (diagnostic_print_caret_line): Likewise.

gcc/c-family/ChangeLog:
	* c-format.c (location_from_offset): Update for change in
	signature of location_get_source_line.
	* c-indentation.c (get_visual_column): Likewise.
	(line_contains_hash_if): Likewise.

From-SVN: r227800
2015-09-15 16:53:01 +00:00
Eric Botcazou
c55721c0df defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
* defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
	Bump to 4KB for SJLJ exceptions.
	(STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
	* doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
	* doc/tm.texi: Regenerate.

From-SVN: r227799
2015-09-15 16:25:59 +00:00
Kyrylo Tkachov
78dc36f80a [ARM] Fix arm bootstrap failure due to -Werror=shift-negative-value
* config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
	of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
	Update prototype.

From-SVN: r227798
2015-09-15 15:03:23 +00:00
Richard Biener
4f912f91a0 re PR tree-optimization/67470 (ICE at -O3 on x86_64-linux-gnu in compute_live_loop_exits, at tree-ssa-loop-manip.c:235)
2015-09-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67470
	* tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
	structure for PHI hoisting by inserting a forwarder block
	if appropriate.

	* gcc.dg/torture/pr67470.c: New testcase.

From-SVN: r227797
2015-09-15 14:10:10 +00:00
Christian Bruel
20adfc6c1c arm.c (TARGET_OPTION_PRINT): Define.
2015-09-15  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm.c (TARGET_OPTION_PRINT): Define.
	(arm_option_print): New function.

From-SVN: r227796
2015-09-15 15:46:57 +02:00
Christian Bruel
c8b6aa7c12 re PR target/52144 (ARM should support arm/thumb function attribute to permit different instruction sets in the same source)
2015-09-15  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
	* config/arm/arm-c.c (arm_cpu_builtins): Declare static.
	Remove flags parameter.
	* config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
	(TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
	(TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
	(TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
	(TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
	(TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
	(TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
	* gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.

From-SVN: r227795
2015-09-15 15:43:17 +02:00
Alan Lawrence
635e66fec3 [AArch64 array_mode 8/8] Add d-registers to TARGET_ARRAY_MODE_SUPPORTED_P
gcc/:

	* config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.

	* config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
	AARCH64_VALID_SIMD_DREG_MODE.

gcc/testsuite/:

	* gcc.target/aarch64/vect_int32x2x4_1.c: New.

From-SVN: r227794
2015-09-15 13:16:58 +00:00
Alan Lawrence
97755701af [AArch64 array_mode 7/8] Combine the expanders using VSTRUCT:nregs
* config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
	aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
	(aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
	(aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
	aarch64_ld4_lane<mode>): Combine together, making...
	(aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
	(aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
	aarch64_st4_lane<mode>): Combine together, making...
	(aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
	* config/aarch64/iterators.md (nregs): Add comment.

From-SVN: r227793
2015-09-15 13:09:45 +00:00
Marek Polacek
2f3bb934a1 c-decl.c (lookup_label): Return NULL_TREE instead of 0.
* c-decl.c (lookup_label): Return NULL_TREE instead of 0.
	(lookup_tag): Change the type of THISLEVEL_ONLY to bool.
	Return NULL_TREE instead of 0.
	(lookup_name): Return NULL_TREE instead of 0.
	(lookup_name_in_scope): Likewise.
	(shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
	(parser_xref_tag): Use false instead of 0.
	(start_struct): Use true instead of 1.
	(start_enum): Use true instead of 1 and NULL_TREE instead of 0.

From-SVN: r227791
2015-09-15 12:48:50 +00:00