Commit graph

143385 commits

Author SHA1 Message Date
Jeff Law
72ca20f9cb [PATCH] Limit path splitting to loops we optimize for speed
* doc/invoke.texi (-O2 options): Remove -fsplit-paths.
	(-O3 options): Add -fsplit-paths.
	* gimple-ssa-split-paths.c: Include predict.h
	(split_paths): Only split paths in a loop that should be
	optimized for speed.
	* opts.c (default_options_table): Move -fsplit-paths from -O2 to
	-O3.

	* gcc.dg/tree-ssa/split-path-1.c: Explicitly ask for path
	splitting optimizations.

From-SVN: r231790
2015-12-17 16:33:44 -07:00
Nathan Sidwell
aa3987819a ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the source function.
gcc/
	* ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the
	source function.

	gcc/testsuite/
	* gcc.dg/ipa/ipa-icf-merge-1.c: New.

From-SVN: r231787
2015-12-17 21:29:30 +00:00
David Malcolm
94c40e19af C FE: improvements to ranges of bad return values
gcc/c/ChangeLog:
	* c-parser.c (c_parser_statement_after_labels): When calling
	c_finish_return, Use the return expression's location if it has
	one, falling back to the location of the first token within it.
	* c-typeck.c (c_finish_return): When issuing warnings about
	the incorrect presence/absence of a return value, issue a note
	showing the declaration of the function.

gcc/testsuite/ChangeLog:
	* gcc.dg/diagnostic-range-bad-return.c: New test case.

From-SVN: r231786
2015-12-17 21:25:36 +00:00
Sebastian Pop
e357a5e03c replace ISL with isl
From-SVN: r231784
2015-12-17 18:50:05 +00:00
Sebastian Pop
616e2b4a9a move all isl include files to graphite.h
* graphite-dependences.c: Move all isl include files to...
	* graphite-isl-ast-to-gimple.c: Same.
	* graphite-optimize-isl.c: Same.
	* graphite-poly.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite.c: Same.
	* graphite.h: ... here.

From-SVN: r231783
2015-12-17 17:52:17 +00:00
Senthil Kumar Selvaraj
998f15f3b6 avr.h (MOVE_MAX): Set value to 1.
* config/avr/avr.h (MOVE_MAX): Set value to 1.
        (MOVE_MAX_PIECES): Define.
        (MOVE_RATIO): Define.
        * config/avr/avr.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P):
        Provide target hook.
        (avr_use_by_pieces_infrastructure_p): New function.

From-SVN: r231782
2015-12-17 19:55:39 +03:00
Jason Merrill
62f9ab0d43 re PR c++/67550 (Initialization of local struct array with elements of global array yields zeros instead of initializer values)
PR c++/67550

	* init.c (constant_value_1): Don't return a CONSTRUCTOR missing
	non-constant elements.

From-SVN: r231777
2015-12-17 11:51:58 -05:00
Jason Merrill
6ef15591e3 re PR c++/67576 (expression of typeid( expression ) is evaluated twice)
PR c++/67576

	PR c++/25466
	* rtti.c (build_typeid): Use save_expr, not stabilize_reference.

From-SVN: r231776
2015-12-17 11:51:52 -05:00
Andris Pavenis
1ad2439bea MAINTAINERS (Write After Approval): Add Myself.
2015-12-17  Andris Pavenis  <andris.pavenis@iki.fi>

        * MAINTAINERS (Write After Approval): Add Myself.

From-SVN: r231775
2015-12-17 18:42:21 +02:00
Trevor Saunders
d5666d39e3 obsolete the interix target
gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: mark *-interix* as obsolete.

From-SVN: r231774
2015-12-17 15:21:29 +00:00
Trevor Saunders
d287b66097 obsolete openbsd 2.0 and 3.X
gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: Mark openbsd 2.0 and 3.X as obsolete.

From-SVN: r231773
2015-12-17 15:21:24 +00:00
Trevor Saunders
5e67ea833d mark *-knetbsd-* as obsolete
gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: Mark knetbsd targets as obsolete.

