1. 18 Dec, 2015 19 commits
  2. 17 Dec, 2015 21 commits
    • [PATCH] Limit path splitting to loops we optimize for speed · 72ca20f9
      	* 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
      Jeff Law committed
    • ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the source function. · aa398781
      	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
      Nathan Sidwell committed
    • C FE: improvements to ranges of bad return values · 94c40e19
      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
      David Malcolm committed
    • replace ISL with isl · e357a5e0
      From-SVN: r231784
      Sebastian Pop committed
    • move all isl include files to graphite.h · 616e2b4a
      	* 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
      Sebastian Pop committed
    • avr.h (MOVE_MAX): Set value to 1. · 998f15f3
              * 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
      Senthil Kumar Selvaraj committed
    • re PR c++/67550 (Initialization of local struct array with elements of global… · 62f9ab0d
      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
      Jason Merrill committed
    • re PR c++/67576 (expression of typeid( expression ) is evaluated twice) · 6ef15591
      	PR c++/67576
      
      	PR c++/25466
      	* rtti.c (build_typeid): Use save_expr, not stabilize_reference.
      
      From-SVN: r231776
      Jason Merrill committed
    • MAINTAINERS (Write After Approval): Add Myself. · 1ad2439b
      2015-12-17  Andris Pavenis  <andris.pavenis@iki.fi>
      
              * MAINTAINERS (Write After Approval): Add Myself.
      
      From-SVN: r231775
      Andris Pavenis committed
    • obsolete the interix target · d5666d39
      gcc/ChangeLog:
      
      2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* config.gcc: mark *-interix* as obsolete.
      
      From-SVN: r231774
      Trevor Saunders committed
    • obsolete openbsd 2.0 and 3.X · d287b660
      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
      Trevor Saunders committed
    • mark *-knetbsd-* as obsolete · 5e67ea83
      gcc/ChangeLog:
      
      2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* config.gcc: Mark knetbsd targets as obsolete.
      
      From-SVN: r231772
      Trevor Saunders committed
    • nvptx.h (NVPTX_RETURN_REGNUM, [...]): Renumber. · a2e2a4e4
      	* 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
      Nathan Sidwell committed
    • re PR tree-optimization/68946 (ICE at -O3 on x86_64-linux-gnu in both 32- and… · 6379dfb5
      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
      Richard Biener committed
    • Wunused-var-13.c: Requires label values. · b1dc39e5
      	* c-c++-common/Wunused-var-13.c: Requires label values.
      	* gcc.dg/torture/pr46216.c: Likewise.
      
      From-SVN: r231769
      Nathan Sidwell committed
    • DWARF: describe properly Ada packed arrays · 2d595887
      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
      Pierre-Marie de Rodat committed
    • DWARF: add a language hook for scalar biased types · 69c5f9d7
      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
      Pierre-Marie de Rodat committed
    • DWARF: create a macro for max dimensions for array descr. lang. hook · 98088266
      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
      Pierre-Marie de Rodat committed
    • DWARF: describe Ada dynamic arrays as proper arrays · 24bd3c6e
      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
      Pierre-Marie de Rodat committed
    • DWARF: add a language hook for fixed-point types · 2971780e
      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
      Pierre-Marie de Rodat committed
    • DWARF: add a language hook to override types in debugging information · eb59e428
      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
      Pierre-Marie de Rodat committed