1. 31 Jan, 2018 18 commits
    • Use pointer sized array indices. · 7a157266
      Using pointer sized variables (e.g. size_t / ptrdiff_t) when the
      variables are used as array indices allows accessing larger arrays,
      and can be a slight performance improvement due to no need for sign or
      zero extending, or masking.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* generated/cshift1_16.c (cshift1): Regenerated.
      	* generated/cshift1_4.c (cshift1): Regenerated.
      	* generated/cshift1_8.c (cshift1): Regenerated.
      	* generated/eoshift1_16.c (eoshift1): Regenerated.
      	* generated/eoshift1_4.c (eoshift1): Regenerated.
      	* generated/eoshift1_8.c (eoshift1): Regenerated.
      	* generated/eoshift3_16.c (eoshift3): Regenerated.
      	* generated/eoshift3_4.c (eoshift3): Regenerated.
      	* generated/eoshift3_8.c (eoshift3): Regenerated.
      	* generated/in_pack_c10.c (internal_pack_c10): Regenerated.
      	* generated/in_pack_c16.c (internal_pack_c16): Regenerated.
      	* generated/in_pack_c4.c (internal_pack_c4): Regenerated.
      	* generated/in_pack_c8.c (internal_pack_c8): Regenerated.
      	* generated/in_pack_i1.c (internal_pack_1): Regenerated.
      	* generated/in_pack_i16.c (internal_pack_16): Regenerated.
      	* generated/in_pack_i2.c (internal_pack_2): Regenerated.
      	* generated/in_pack_i4.c (internal_pack_4): Regenerated.
      	* generated/in_pack_i8.c (internal_pack_8): Regenerated.
      	* generated/in_pack_r10.c (internal_pack_r10): Regenerated.
      	* generated/in_pack_r16.c (internal_pack_r16): Regenerated.
      	* generated/in_pack_r4.c (internal_pack_r4): Regenerated.
      	* generated/in_pack_r8.c (internal_pack_r8): Regenerated.
      	* generated/in_unpack_c10.c (internal_unpack_c10): Regenerated.
      	* generated/in_unpack_c16.c (internal_unpack_c16): Regenerated.
      	* generated/in_unpack_c4.c (internal_unpack_c4): Regenerated.
      	* generated/in_unpack_c8.c (internal_unpack_c8): Regenerated.
      	* generated/in_unpack_i1.c (internal_unpack_1): Regenerated.
      	* generated/in_unpack_i16.c (internal_unpack_16): Regenerated.
      	* generated/in_unpack_i2.c (internal_unpack_2): Regenerated.
      	* generated/in_unpack_i4.c (internal_unpack_4): Regenerated.
      	* generated/in_unpack_i8.c (internal_unpack_8): Regenerated.
      	* generated/in_unpack_r10.c (internal_unpack_r10): Regenerated.
      	* generated/in_unpack_r16.c (internal_unpack_r16): Regenerated.
      	* generated/in_unpack_r4.c (internal_unpack_r4): Regenerated.
      	* generated/in_unpack_r8.c (internal_unpack_r8): Regenerated.
      	* generated/reshape_c10.c (reshape_c10): Regenerated.
      	* generated/reshape_c16.c (reshape_c16): Regenerated.
      	* generated/reshape_c4.c (reshape_c4): Regenerated.
      	* generated/reshape_c8.c (reshape_c8): Regenerated.
      	* generated/reshape_i16.c (reshape_16): Regenerated.
      	* generated/reshape_i4.c (reshape_4): Regenerated.
      	* generated/reshape_i8.c (reshape_8): Regenerated.
      	* generated/reshape_r10.c (reshape_r10): Regenerated.
      	* generated/reshape_r16.c (reshape_r16): Regenerated.
      	* generated/reshape_r4.c (reshape_r4): Regenerated.
      	* generated/reshape_r8.c (reshape_r8): Regenerated.
      	* generated/shape_i1.c (shape_1): Regenerated.
      	* generated/shape_i16.c (shape_16): Regenerated.
      	* generated/shape_i2.c (shape_2): Regenerated.
      	* generated/shape_i4.c (shape_4): Regenerated.
      	* generated/shape_i8.c (shape_8): Regenerated.
      	* generated/spread_c10.c (spread_scalar_c10): Regenerated.
      	* generated/spread_c16.c (spread_scalar_c16): Regenerated.
      	* generated/spread_c4.c (spread_scalar_c4): Regenerated.
      	* generated/spread_c8.c (spread_scalar_c8): Regenerated.
      	* generated/spread_i1.c (spread_scalar_i1): Regenerated.
      	* generated/spread_i16.c (spread_scalar_i16): Regenerated.
      	* generated/spread_i2.c (spread_scalar_i2): Regenerated.
      	* generated/spread_i4.c (spread_scalar_i4): Regenerated.
      	* generated/spread_i8.c (spread_scalar_i8): Regenerated.
      	* generated/spread_r10.c (spread_scalar_r10): Regenerated.
      	* generated/spread_r16.c (spread_scalar_r16): Regenerated.
      	* generated/spread_r4.c (spread_scalar_r4): Regenerated.
      	* generated/spread_r8.c (spread_scalar_r8): Regenerated.
      	* intrinsics/random.c (jump): Use size_t for array index in loop.
      	(getosrandom): Likewise.
      	(arandom_r4): Make n an index_type.
      	(arandom_r8): Likewise.
      	(arandom_r10): Likewise.
      	(arandom_r16): Likewise.
      	(scramble_seed): Use size_t for array index in loop.
      	* m4/cshift1.m4: Make i an index_type.
      	* m4/eoshift1.m4: Likewise.
      	* m4/eoshift3.m4: Likewise.
      	* m4/in_pack.m4: Make n an index_type.
      	* m4/in_unpack.m4: Likewise.
      	* m4/reshape.m4: Make n and dim index_type's.
      	* m4/shape.m4: Make n an index_type.
      	* m4/spread.m4: Likewise, use index_type argument rather than
      	copying to int.
      	* runtime/bounds.c (bounds_ifunction_return): Make n an
      	index_type.
      	* runtime/in_pack_generic.c (internal_pack): Likewise.
      	* runtime/in_unpack_generic.c (internal_unpack): Make n and size
      	index_type's.
      
      From-SVN: r257234
      Janne Blomqvist committed
    • PR 78534 Reinstate better string copy algorithm · 9f3dcd14
      As part of the change to larger character lengths, the string copy
      algorithm was temporarily pessimized to get around some spurious
      -Wstringop-overflow warnings.  Having tried a number of variations of
      this algorithm I have managed to get it down to one spurious warning,
      only with -O1 optimization, in the testsuite.  This patch reinstates
      the optimized variant and modifies this one testcase to ignore the
      warning.
      
      Regtested on x86_64-pc-linux-gnu.
      
      gcc/fortran/ChangeLog:
      
      2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/78534
      	* trans-expr.c (fill_with_spaces): Use memset instead of
      	generating loop.
      	(gfc_trans_string_copy): Improve opportunity to use builtins with
      	constant lengths.
      
      gcc/testsuite/ChangeLog:
      
      2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/78534
      	* gfortran.dg/allocate_deferred_char_scalar_1.f03: Prune
      	-Wstringop-overflow warnings due to spurious warning with -O1.
      	* gfortran.dg/char_cast_1.f90: Update dump scan pattern.
      	* gfortran.dg/transfer_intrinsic_1.f90: Likewise.
      
      From-SVN: r257233
      Janne Blomqvist committed
    • re PR tree-optimization/84132 (tree-data-ref.c:3938: poor coding ?) · 957a25ab
      2018-01-31  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84132
      	* tree-data-ref.c (analyze_miv_subscript): Properly
      	check whether evolution_function_is_affine_multivariate_p
      	before calling gcd_of_steps_may_divide_p.
      
      	* g++.dg/torture/pr84132.C: New testcase.
      
      From-SVN: r257232
      Richard Biener committed
    • pr81360.C: Drop unintended -O2 from dg-options and dg-final scan. · 8ede319f
      	* g++.dg/torture/pr81360.C: Drop unintended -O2 from dg-options and
      	dg-final scan.
      
      From-SVN: r257230
      Jan Hubicka committed
    • re PR target/83618 (_rdpid_u32 doesn't work on 64-bit targets as gas expects the 64-bit register) · e6c7bfdb
      PR target/83618
      
      gcc/
      	* config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
      	* config/i386/i386.md (rdpid_rex64) New.
      	(rdpid): Make 32bit only.
      
      gcc/testsuite/
      	* gcc.target/i386/rdpid.c: Remove "eax".
      
      From-SVN: r257229
      Julia Koval committed
    • re PR lto/84105 (Segmentation fault in pp_tree_identifier() during LTO) · 7aec1b82
      	PR lto/84105
      	* tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with
      	an IDENTIFIER_NODE for FUNCTION_TYPE's.
      
      From-SVN: r257228
      Aldy Hernandez committed
    • Revert · 73df9303
      	2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
      
      From-SVN: r257227
      Eric Botcazou committed
    • [AArch64] PR tree-optimization/64946: XFAIL gcc.target/aarch64/vect-abs-compile.c · 39058d4b
      This test has been failing since forever, it has never passed AFAIK.
      The PR details the vectoriser deficiency.
      I propose we xfail this with a reference to the PR.
      
              PR tree-optimization/64946
              * gcc.target/aarch64/vect-abs-compile.c: XFAIL byte and half-word
              scan-assembler checks.
      
      From-SVN: r257225
      Kyrylo Tkachov committed
    • re PR rtl-optimization/84071 (wrong elimination of zero-extension after sign-extended load) · ae20d760
      	PR rtl-optimization/84071
      	* combine.c (record_dead_and_set_regs_1): Record the source unmodified
      	for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target.
      
      From-SVN: r257224
      Eric Botcazou committed
    • [ARC] Add 'aux' variable attribute. · b6fb257b
      The 'aux' variable attribute is used to directly access the auxiliary
      register space from C.
      
      gcc/
      2018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * config/arc/arc.c (arc_handle_aux_attribute): New function.
              (arc_attribute_table): Add 'aux' attribute.
              (arc_in_small_data_p): Consider aux like variables.
              (arc_is_aux_reg_p): New function.
              (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables.
              (arc_get_aux_arg): New function.
              (prepare_move_operands): Handle aux-register access.
              (arc_handle_aux_attribute): New function.
              * doc/extend.texi (ARC Variable attributes): Add subsection.
      
      testsuite/
      2018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * gcc.target/arc/taux-1.c: New test.
              * gcc.target/arc/taux-2.c: Likewise.
      
      From-SVN: r257223
      Claudiu Zissulescu committed
    • [ARC] Add 'uncached' attribute. · 8180c03f
      The _Uncached type qualifier can be used to bypass the cache without
      resorting to declaring variables as volatile.
      
      gcc/
      2018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.
      	* config/arc/arc.c (arc_handle_uncached_attribute): New function.
      	(arc_attribute_table): Add 'uncached' attribute.
      	(arc_print_operand): Print '.di' flag for uncached memory
      	accesses.
      	(arc_in_small_data_p): Do not consider for small data the uncached
      	types.
      	(arc_is_uncached_mem_p): New function.
      	* config/arc/predicates.md (compact_store_memory_operand): Check
      	for uncached memory accesses.
      	(nonvol_nonimm_operand): Likewise.
      	* gcc/doc/extend.texi (ARC Type Attribute): New subsection.
      
      gcc/testsuite
      2018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/uncached.c: New test.
      
      From-SVN: r257222
      Claudiu Zissulescu committed
    • Fix gnat.dg/lto20.adb XPASS · 2f857e1b
      	PR lto/83954
      	* gnat.dg/lto20.adb: Remove dg-excess-errors.
      
      From-SVN: r257221
      Rainer Orth committed
    • re PR preprocessor/69869 (internal compiler error: Segmentation fault in call to… · 1306a81d
      re PR preprocessor/69869 (internal compiler error: Segmentation fault in call to skip_macro_block_comment when using '-traditional-cpp')
      
      	PR preprocessor/69869
      	* traditional.c (skip_macro_block_comment): Return bool, true if
      	the macro block comment is unterminated.
      	(copy_comment): Use return value from skip_macro_block_comment instead
      	of always false.
      
      	* gcc.dg/cpp/trad/pr69869.c: New test.
      
      From-SVN: r257220
      Jakub Jelinek committed
    • re PR c/84100 (Function __attribute__((optimize(align-loops=32))) gives spurious… · 7b56ebc3
      re PR c/84100 (Function __attribute__((optimize(align-loops=32))) gives spurious warning and is ignored)
      
      	PR c/84100
      	* common.opt (falign-functions=, falign-jumps=, falign-labels=,
      	falign-loops=): Add Optimization flag.
      
      	* gcc.dg/pr84100.c: New test.
      
      From-SVN: r257219
      Jakub Jelinek committed
    • go-gcc.cc (Gcc_backend::convert_tree): New private method. · ebc2f401
      	* go-gcc.cc (Gcc_backend::convert_tree): New private method.
      	(Gcc_backend::constructor_expression): Call it.
      	(Gcc_backend::assignment_statement): Likewise.
      	(Gcc_backend::temporary_variable): Likewise.
      
      Fixes https://golang.org/issue/#23606
      
      From-SVN: r257218
      Ian Lance Taylor committed
    • re PR target/84064 (ICE in ix86_expand_prologue related to… · 58375711
      re PR target/84064 (ICE in ix86_expand_prologue related to -fstack-clash-protection and memcpy on i686)
      
      	PR target/84064
      	* i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument
      	INT_REGISTERS_SAVED.  Check it prior to calling
      	get_scratch_register_on_entry.
      	(ix86_adjust_stack_and_probe): Similarly.
      	(ix86_emit_probe_stack_range): Similarly.
      	(ix86_expand_prologue): Corresponding changes.
      
      	PR target/84064
      	* gcc.target/i386/pr84064: New test.
      
      From-SVN: r257217
      Jeff Law committed
    • compiler: Function_type and Backend_function_type should not be identical · 61ddc5ea
          
          Function_type and Backend_function_type have different backend
          representations, so they should not be identical. Otherwise it
          confuses Type::type_btypes map.
          
          Reviewed-on: https://go-review.googlesource.com/90975
      
      From-SVN: r257216
      Ian Lance Taylor committed
    • Daily bump. · f0ab0c3a
      From-SVN: r257215
      GCC Administrator committed
  2. 30 Jan, 2018 22 commits