From-SVN: r231772
2015-12-17 15:21:18 +00:00
Nathan Sidwell
a2e2a4e427 nvptx.h (NVPTX_RETURN_REGNUM, [...]): Renumber.
* config/nvptx/nvptx.h (NVPTX_RETURN_REGNUM, FRAME_POINTER_REGNUM,
	ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Renumber.
	(REGISTER_NAMES): Update and rename.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
	(enum_reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Reformat.

From-SVN: r231771
2015-12-17 15:06:03 +00:00
Richard Biener
6379dfb5fe re PR tree-optimization/68946 (ICE at -O3 on x86_64-linux-gnu in both 32- and 64-bit modes (in vect_analyze_stmt, at tree-vect-stmts.c:8013))
2015-12-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68946
	* tree-vect-slp.c (vect_slp_analyze_node_operations): Push
	SLP def type to stmt operands one stmt at a time.

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

From-SVN: r231770
2015-12-17 14:30:53 +00:00
Nathan Sidwell
b1dc39e5ec Wunused-var-13.c: Requires label values.
* c-c++-common/Wunused-var-13.c: Requires label values.
	* gcc.dg/torture/pr46216.c: Likewise.

From-SVN: r231769
2015-12-17 14:21:57 +00:00
Pierre-Marie de Rodat
2d5958875d DWARF: describe properly Ada packed arrays
gcc/ada/ChangeLog:

	* gcc-interface/ada-tree.h
	(TYPE_IMPLEMENTS_PACKED_ARRAY_P, TYPE_CAN_HAVE_DEBUG_TYPE_P,
	TYPE_ORIGINAL_PACKED_ARRAY, SET_TYPE_ORIGINAL_PACKED_ARRAY): New
	macros.
	* gcc-interface/decl.c (add_parallel_type_for_packed_array):
	Rename to associate_original_type_to_packed_array.  When
	-fgnat-encodings=minimal, set original packed array type as so
	instead of as a parallel type to the implementation type.  In
	this case, also rename the implementation type to the name of
	the original array type.
	(gnat_to_gnu_entity): Update invocations to
	add_parallel_type_for_packed_array.  Tag ARRAY_TYPE nodes for
	packed arrays with the TYPE_PACKED flag.
	When -fgnat-encodings=minimal:
	  - strip ___XP suffixes in packed arrays' names;
	  - set the debug type for padding records around packed arrays
	    to the packed array;
	  - do not attach ___XUP types as parallel types of constrained
	    array types.
	* gcc-interface/misc.c (gnat_print_type): Update to handle
	orignal packed arrays.
	(gnat_get_debug_type): Update to reject packed arrays
	implementation types.
	(get_array_bit_stride): New.
	(gnat_get_array_descr_info): Add packed arrays handling.
	* gcc-interface/utils.c (maybe_pad_type): When
	-fgnat-encodings=minimal, set the name of the padding type to
	the one of the original packed type, if any.  Fix TYPE_DECL
	peeling around the name of the input type.

From-SVN: r231768
2015-12-17 14:10:32 +00:00
Pierre-Marie de Rodat
69c5f9d7b5 DWARF: add a language hook for scalar biased types
Front-ends like GNAT for Ada sometimes use biased encodings for integral
types.  This change creates a new language hook so that the bias
information can make it into the debugging information back-end and
introduces an experimental DWARF attribute to hold it.

gcc/ada/ChangeLog:

	* gcc-interface/misc.c (gnat_get_type_bias): New.
	(LANG_HOOKS_GET_TYPE_BIAS): Redefine macro to implement the
	get_type_bias language hook.

gcc/ChangeLog:

	* langhooks.h (struct lang_hooks_for_types): New get_bias_field.
	* langhooks-def.h (LANG_HOOKS_GET_TYPE_BIAS): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
	get_bias_field.
	* dwarf2out.c
	(base_type_die): In non-strict DWARF mode, invoke the
	get_type_bias language hook for INTEGER_TYPE nodes.  If it
	returns a bias, emit an attribute for it.
	(subrange_type_die): Change signature to handle bias.  If
	non-strict DWARF mode, emit an attribute for it, if one passed.
	(modified_type_die): For subrange types, invoke the
	get_type_bias langage hook and pass the bias to
	subrange_type_die.

From-SVN: r231767
2015-12-17 14:10:24 +00:00
Pierre-Marie de Rodat
98088266e5 DWARF: create a macro for max dimensions for array descr. lang. hook
The array descriptor language hook can hold the description of a limited
number of array dimensions.  This macro will ease preventing overflow in
front-ends.

gcc/ada/ChangeLog:

	* gcc-interface/misc.c (gnat_get_array_descr_info): When the
	array has more dimensions than the language hook can handle,
	fall back to a nested arrays description.  Handle context-less
	array types.

gcc/ChangeLog:

	* dwarf2out.h (DWARF2OUT_ARRAY_DESCR_INFO_MAX_DIMEN): New macro.
	(struct array_descr_info): Use it for the dimensions array's
	size.
	* dwarf2out.c (gen_type_die_with_usage): Check that the array
	descr. language hook does not return an array with more
	dimensions that it should.

From-SVN: r231766
2015-12-17 14:10:12 +00:00
Pierre-Marie de Rodat
24bd3c6e80 DWARF: describe Ada dynamic arrays as proper arrays
gcc/ada/ChangeLog:

	* gcc-interface/decl.c (gnat_to_gnu_entity): When
	-fgnat-encodings-minimal, do not add ___XUP/XUT suffixes to type
	names and do not generate ___XA parallel types.
	* gcc-interface/misc.c (gnat_get_array_descr_info): Match fat
	and thin pointers and generate the corresponding array type
	descriptions.

From-SVN: r231765
2015-12-17 14:10:03 +00:00
Pierre-Marie de Rodat
2971780e40 DWARF: add a language hook for fixed-point types
Support for fixed-point types in GCC is not powerful enough for Ada
fixed-point types: GNAT uses regular scalar types to implement them.
This new language hook makes it possible to output the desired debugging
information anyway.

gcc/ada/ChangeLog:

	* gcc-interface/ada-tree.def (POWER_EXPR): New binary operation.
	* gcc-interface/ada-tree.h (TYPE_FIXED_POINT_P): New macro.
	(TYPE_IS_FIXED_POINT_P): New macro.
	(TYPE_SCALE_FACTOR): New macro.
	(SET_TYPE_SCALE_FACTOR): New macro.
	* gcc-interface/decl.c: Include urealp.h
	(gnat_to_gnu_entity): Attach trees to encode scale factors to
	fixed-point types.
	* gcc-interface/misc.c (gnat_print_type): Print scale factors
	for fixed-point types.
	(gnat_get_fixed_point_type_info): New.
	(gnat_init_ts): Initialize data for the POWER_EXPR binary
	operation.
	(LANG_HOOKS_GET_FIXED_POINT_INFO): Redefine macro to implement
	the get_fixed_point_type_info language hook.

gcc/ChangeLog:

	* langhooks.h (struct lang_hooks_for_types): Add a
	get_fixed_point_type_info field.
	* langhooks-def.h (LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO): New
	macro.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
	get_fixed_point_type_info field.
	* dwarf2out.h (enum fixed_point_scale_factor): New.
	(struct fixed_point_type_info): New.
	* dwarf2out.c (base_type_die): In DWARFv3 or non-strict DWARF
	mode, get fixed-point type information using the debugging hook
	and describe it in DWARF, if any.

From-SVN: r231764
2015-12-17 14:09:55 +00:00
Pierre-Marie de Rodat
eb59e42800 DWARF: add a language hook to override types in debugging information
Many artificial types are introduced by GNAT in order to satisfy
constraints in GCC's internal trees or to generate optimal code.  These
hide original types from sources and miss useful information in the
debugging information or add noise to it and make debugging confusing.
This change introduces a new language hook to give a chance to
front-ends to restore the source types in the debugging information.

This change also enhance the array descriptor language hook to handle
array-wide bit/byte stride.  Some arrays may contain dynamically-sized
objects.  Debuggers need for these a hint to know the size allocated for
each element, hence the need for the array-wide bit/byte stride.

The Ada front-end is enhanced to take advantage of both hooks when
-fgnat-encodings=minimal, in order to keep compatibility with GDB.

gcc/ada/ChangeLog:

	* gcc-interface/ada-tree.h (struct lang_type): Rename the t
	field as t1 and add a t2 one.
	(get_lang_specific): New.
	(GET_TYPE_LANG_SPECIFIC): Refactor to use get_lang_specific.
	(SET_TYPE_LANG_SPECIFIC): Likewise.
	(GET_TYPE_LANG_SPECIFIC2): New macro.
	(SET_TYPE_LANG_SPECIFIC2): New macro.
	(TYPE_DEBUG_TYPE): New macro.
	(SET_TYPE_DEBUG_TYPE): New macro.
	* gcc-interface/decl.c (gnat_to_gnu_entity): When
	-fgnat-encodings=minimal, set padding types' debug type to the
	padded one (i.e. strip ___PAD GNAT encodings) and set
	constrained record subtypes's debug type to the base type.
	* gcc-interface/misc.c (gnat_print_type): Print debug types.
	(gnat_get_debug_type): New.
	(gnat_get_array_descr_info): When -fgnat-encodings=minimal, set
	a byte stride for arrays that contain a type whose debug type
	has variable length.
	(LANG_HOOKS_GET_DEBUG_TYPE): Redefine macro to implement the
	debug type language hook.
	* gcc-interface/utils.c (maybe_pad_type): When
	-fgnat-encodings=minimal, set padding types' debug type to the
	padded one.  Restore XVZ variables creation when
	-fgnat-encodings-minimal and use them to hold padding types'
	byte size.  For library-level padding types, share this variable
	across translation units.  Tag XVZ variables as artificial.

gcc/ChangeLog:

	* langhooks.h (struct lang_hooks_for_types): Add a
	get_debug_type field.
	* langhooks-def.h (LANG_HOOKS_GET_DEBUG_TYPE): New macro.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
	get_debug_type field.
	* dwarf2out.h (struct array_descr_info): Add an array-wide
	stride field.
	* dwarf2out.c (modified_type_die): Invoke the get_debug_type
	language hook, process its result instead, if any.
	(gen_descr_array_type_die): Add array-wide stride processing.

From-SVN: r231763
2015-12-17 14:09:45 +00:00
Pierre-Marie de Rodat
986ccd2171 DWARF: handle variable-length records and variant parts
Enhance the DWARF back-end to emit proper descriptions for
variable-length records as well as variant parts in records.

In order to achieve this, generate DWARF expressions ("location
descriptions" in dwarf2out's parlance) for size and data member location
attributes.  Also match QUAL_UNION_TYPE data types as variant parts,
assuming the formers appear only to implement the latters (which is the
case at the moment: only the Ada front-end emits them).

Note that very few debuggers can handle these descriptions (GDB does not
yet), so in order to ease the the transition enable these only when
-fgnat-encodings=minimal.

gcc/ada/ChangeLog:

	* gcc-interface/decl.c (gnat_to_gnu_entity): Disable ___XVS GNAT
	encodings when -fgnat-encodings=minimal.
	(components_to_record): Disable ___XVE, ___XVN, ___XVU and
	___XVZ GNAT encodings when -fgnat-encodings=minimal.
	* gcc-interface/utils.c (maybe_pad_type): Disable __XVS GNAT
	encodings when -fgnat-encodings=minimal.

gcc/ChangeLog:

	* debug.h (struct gcc_debug_hooks): Add a new size_function
	hook.
	* debug.c (do_nothing_debug_hooks): Set the size_function field
	to no-op.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* stor-layout.c (finalize_size_functions): Let the debug info
	back-end know about the implementation of size functions.
	* dwarf2out.h (dw_discr_list_ref): New typedef.
	(enum dw_val_class): Add value classes for discriminant values
	and discriminant lists.
	(struct dw_discr_value): New structure.
	(struct dw_val_node): Add discriminant values and discriminant
	lists to the union.
	(struct dw_loc_descr_node): Add frame_offset_rel and
	dw_loc_frame_offset (only for checking) fields to handle DWARF
	procedures generation.
	(struct dw_discr_list_node): New structure.
	* dwarf2out.c (dwarf2out_size_function): New.
	(dwarf2_debug_hooks): Set the size_function field to
	dwarf2out_size_function.
	(dwarf2_lineno_debug_hooks): Set the size_function field to
	no-op.
	(new_loc_descr): Initialize the
	dw_loc_frame_offset field.
	(dwarf_proc_stack_usage_map): New.
	(dw_val_equal_p): Handle discriminants.
	(size_of_discr_value): New.
	(size_of_discr_list): New.
	(size_of_die): Handle discriminants.
	(add_loc_descr_to_each): New.
	(add_loc_list): New.
	(print_discr_value): New.
	(print_dw_val): Handle discriminants.
	(value_format): Handle discriminants.
	(output_discr_value): New.
	(output_die): Handle discriminants.
	(output_loc_operands): Handle DW_OP_call2 and DW_OP_call4.
	(uint_loc_descriptor): New.
	(uint_comparison_loc_list): New.
	(loc_list_from_uint_comparison): New.
	(add_discr_value): New.
	(add_discr_list): New.
	(AT_discr_list): New.
	(loc_descr_to_next_no_op): New.
	(free_loc_descr): New.
	(loc_descr_without_nops): New.
	(struct loc_descr_context): Add a dpi field.
	(struct dwarf_procedure_info): New helper structure.
	(new_dwarf_proc_die): New.
	(is_handled_procedure_type): New.
	(resolve_args_picking_1): New.
	(resolve_args_picking): New.
	(function_to_dwarf_procedure): New.
	(copy_dwarf_procedure): New.
	(copy_dwarf_procs_ref_in_attrs): New.
	(copy_dwarf_procs_ref_in_dies): New.
	(break_out_comdat_types): Copy DWARF procedures along with the
	types that reference them.
	(loc_list_from_tree): Rename into loc_list_from_tree_1.  Handle
	CALL_EXPR in the cases suitable for DWARF procedures.  Handle
	for PARM_DECL when generating a location description for a DWARF
	procedure.  Handle big unsigned INTEGER_CST nodes.  Handle
	NON_LVALUE_EXPR, EXACT_DIV_EXPR and all unsigned comparison
	operators.  Add a wrapper for loc_list_from_tree that strips
	DW_OP_nop operations from the result.
	(type_byte_size): New.
	(struct vlr_context): New helper structure.
	(field_byte_offset): Change signature to return either a
	constant offset or a location description for dynamic ones.
	Handle dynamic byte offsets with constant bit offsets and handle
	fields in variant parts.
	(add_data_member_location): Change signature to handle dynamic
	member offsets and fields in variant parts.  Update call to
	field_byte_offset.  Handle location lists.  Emit a variable data
	member location only when -fgnat-encodings=minimal.
	(add_bound_info): Emit self-referential bounds only when
	-fgnat-encodings=minimal.
	(add_byte_size_attribute): Use type_byte_size in order to handle
	dynamic type sizes.  Emit variable byte size only when
	-fgnat-encodings=minimal and when the target DWARF version
	allows them.
	(add_bit_offset_attribute): Change signature to handle
	variable-length records.  Update call to field_byte_offset.
	(gen_descr_array_type_die): Update call to gen_field_die.
	Update loc_descr_context literal.
	(gen_type_die_for_member): Likewise.
	(gen_subprogram_die): Update calls to get_decl_die.
	(gen_field_die): Change signature to handle variable-length
	records.  Update calls to add_bit_offset_attribute and
	add_data_member_location_attribute.
	(gen_inheritance_die): Update call to
	add_data_member_location_attribute.
	(gen_decl_die): Change signature to handle variable-length
	records.  Update call to gen_field_die.
	(gen_inheritance_die): Change signature to handle
	variable-length records.  Update call to
	add_data_member_location_attribute.
	(is_variant_part): New.
	(analyze_discr_in_predicate): New.
	(get_discr_value): New.
	(analyze_variants_discr): New.
	(gen_variant_part): New.
	(gen_member_die): Update calls to gen_decl_die.  Call instead
	gen_variant_part for variant parts.
	(gen_type_die_with_usage): Update calls to gen_decl_die.
	(process_scope_var): Likewise.
	(force_decl_die): Likewise.
	(declare_in_namespace): Likewise.
	(dwarf2out_decl): Likewise.
	(prune_unused_types_walk_loc_descr): New.
	(prune_unused_types_walk_attribs): Mark DIEs referenced by
	location descriptions and loc. descr. lists.
	(prune_unused_types_walk): Don't mark DWARF procedures by
	default.  Mark variant parts since nothing is supposed to
	reference them.
	(dwarf2out_init): Allocate dwarf_proc_stack_usage_map.
	(dwarf2out_c_finalize): Deallocate and reset
	dwarf_proc_stack_usage_map.

gcc/testsuite/ChangeLog:

	* gnat.dg/specs/debug1.ads: Update the expected number of
	DW_AT_artificial attribute in compiler output.

From-SVN: r231762
2015-12-17 14:09:36 +00:00
Pierre-Marie de Rodat
6592d14b43 Add a flag to control the balance between GNAT encodings and std. DWARF
In order to accomodate the debugger's support evolution for "new" DWARF
constructs, we need to have an flag that controls the amount of GNAT
encodings/standard DWARF information that is emitted in the debug info.
Propagate this new parameter into the Ada front-end.

gcc/ChangeLog:

	* common.opt (gnat_encodings): New variable
	(dwarf_gnat_encodings): New enum type.
	(fgnat_encodings): New option.
	* flag-types.h (enum dwarf_gnat_encodings): New.

gcc/ada/ChangeLog:

	* gcc-interface/misc.c (gnat_encodings): Undefine macro and
	declare a global variable.
	(gnat_post_options): Initialize this global from options.

From-SVN: r231761
2015-12-17 14:09:26 +00:00
Nathan Sidwell
70decafb4d isl.m4 (ISL_CHECK_VERSION): Add gmp libs.
* config/isl.m4 (ISL_CHECK_VERSION): Add gmp libs.
	* configure: Regenerate.

From-SVN: r231759
2015-12-17 13:56:45 +00:00
Christian Bruel
b52b98849f tree.h (TYPE_MODE_RAW): New macro.
2015-12-17  Christian Bruel  <christian.bruel@st.com>

	* tree.h (TYPE_MODE_RAW): New macro.
	* tree-streamer-out.c (pack_ts_type_common_value_fields):
	Replace TYPE_MODE by TYPE_MODE_RAW.

From-SVN: r231758
2015-12-17 14:56:05 +01:00
Jakub Jelinek
2833da1d2a re PR tree-optimization/68835 (ICE in set_value_range, at tree-vrp.c:387, with __int128 bit field)
PR tree-optimization/68835
	* tree.c (get_int_cst_ext_nunits): Return
	cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1
	for all unsigned wi::neg_p (cst) constants.
	(build_new_int_cst): If cst.get_precision is not a multiple
	of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision
	% HOST_BITS_PER_WIDE_INT.

	* gcc.dg/pr68835-1.c: New test.
	* gcc.dg/pr68835-2.c: New test.

From-SVN: r231757
2015-12-17 14:52:25 +01:00
Patrick Palka
4fae9c1012 Fix wrong PR references
PR c++/59878 -> PR c++/59879

From-SVN: r231755
2015-12-17 13:30:04 +00:00
Richard Biener
8ee38286c3 re PR tree-optimization/68951 (ICE in vect_update_misalignment_for_peel)
2015-12-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68951
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
	Ignore strided non-group accesses.

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

From-SVN: r231754
2015-12-17 12:34:27 +00:00
Andrew Burgess
a30c5ca4c1 arc.c (arc_loop_hazard): Don't convert the jump label rtx to an rtx_insn until we confirm it's not a...
2015-12-17  Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.c (arc_loop_hazard): Don't convert the jump label
        rtx to an rtx_insn until we confirm it's not a return rtx.
gcc/testsuite:
        * gcc.target/arc/loop-hazard-1.c: New file

From-SVN: r231752
2015-12-17 10:53:43 +00:00
Richard Biener
38fc3edcb9 gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls field.
2015-12-17  Richard Biener  <rguenther@suse.de>

	* gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls
	field.
	* tree-ssa.c (delete_tree_ssa): Do not zero it.

From-SVN: r231751
2015-12-17 10:15:03 +00:00
Rainer Orth
01704e5ad9 Only support -gstabs on Mac OS X if assember supports it (PR target/67973)
gcc:
	PR target/67973
	* configure.ac (gcc_cv_as_stabs_directive): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/darwin.h (DBX_DEBUGGING_INFO): Wrap in
	HAVE_AS_STABS_DIRECTIVE.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include
	DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE.

	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
	attributes): Document stabs.

	gcc/testsuite:
	PR target/67973
	* lib/target-supports.exp (check_effective_target_stabs): New
	proc.
	* g++.dg/cpp0x/alias-decl-debug-0.C: Restrict to stabs targets.
	* g++.dg/other/PR23205.C: Likewise.
	* g++.dg/other/pr23205-2.C: Likewise.
	* gcc.dg/20040813-1.c: Likewise.
	* gcc.dg/darwin-20040809-2.c: Likewise.
	* objc.dg/stabs-1.m: Likewise.

From-SVN: r231747
2015-12-17 09:23:08 +00:00
Andrew Burgess
761f6ae919 jump-around-jump.c (rtc_set_time): Declare.
2015-12-17  Andrew Burgess  <andrew.burgess@embecosm.com>

        * gcc.target/arc/jump-around-jump.c (rtc_set_time): Declare.

From-SVN: r231746
2015-12-17 09:04:35 +00:00
Thomas Preud'homme
09204fa9fc revert: re PR testsuite/68629 (FAIL: c-c++-common/attr-simd-3.c)
2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    Revert:
    2015-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR testsuite/68629
    * lib/target-supports.exp (check_effective_target_cilkplus): Also
    check that compiling with -fcilkplus does not give an error.
    * c-c++-common/attr-simd-3.c: Require cilkplus effective target.

From-SVN: r231745
2015-12-17 08:43:48 +00:00
Patrick Palka
f85e1317f8 Fix some blockers of PR c++/24666 (arrays decay to pointers too early)
gcc/cp/ChangeLog:

	PR c++/16333
	PR c++/41426
	PR c++/59878
	PR c++/66895
	* typeck.c (convert_for_initialization): Don't perform an early
	decaying conversion if converting to a class type.

gcc/testsuite/ChangeLog:

	PR c++/16333
	PR c++/41426
	PR c++/59878
	PR c++/66895
	* g++.dg/conversion/pr16333.C: New test.
	* g++.dg/conversion/pr41426.C: New test.
	* g++.dg/conversion/pr59878.C: New test.
	* g++.dg/conversion/pr66895.C: New test.

From-SVN: r231736
2015-12-17 04:01:47 +00:00
Patrick Palka
5fdfa03e79 Avoid code duplication in cp_tree_[operand|code]_length
gcc/cp/ChangeLog:

	* tree.c (cp_tree_operand_length): Define in terms of
	cp_tree_code_length.

From-SVN: r231735
2015-12-17 03:46:27 +00:00
Martin Sebor
a2f325f94a Correct ChangeLogs for PR c++/42121 and related.
From-SVN: r231734
2015-12-16 18:38:35 -07:00
Martin Sebor
7585d94ffe PR c/68868 - atomic_init emits an unnecessary fence
gcc/ChangeLog
	* ginclude/stdatomic.h (atomic_init): Use atomic_store instead
	of plain assignment.
gcc/testsuite/ChangeLog
	* testsuite/gcc.dg/atomic/stdatomic-init.c: New test.

From-SVN: r231733
2015-12-16 18:33:41 -07:00
Michael Meissner
9393bc31a2 re PR target/68805 (ICE while var-tracking in simplify_binary_operation_1 with -g and -mvsx-timode)
[gcc]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68805
	* config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE
	instead of VEC_SELECT for TImode.

	* config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to
	VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead
	of using VEC_SELECT.
	(VSX_LE_128): Likewise.
	(define_peephole2): Add peephole to eliminate double xxpermdi when
	copying TImode.

[gcc/testsuite]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68805
	* gcc.target/powerpc/pr68805.c: New test.

From-SVN: r231732
2015-12-17 01:01:24 +00:00
GCC Administrator
b880bd5dab Daily bump.
From-SVN: r231731
2015-12-17 00:16:12 +00:00
John David Anglin
ad7e0b44ae re PR target/68779 (HPPA/PARISC 32-bit Linux kernel build triggers multiple ICEs)
PR target/68779
	* config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs.
	(atomic_loaddi_1): Likewise.
	(atomic_storedi): Likewise.
	(atomic_storedi_1): Likewise.
	(atomic_loaddf): Likewise.
	(atomic_loaddf_1): Likewise.
	(atomic_storedf): Likewise.
	(atomic_storedf_1): Likewise.
	Move all atomic patterns to end of file.

From-SVN: r231727
2015-12-17 00:11:55 +00:00
Martin Sebor
f3b5cf3ddc PR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
PR objc++/68932  - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
                   (internal compiler error)

cp/
	* decl.c (grokdeclarator): Avoid assuming ctype is non-null when
	checking the validity of a flexible array member.

testsuite/
	* obj-c++.dg/property/at-property-23.mm: Remove check for
	an error message.

From-SVN: r231726
2015-12-16 16:56:27 -07:00
Abderrazek Zaafrani
9625f2a27c attach schedule tree to the scop
we used to translate the just computed schedule tree into a union_map,
and then in the code generation it would be translated back to a schedule tree
just before generating AST code.

From-SVN: r231725
2015-12-16 23:40:06 +00:00
Paolo Carlini
6cb6583c5f pt.c (comp_template_args): Remove.
2015-12-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (comp_template_args): Remove.
	(comp_template_args_with_info): Rename to comp_template_args;
	not static.
	(add_pending_template): Adjust call.
	* cp-tree.h (comp_template_args): Add default arguments.

From-SVN: r231723
2015-12-16 21:45:14 +00:00
Nathan Sidwell
f95ff97f09 ipa-visibility.c (can_replace_by_local_alias): Make static, check ASM_OUTPUT_DEF.
* ipa-visibility.c (can_replace_by_local_alias): Make static,
	check ASM_OUTPUT_DEF.
	(can_replace_by_local_alias_in_vtable): Make static.
	(function_and_variable_visibility): Reformat overlong comment.

From-SVN: r231721
2015-12-16 21:05:39 +00:00
Jeff Law
60b5526fd6 ree.c (add_removable_extension): Use reg_overlap_mentioned_p rather than testing hard register #s.
* ree.c (add_removable_extension): Use reg_overlap_mentioned_p
	rather than testing hard register #s.

From-SVN: r231719
2015-12-16 13:34:31 -07:00
Nathan Sidwell
5563d5c09a nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
* config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
	(REGISTER_NAMES): Adjust.
	* config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line.
	(nvptx_static_hain): Delete.
	(write_arg_mode): Don't emit initializer if argno < 0.
	(write_arg_type): Fix whitespace.
	(init_frame): Initialize reg to zero if frame is zero-sized.
	(nvptx_declare_function_name):  Use write_arg_type to emit chain
	decl.
	(nvptx_output_call_insn): Adjust static chain emission.
	(nvptx_goacc_reduction): Make static.
	(TARGET_STATIC_CHAIN): Don't override.

From-SVN: r231718
2015-12-16 20:02:02 +00:00
Jeff Law
7ee2e7f6ef * gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield.
From-SVN: r231717
2015-12-16 11:53:25 -07:00
Jason Merrill
4793cbbaa5 re PR c++/68309 (ICE: Segmentation fault)
PR c++/68309
	* pt.c (instantiate_decl): Revert earlier change.

From-SVN: r231714
2015-12-16 13:22:23 -05:00
Jason Merrill
65016251f6 re PR c++/63628 ([c++1y] cannot use decltype on captured arg-pack)
PR c++/63628
	* pt.c (tsubst_pack_expansion): Also make dummy decls if
	retrieve_local_specialization fails.

From-SVN: r231713
2015-12-16 13:22:17 -05:00
David Malcolm
de67c4c379 Better error recovery for merge-conflict markers
gcc/c-family/ChangeLog:
	* c-common.h (conflict_marker_get_final_tok_kind): New prototype.
	* c-lex.c (conflict_marker_get_final_tok_kind): New function.

gcc/c/ChangeLog:
	* c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
	to 4.
	(c_parser_peek_nth_token): New function.
	(c_parser_peek_conflict_marker): New function.
	(c_parser_error): Detect conflict markers and report them as such.

gcc/cp/ChangeLog:
	* parser.c (cp_lexer_peek_conflict_marker): New function.
	(cp_parser_error): Detect conflict markers and report them as
	such.

gcc/testsuite/ChangeLog:
	* c-c++-common/conflict-markers-1.c: New testcase.
	* c-c++-common/conflict-markers-2.c: Likewise.
	* c-c++-common/conflict-markers-3.c: Likewise.
	* c-c++-common/conflict-markers-4.c: Likewise.
	* c-c++-common/conflict-markers-5.c: Likewise.
	* c-c++-common/conflict-markers-6.c: Likewise.
	* c-c++-common/conflict-markers-7.c: Likewise.
	* c-c++-common/conflict-markers-8.c: Likewise.
	* c-c++-common/conflict-markers-9.c: Likewise.
	* c-c++-common/conflict-markers-10.c: Likewise.
	* c-c++-common/conflict-markers-11.c: Likewise.
	* g++.dg/conflict-markers-1.C: Likewise.

From-SVN: r231712
2015-12-16 18:15:01 +00:00