1. 08 Jan, 2018 25 commits
    • quad-float128.h (IBM128_TYPE): Explicitly use __ibm128, instead of trying to use long double. · d5eea0f7
      2018-01-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/quad-float128.h (IBM128_TYPE): Explicitly use
      	__ibm128, instead of trying to use long double.
      	(CVT_FLOAT128_TO_IBM128): Use TFtype instead of __float128 to
      	accomidate -mabi=ieeelongdouble multilibs.
      	(CVT_IBM128_TO_FLOAT128): Likewise.
      	* config/rs6000/ibm-ldouble.c (IBM128_TYPE): New macro to define
      	the appropriate IBM extended double type.
      	(__gcc_qadd): Change all occurances of long double to IBM128_TYPE.
      	(__gcc_qsub): Likewise.
      	(__gcc_qmul): Likewise.
      	(__gcc_qdiv): Likewise.
      	(pack_ldouble): Likewise.
      	(__gcc_qneg): Likewise.
      	(__gcc_qeq): Likewise.
      	(__gcc_qne): Likewise.
      	(__gcc_qge): Likewise.
      	(__gcc_qle): Likewise.
      	(__gcc_stoq): Likewise.
      	(__gcc_dtoq): Likewise.
      	(__gcc_itoq): Likewise.
      	(__gcc_utoq): Likewise.
      	(__gcc_qunord): Likewise.
      	* config/rs6000/_mulkc3.c (toplevel): Include soft-fp.h and
      	quad-float128.h for the definitions.
      	(COPYSIGN): Use the f128 version instead of the q version.
      	(INFINITY): Likewise.
      	(__mulkc3): Use TFmode/TCmode for float128 scalar/complex types.
      	* config/rs6000/_divkc3.c (toplevel): Include soft-fp.h and
      	quad-float128.h for the definitions.
      	(COPYSIGN): Use the f128 version instead of the q version.
      	(INFINITY): Likewise.
      	(FABS): Likewise.
      	(__divkc3): Use TFmode/TCmode for float128 scalar/complex types.
      	* config/rs6000/extendkftf2-sw.c (__extendkftf2_sw): Likewise.
      	* config/rs6000/trunctfkf2-sw.c (__trunctfkf2_sw): Likewise.
      
      From-SVN: r256353
      Michael Meissner committed
    • expr.c (gfc_check_pointer_assign): Fix typo in comment. · a4f759de
      2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* expr.c (gfc_check_pointer_assign): Fix typo in comment.
      
      From-SVN: r256352
      Steven G. Kargl committed
    • rs6000-string.c (do_load_for_compare_from_addr): New function. · 5ec3397e
      2018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New
      	function.
      	(do_ifelse): New function.
      	(do_isel): New function.
      	(do_sub3): New function.
      	(do_add3): New function.
      	(do_load_mask_compare): New function.
      	(do_overlap_load_compare): New function.
      	(expand_compare_loop): New function.
      	(expand_block_compare): Call expand_compare_loop() when appropriate.
      	* config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change
      	option description.
      	(-mblock-compare-inline-loop-limit): New option.
      
      From-SVN: r256351
      Aaron Sawdey committed
    • re PR rtl-optimization/81308 (ICE in calc_dfs_tree, at dominance.c:458) · 5a2a87e1
      	PR rtl-optimizatin/81308
      	* tree-switch-conversion.c (cfg_altered): New file scoped static.
      	(process_switch): If group_case_labels makes a change, then set
      	cfg_altered.
      	(pass_convert_switch::execute): If a switch is converted, then
      	set cfg_altered.  Return TODO_cfg_cleanup if cfg_altered is true.
      
      	PR rtl-optimizatin/81308
      	* g++.dg/pr81308-1.C: New test.
      	* g++.dg/pr81308-2.C: New test.
      
      From-SVN: r256349
      Jeff Law committed
    • re PR rtl-optimization/81308 (ICE in calc_dfs_tree, at dominance.c:458) · b9a4d2ba
      	PR rtl-optimization/81308
      	* recog.c (split_all_insns): Conditionally cleanup the CFG after
      	splitting insns.
      
      From-SVN: r256348
      Jeff Law committed
    • rs6000.c (rs6000_legitimate_combined_insn): Updated with the new names of the… · 7f047768
      rs6000.c (rs6000_legitimate_combined_insn): Updated with the new names of the branch decrement patterns...
      
      * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
      	with the new names of the branch decrement patterns, and added the
      	names of the branch decrement conditional patterns.
      
      From-SVN: r256347
      Aaron Sawdey committed
    • PR target/83663 - Revert r255946 · 647c61f1
      gcc/
      
      2018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
      
      	PR target/83663 - Revert r255946
      	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
      	generation for cases where splatting a value is not useful.
      	* simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
      	across a vec_duplicate and a paradoxical subreg forming a vector
      	mode to a vec_concat.
      
      gcc/testsuite/
      
      2018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
      
      	PR target/83663 - Revert r255946
      	* gcc.target/aarch64/vect-slp-dup.c: New.
      
      From-SVN: r256346
      Vidya Praveen committed
    • [arm] Add -march=armv8.3-a and dotprod multilib selection rules · a00a4222
      We don't have the t-aprofile, t-multilib and t-arm-elf mapping
      rules for multilibs when using the variants of -march=armv8.3-a
      and the dotproduct extension.
      This patch adds them. -march=armv8.3-a behaves in the same
      way as -march=armv8.2-a in this regard.
      
      Bootstrapped and tested with the aprofile multilib list.
      Checked that --print-multi-directory gives sensible results
      with armv8.3-a options and extensions.
      I've also added some armv8.3-a, fp16 and dotprod
      combination tests to multilib.exp
      
      	* config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for
      	-march=armv8.3-a variants.
      	* config/arm/t-multilib: Likewise.
      	* config/arm/t-arm-elf: Likewise.  Handle dotprod extension.
      
      	* gcc.target/arm/multilib.exp: Add fp16, dotprod and armv8.3-a
      	combination tests.
      
      From-SVN: r256345
      Kyrylo Tkachov committed
    • rs6000.md (cceq_ior_compare): Remove * so I can use it to generate rtl. · 8f2c6023
      2018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it
      	to generate rtl.
      	(cceq_ior_compare_complement): Give it a name so I can use it, and
      	change boolean_or_operator predicate to boolean_operator so it can
      	be used to generate a crand.
      	(eqne): New code iterator.
      	(bd/bd_neg): New code_attrs.
      	(<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into
      	a single define_insn.
      	(<bd>tf_<mode>): A new insn pattern for the conditional form branch
      	decrement (bdnzt/bdnzf/bdzt/bdzf).
      	* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
      	with the new names of the branch decrement patterns, and added the
      	names of the branch decrement conditional patterns.
      
      From-SVN: r256344
      Aaron Sawdey committed
    • re PR tree-optimization/83563 ([graphite] ICE: Segmentation fault (in instantiate_scev_r)) · b33086c0
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83563
      	* graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV
      	cache.
      
      	* gcc.dg/graphite/pr83563.c: New testcase.
      
      From-SVN: r256343
      Richard Biener committed
    • re PR c++/83713 (ICE in do_narrow at gcc/convert.c:474) · 87c4dace
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83713
      	* convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
      
      	* g++.dg/torture/pr83713.C: New testcase.
      
      From-SVN: r256341
      Richard Biener committed
    • Xfail ssa-dom-cse-2.c for nvptx · 960c02b8
      2018-01-08  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: Xfail scan for nvptx.
      
      From-SVN: r256340
      Tom de Vries committed
    • re PR tree-optimization/83685 (ICE: SSA corruption) · e207c079
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83685
      	* tree-ssa-pre.c (create_expression_by_pieces): Do not insert
      	references to abnormals.
      
      	* gcc.dg/torture/pr83685.c: New testcase.
      
      From-SVN: r256339
      Richard Biener committed
    • re PR lto/83719 (ICE (segfault) in hash_table<indirect_string_hasher, xcallocator>::elements()) · 131a0e78
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR lto/83719
      	* dwarf2out.c (output_indirect_strings): Handle empty
      	skeleton_debug_str_hash.
      	(dwarf2out_early_finish): Index strings for -gsplit-dwarf.
      
      	* gcc.dg/lto/pr83719_0.c: New testcase.
      
      From-SVN: r256338
      Richard Biener committed
    • PR 78534 Regression on 32-bit targets · 4135a21f
      By switching from int to size_t in order to handle larger values,
      r256322 introduced a bug that manifested itself on 32-bit
      targets. Fixed by using the correct type to store the result of a
      next_array_record call.
      
      Regtested on x86_64-pc-linux-gnu and i686-pc-linux-gnu, committed to
      trunk as obvious.
      
      libgfortran/ChangeLog:
      
      2018-01-08  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR 78534, bugfix for r256322
      	* io/transfer.c (next_record_w): Use correct type for return value
      	of next_array_record.
      
      From-SVN: r256337
      Janne Blomqvist committed
    • Require stack size for some test-cases · 4c035a23
      2018-01-08  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/graphite/interchange-7.c: Add dg-require-stack-size.
      	* gcc.dg/graphite/run-id-1.c: Same.
      	* gcc.dg/tree-ssa/loop-interchange-4.c: Same.
      
      From-SVN: r256336
      Tom de Vries committed
    • re PR fortran/83611 ([PDT] Assignment of parameterized types causes double free error in runtime) · 0b627b58
      2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83611
      	* decl.c (gfc_get_pdt_instance): If parameterized arrays have
      	an initializer, convert the kind parameters and add to the
      	component if the instance.
      	* trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
      	use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
      	for parameterized arrays. Clean up typos in comments. Convert
      	parameterized array initializers and copy into the array.
      	* trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
      	parameterized types.
      	*trans-stmt.c (trans_associate_var): Deallocate associate vars
      	as necessary, when they are PDT function results for example.
      
      	PR fortran/83731
      	* trans-array.c (structure_alloc_comps): Only compare len parms
      	when they are declared explicitly.
      
      2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83611
      	* gfortran.dg/pdt_15.f03 : Bump count of 'n.data = 0B' to 8.
      	* gfortran.dg/pdt_26.f03 : Bump count of '_malloc' to 9.
      	* gfortran.dg/pdt_27.f03 : New test.
      
      	PR fortran/83731
      	* gfortran.dg/pdt_28.f03 : New test.
      
      From-SVN: r256335
      Paul Thomas committed
    • [ARC] Revamp trampoline implementation · efcc2e30
      The new implementation attempts to clean up the existing trampoline
      implementation for ARC making it to work for linux type of systems.
      
      gcc/
      2018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete.
              (emit_store_direct): Likewise.
              (arc_trampoline_adjust_address): Likewise.
              (arc_asm_trampoline_template): New function.
              (arc_initialize_trampoline): Use asm_trampoline_template.
              (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define.
              * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16.
              *config/arc/arc.md (flush_icache): Delete pattern.
      
      From-SVN: r256334
      Claudiu Zissulescu committed
    • [ARC] Enable unaligned access. · 85e5629f
      Use munaligned-access to control if we can have unaligned accesses.  For ARC
      HS family unaligned access is always on.
      
      2018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-c.def (__ARC_UNALIGNED__): New define.
      	* config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using
      	munaligned-access.
      
      From-SVN: r256333
      Claudiu Zissulescu committed
    • Require alloca for some test-cases · b5da8f94
      2018-01-08  Tom de Vries  <tom@codesourcery.com>
      
      	* c-c++-common/builtins.c: Require effective target alloca.
      	* gcc.dg/Wrestrict.c: Same.
      	* gcc.dg/tree-ssa/loop-interchange-15.c: Same.
      
      From-SVN: r256332
      Tom de Vries committed
    • epiphany: Enable Ada run-time build · 34113d65
      gcc/
      
      	PR target/83681
      	* config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard
      	by not USED_FOR_TARGET.
      	(make_pass_resolve_sw_modes): Likewise.
      
      From-SVN: r256331
      Sebastian Huber committed
    • nios2: Enable Ada run-time build · 05122129
      gcc/
      	* config/nios2/nios2.h (nios2_section_threshold): Guard by not
      	USED_FOR_TARGET.
      
      From-SVN: r256330
      Sebastian Huber committed
    • re PR tree-optimization/83580 (Wrong code caused by vectorization) · 3e1b80ff
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83580
      	* tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS.
      
      	* gcc.dg/torture/pr83580.c: New testcase.
      
      From-SVN: r256329
      Richard Biener committed
    • re PR tree-optimization/83517 (Missed optimization in math expression: (x+x)/x == 2) · 55d84e61
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83517
      	* match.pd ((t * 2) / 2) -> t): Add missing :c.
      
      	* gcc.dg/pr83517.c: New testcase.
      
      From-SVN: r256328
      Richard Biener committed
    • Daily bump. · 2af5fc62
      From-SVN: r256327
      GCC Administrator committed
  2. 07 Jan, 2018 7 commits
    • libgfortran.h (GFC_DTYPE_COPY): New macro. · fa3c4d47
      2018-01-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* libgfortran.h (GFC_DTYPE_COPY): New macro.
      	(GFC_DTYPE_COPY_SETRANK): New macro.
      	(GFC_DTYPE_IS_UNSET): New macro.
      	* intrinsics/cshift0.c (cshift0): Use new macros.
      	* intrinsics/eoshift0.c (eoshift0): Likewise.
      	* intrinsics/eoshift2.c (eoshift2): Likewise.
      	* intrinsics/move_alloc.c (move_alloc): Likewise.
      	* intrinsics/reshape_generic.c (reshape_internal): Likewise.
      	* intrinsics/spread_generic.c (spread_internal): Likewise.
      	* intrinsics/spread_generic.c (spread_scalar): Likewise.
      	* intrinsics/spread_generic.c (spread_char_scalar): Likewise.
      	* intrinsics/spread_generic.c (spread_char4_scalar): Likewise.
      	* intrinsics/unpack_generic.c (unpack0): Likewise.
      	* intrinsics/unpack_generic.c (unpack0_char): Likewise.
      	* intrinsics/unpack_generic.c (unpack0_char4): Likewise.
      	* m4/cshift1.m4 (cshift1): Likewise.
      	* m4/eoshift1.m4 (eoshift1): Likewise.
      	* m4/eoshift3.m4 (eoshift3): Likewise.
      	* m4/iforeach-s.m4: Likewise.
      	* m4/iforeach.m4: Likewise.
      	* m4/ifunction-s.m4: Likewise.
      	* m4/ifunction-s2.m4: Likewise.
      	* m4/ifunction.m4: Likewise.
      	* m4/ifunction_logical.m4: Likewise.
      	* m4/reshape.m4: Likewise.
      	* m4/spread.m4: Likewise.
      	* generated/all_l1.c : Regenerated.
      	* generated/all_l16.c : Regenerated.
      	* generated/all_l2.c : Regenerated.
      	* generated/all_l4.c : Regenerated.
      	* generated/all_l8.c : Regenerated.
      	* generated/any_l1.c : Regenerated.
      	* generated/any_l16.c : Regenerated.
      	* generated/any_l2.c : Regenerated.
      	* generated/any_l4.c : Regenerated.
      	* generated/any_l8.c : Regenerated.
      	* generated/count_16_l.c : Regenerated.
      	* generated/count_1_l.c : Regenerated.
      	* generated/count_2_l.c : Regenerated.
      	* generated/count_4_l.c : Regenerated.
      	* generated/count_8_l.c : Regenerated.
      	* generated/cshift1_16.c : Regenerated.
      	* generated/cshift1_4.c : Regenerated.
      	* generated/cshift1_8.c : Regenerated.
      	* generated/eoshift1_16.c : Regenerated.
      	* generated/eoshift1_4.c : Regenerated.
      	* generated/eoshift1_8.c : Regenerated.
      	* generated/eoshift3_16.c : Regenerated.
      	* generated/eoshift3_4.c : Regenerated.
      	* generated/eoshift3_8.c : Regenerated.
      	* generated/iall_i1.c : Regenerated.
      	* generated/iall_i16.c : Regenerated.
      	* generated/iall_i2.c : Regenerated.
      	* generated/iall_i4.c : Regenerated.
      	* generated/iall_i8.c : Regenerated.
      	* generated/iany_i1.c : Regenerated.
      	* generated/iany_i16.c : Regenerated.
      	* generated/iany_i2.c : Regenerated.
      	* generated/iany_i4.c : Regenerated.
      	* generated/iany_i8.c : Regenerated.
      	* generated/iparity_i1.c : Regenerated.
      	* generated/iparity_i16.c : Regenerated.
      	* generated/iparity_i2.c : Regenerated.
      	* generated/iparity_i4.c : Regenerated.
      	* generated/iparity_i8.c : Regenerated.
      	* generated/maxloc0_16_i1.c : Regenerated.
      	* generated/maxloc0_16_i16.c : Regenerated.
      	* generated/maxloc0_16_i2.c : Regenerated.
      	* generated/maxloc0_16_i4.c : Regenerated.
      	* generated/maxloc0_16_i8.c : Regenerated.
      	* generated/maxloc0_16_r10.c : Regenerated.
      	* generated/maxloc0_16_r16.c : Regenerated.
      	* generated/maxloc0_16_r4.c : Regenerated.
      	* generated/maxloc0_16_r8.c : Regenerated.
      	* generated/maxloc0_16_s1.c : Regenerated.
      	* generated/maxloc0_16_s4.c : Regenerated.
      	* generated/maxloc0_4_i1.c : Regenerated.
      	* generated/maxloc0_4_i16.c : Regenerated.
      	* generated/maxloc0_4_i2.c : Regenerated.
      	* generated/maxloc0_4_i4.c : Regenerated.
      	* generated/maxloc0_4_i8.c : Regenerated.
      	* generated/maxloc0_4_r10.c : Regenerated.
      	* generated/maxloc0_4_r16.c : Regenerated.
      	* generated/maxloc0_4_r4.c : Regenerated.
      	* generated/maxloc0_4_r8.c : Regenerated.
      	* generated/maxloc0_4_s1.c : Regenerated.
      	* generated/maxloc0_4_s4.c : Regenerated.
      	* generated/maxloc0_8_i1.c : Regenerated.
      	* generated/maxloc0_8_i16.c : Regenerated.
      	* generated/maxloc0_8_i2.c : Regenerated.
      	* generated/maxloc0_8_i4.c : Regenerated.
      	* generated/maxloc0_8_i8.c : Regenerated.
      	* generated/maxloc0_8_r10.c : Regenerated.
      	* generated/maxloc0_8_r16.c : Regenerated.
      	* generated/maxloc0_8_r4.c : Regenerated.
      	* generated/maxloc0_8_r8.c : Regenerated.
      	* generated/maxloc0_8_s1.c : Regenerated.
      	* generated/maxloc0_8_s4.c : Regenerated.
      	* generated/maxloc1_16_i1.c : Regenerated.
      	* generated/maxloc1_16_i16.c : Regenerated.
      	* generated/maxloc1_16_i2.c : Regenerated.
      	* generated/maxloc1_16_i4.c : Regenerated.
      	* generated/maxloc1_16_i8.c : Regenerated.
      	* generated/maxloc1_16_r10.c : Regenerated.
      	* generated/maxloc1_16_r16.c : Regenerated.
      	* generated/maxloc1_16_r4.c : Regenerated.
      	* generated/maxloc1_16_r8.c : Regenerated.
      	* generated/maxloc1_16_s1.c : Regenerated.
      	* generated/maxloc1_16_s4.c : Regenerated.
      	* generated/maxloc1_4_i1.c : Regenerated.
      	* generated/maxloc1_4_i16.c : Regenerated.
      	* generated/maxloc1_4_i2.c : Regenerated.
      	* generated/maxloc1_4_i4.c : Regenerated.
      	* generated/maxloc1_4_i8.c : Regenerated.
      	* generated/maxloc1_4_r10.c : Regenerated.
      	* generated/maxloc1_4_r16.c : Regenerated.
      	* generated/maxloc1_4_r4.c : Regenerated.
      	* generated/maxloc1_4_r8.c : Regenerated.
      	* generated/maxloc1_4_s1.c : Regenerated.
      	* generated/maxloc1_4_s4.c : Regenerated.
      	* generated/maxloc1_8_i1.c : Regenerated.
      	* generated/maxloc1_8_i16.c : Regenerated.
      	* generated/maxloc1_8_i2.c : Regenerated.
      	* generated/maxloc1_8_i4.c : Regenerated.
      	* generated/maxloc1_8_i8.c : Regenerated.
      	* generated/maxloc1_8_r10.c : Regenerated.
      	* generated/maxloc1_8_r16.c : Regenerated.
      	* generated/maxloc1_8_r4.c : Regenerated.
      	* generated/maxloc1_8_r8.c : Regenerated.
      	* generated/maxloc1_8_s1.c : Regenerated.
      	* generated/maxloc1_8_s4.c : Regenerated.
      	* generated/maxval1_s1.c : Regenerated.
      	* generated/maxval1_s4.c : Regenerated.
      	* generated/maxval_i1.c : Regenerated.
      	* generated/maxval_i16.c : Regenerated.
      	* generated/maxval_i2.c : Regenerated.
      	* generated/maxval_i4.c : Regenerated.
      	* generated/maxval_i8.c : Regenerated.
      	* generated/maxval_r10.c : Regenerated.
      	* generated/maxval_r16.c : Regenerated.
      	* generated/maxval_r4.c : Regenerated.
      	* generated/maxval_r8.c : Regenerated.
      	* generated/minloc0_16_i1.c : Regenerated.
      	* generated/minloc0_16_i16.c : Regenerated.
      	* generated/minloc0_16_i2.c : Regenerated.
      	* generated/minloc0_16_i4.c : Regenerated.
      	* generated/minloc0_16_i8.c : Regenerated.
      	* generated/minloc0_16_r10.c : Regenerated.
      	* generated/minloc0_16_r16.c : Regenerated.
      	* generated/minloc0_16_r4.c : Regenerated.
      	* generated/minloc0_16_r8.c : Regenerated.
      	* generated/minloc0_16_s1.c : Regenerated.
      	* generated/minloc0_16_s4.c : Regenerated.
      	* generated/minloc0_4_i1.c : Regenerated.
      	* generated/minloc0_4_i16.c : Regenerated.
      	* generated/minloc0_4_i2.c : Regenerated.
      	* generated/minloc0_4_i4.c : Regenerated.
      	* generated/minloc0_4_i8.c : Regenerated.
      	* generated/minloc0_4_r10.c : Regenerated.
      	* generated/minloc0_4_r16.c : Regenerated.
      	* generated/minloc0_4_r4.c : Regenerated.
      	* generated/minloc0_4_r8.c : Regenerated.
      	* generated/minloc0_4_s1.c : Regenerated.
      	* generated/minloc0_4_s4.c : Regenerated.
      	* generated/minloc0_8_i1.c : Regenerated.
      	* generated/minloc0_8_i16.c : Regenerated.
      	* generated/minloc0_8_i2.c : Regenerated.
      	* generated/minloc0_8_i4.c : Regenerated.
      	* generated/minloc0_8_i8.c : Regenerated.
      	* generated/minloc0_8_r10.c : Regenerated.
      	* generated/minloc0_8_r16.c : Regenerated.
      	* generated/minloc0_8_r4.c : Regenerated.
      	* generated/minloc0_8_r8.c : Regenerated.
      	* generated/minloc0_8_s1.c : Regenerated.
      	* generated/minloc0_8_s4.c : Regenerated.
      	* generated/minloc1_16_i1.c : Regenerated.
      	* generated/minloc1_16_i16.c : Regenerated.
      	* generated/minloc1_16_i2.c : Regenerated.
      	* generated/minloc1_16_i4.c : Regenerated.
      	* generated/minloc1_16_i8.c : Regenerated.
      	* generated/minloc1_16_r10.c : Regenerated.
      	* generated/minloc1_16_r16.c : Regenerated.
      	* generated/minloc1_16_r4.c : Regenerated.
      	* generated/minloc1_16_r8.c : Regenerated.
      	* generated/minloc1_16_s1.c : Regenerated.
      	* generated/minloc1_16_s4.c : Regenerated.
      	* generated/minloc1_4_i1.c : Regenerated.
      	* generated/minloc1_4_i16.c : Regenerated.
      	* generated/minloc1_4_i2.c : Regenerated.
      	* generated/minloc1_4_i4.c : Regenerated.
      	* generated/minloc1_4_i8.c : Regenerated.
      	* generated/minloc1_4_r10.c : Regenerated.
      	* generated/minloc1_4_r16.c : Regenerated.
      	* generated/minloc1_4_r4.c : Regenerated.
      	* generated/minloc1_4_r8.c : Regenerated.
      	* generated/minloc1_4_s1.c : Regenerated.
      	* generated/minloc1_4_s4.c : Regenerated.
      	* generated/minloc1_8_i1.c : Regenerated.
      	* generated/minloc1_8_i16.c : Regenerated.
      	* generated/minloc1_8_i2.c : Regenerated.
      	* generated/minloc1_8_i4.c : Regenerated.
      	* generated/minloc1_8_i8.c : Regenerated.
      	* generated/minloc1_8_r10.c : Regenerated.
      	* generated/minloc1_8_r16.c : Regenerated.
      	* generated/minloc1_8_r4.c : Regenerated.
      	* generated/minloc1_8_r8.c : Regenerated.
      	* generated/minloc1_8_s1.c : Regenerated.
      	* generated/minloc1_8_s4.c : Regenerated.
      	* generated/minval1_s1.c : Regenerated.
      	* generated/minval1_s4.c : Regenerated.
      	* generated/minval_i1.c : Regenerated.
      	* generated/minval_i16.c : Regenerated.
      	* generated/minval_i2.c : Regenerated.
      	* generated/minval_i4.c : Regenerated.
      	* generated/minval_i8.c : Regenerated.
      	* generated/minval_r10.c : Regenerated.
      	* generated/minval_r16.c : Regenerated.
      	* generated/minval_r4.c : Regenerated.
      	* generated/minval_r8.c : Regenerated.
      	* generated/norm2_r10.c : Regenerated.
      	* generated/norm2_r16.c : Regenerated.
      	* generated/norm2_r4.c : Regenerated.
      	* generated/norm2_r8.c : Regenerated.
      	* generated/parity_l1.c : Regenerated.
      	* generated/parity_l16.c : Regenerated.
      	* generated/parity_l2.c : Regenerated.
      	* generated/parity_l4.c : Regenerated.
      	* generated/parity_l8.c : Regenerated.
      	* generated/product_c10.c : Regenerated.
      	* generated/product_c16.c : Regenerated.
      	* generated/product_c4.c : Regenerated.
      	* generated/product_c8.c : Regenerated.
      	* generated/product_i1.c : Regenerated.
      	* generated/product_i16.c : Regenerated.
      	* generated/product_i2.c : Regenerated.
      	* generated/product_i4.c : Regenerated.
      	* generated/product_i8.c : Regenerated.
      	* generated/product_r10.c : Regenerated.
      	* generated/product_r16.c : Regenerated.
      	* generated/product_r4.c : Regenerated.
      	* generated/product_r8.c : Regenerated.
      	* generated/reshape_c10.c : Regenerated.
      	* generated/reshape_c16.c : Regenerated.
      	* generated/reshape_c4.c : Regenerated.
      	* generated/reshape_c8.c : Regenerated.
      	* generated/reshape_i16.c : Regenerated.
      	* generated/reshape_i4.c : Regenerated.
      	* generated/reshape_i8.c : Regenerated.
      	* generated/reshape_r10.c : Regenerated.
      	* generated/reshape_r16.c : Regenerated.
      	* generated/reshape_r4.c : Regenerated.
      	* generated/reshape_r8.c : Regenerated.
      	* generated/spread_c10.c : Regenerated.
      	* generated/spread_c16.c : Regenerated.
      	* generated/spread_c4.c : Regenerated.
      	* generated/spread_c8.c : Regenerated.
      	* generated/spread_i1.c : Regenerated.
      	* generated/spread_i16.c : Regenerated.
      	* generated/spread_i2.c : Regenerated.
      	* generated/spread_i4.c : Regenerated.
      	* generated/spread_i8.c : Regenerated.
      	* generated/spread_r10.c : Regenerated.
      	* generated/spread_r16.c : Regenerated.
      	* generated/spread_r4.c : Regenerated.
      	* generated/spread_r8.c : Regenerated.
      	* generated/sum_c10.c : Regenerated.
      	* generated/sum_c16.c : Regenerated.
      	* generated/sum_c4.c : Regenerated.
      	* generated/sum_c8.c : Regenerated.
      	* generated/sum_i1.c : Regenerated.
      	* generated/sum_i16.c : Regenerated.
      	* generated/sum_i2.c : Regenerated.
      	* generated/sum_i4.c : Regenerated.
      	* generated/sum_i8.c : Regenerated.
      	* generated/sum_r10.c : Regenerated.
      	* generated/sum_r16.c : Regenerated.
      	* generated/sum_r4.c : Regenerated.
      	* generated/sum_r8.c : Regenerated.
      
      From-SVN: r256323
      Thomas Koenig committed
    • PR 78534, 83704 Handle large formatted I/O · ea99ec5b
      In order to handle large characters when doing formatted I/O, use
      size_t and ptrdiff_t for lengths.  Compared to the previous patch,
      based on discussions on IRC use size_t for sizes that don't need to be
      negative rather than ptrdiff_t everywhere.
      
      Regtested on x86_64-pc-linux-gnu, approved as part of the PR 78534
      approval, committed to trunk.
      
      libgfortran/ChangeLog:
      
      2018-01-07  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/78534
      	PR fortran/83704
      	* io/fbuf.c (fbuf_init): Use size_t instead of int for length.
      	(fbuf_debug): Convert debug output to unsigned long.
      	(fbuf_reset): Use ptrdiff_t for return value.
      	(fbuf_alloc): Use size_t for length argument.
      	(fbuf_flush): Handle large buffers.
      	(fbuf_flush_list): Likewise.
      	(fbuf_seek): Use ptrdiff_t for offset and return value.
      	(fbuf_read): Use size_t for length argument.
      	(fbuf_getc_refill): Use size_t to match fbuf_read.
      	* io/fbuf.h (struct fbuf): Use size_t for lengths.
      	(fbuf_init): Use size_t instead of int for length.
      	(fbuf_reset): Use ptrdiff_t for return value.
      	(fbuf_alloc): Use size_t for length argument.
      	(fbuf_seek): Use ptrdiff_t for offset and return value.
      	(fbuf_read): Use size_t for length argument.
      	* io/io.h (read_block_form): Likewise.
      	(read_block_form4): Likewise.
      	(write_block): Likewise.
      	(read_a): Likewise.
      	(read_a_char4): Likewise.
      	(read_x): Likewise.
      	(write_a): Likewise.
      	(write_a_char4): Likewise.
      	* io/list_read.c (list_formatted_read_scalar): Use size_t to
      	handle large buffers.
      	* io/read.c (read_l): Likewise.
      	(read_utf8): Likewise.
      	(read_utf8_char1): Likewise.
      	(read_default_char1): Likewise.
      	(read_utf8_char4): Likewise.
      	(read_default_char4): Likewise.
      	(read_a): Likewise.
      	(read_a_char4): Likewise.
      	(eat_leading_spaces): Likewise.
      	(next_char): Likewise.
      	(read_decimal): Likewise.
      	(read_radix): Likewise.
      	(read_f): Likewise.
      	(read_x): Likewise.
      	* io/transfer.c (read_sf_internal): Likewise.
      	(read_sf): Likewise.
      	(read_block_form): Likewise.
      	(read_block_form4): Likewise.
      	(write_block): Likewise.
      	(formatted_transfer_scalar_write): Likewise.
      	(next_record_w): Likewise.
      	* io/unix.c (mem_alloc_r): Likewise.
      	(mem_alloc_r4): Likewise.
      	(mem_alloc_w): Likewise.
      	(mem_alloc_w4): Likewise.
      	(mem_read): Likewise.
      	(mem_read4): Likewise.
      	(mem_write): Likewise.
      	(mem_write4): Likewise.
      	(open_internal): Likewise.
      	(open_internal4): Likewise.
      	* io/unix.h (open_internal): Likewise.
      	(open_internal4): Likewise.
      	(mem_alloc_w): Likewise.
      	(mem_alloc_r): Likewise.
      	(mem_alloc_w4): Likewise.
      	(mem_alloc_r4): Likewise.
      	* io/write.c (write_check_cc): Likewise.
      	(write_cc): Likewise.
      	(write_a): Likewise.
      	(write_a_char4): Likewise.
      
      From-SVN: r256322
      Janne Blomqvist committed
    • Commit right version · c7c9468a
      From-SVN: r256321
      Jeff Law committed
    • re PR middle-end/81897 (spurious -Wmaybe-uninitialized warning) · 11ef0b22
      	PR middle-end/81897
      	* tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on
      	basic blocks with a small number of successors.
      	(convert_control_dep_chain_into_preds): Improve handling of
      	forwarder blocks.
      	(dump_predicates): Split apart into...
      	(dump_pred_chain): ...here...
      	(dump_pred_info): ...and here.
      	(can_one_predicate_be_invalidated_p): Add debugging printfs.
      	(can_chain_union_be_invalidated_p): Improve check for invalidation
      	of paths.
      	(uninit_uses_cannot_happen): Avoid unnecessary if
      	convert_control_dep_chain_into_preds yielded nothing.
      
      	PR middle-end/81897
      	* gcc.dg/uninit-pr81897.c: New test.
      
      From-SVN: r256320
      Aldy Hernandez committed
    • re PR tree-optimization/83640 (ICE in generic_overlap, at gimple-ssa-warn-restrict.c:814) · f59d4026
      2018-01-06  Martin Sebor  <msebor@redhat.com>
      
      	PR tree-optimization/83640
      	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid
      	subtracting negative offset from size.
      	(builtin_access::overlap): Adjust offset bounds of the access to fall
      	within the size of the object if possible.
      
      	PR tree-optimization/83640
      	* gcc.dg/Wrestrict-6.c: New test.
      	* gcc.dg/pr83640.c: New test.
      
      From-SVN: r256319
      Martin Sebor committed
    • re PR middle-end/83699 (Many 64-bit SPARC gcc.dg/vect tests FAIL) · 9ea52d27
      	PR rtl-optimization/83699
      	* expmed.c (extract_bit_field_1): Restrict the vector usage of
      	extract_bit_field_as_subreg to cases in which the extracted
      	value is also a vector.
      
      From-SVN: r256318
      Richard Sandiford committed
    • Daily bump. · 064ee4de
      From-SVN: r256317
      GCC Administrator committed
  3. 06 Jan, 2018 8 commits
    • Remove unused variable · dd8b1ebf
      2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * io/write.c (namelist_write): Remove unused variable "i".
      
      From-SVN: r256314
      Janne Blomqvist committed
    • PR 83704 Use size_t in write_character · d9bb51cd
      For printing long characters, we need to use size_t instead of int in
      the argument to write_character.
      
      Regtested on x86_64-pc-linux-gnu, approved in the PR, committed to
      trunk.
      
      libgfortran/ChangeLog:
      
      2018-01-06  Dominique d'Humieres  <dominiq@lps.ens.fr>
      	    Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/83704
      	* io/write.c (write_character): Use size_t instead of int for
      	length.
      
      Co-Authored-By: Janne Blomqvist <jb@gcc.gnu.org>
      
      From-SVN: r256313
      Dominique d'Humieres committed
    • Tighten LRA cycling check · b4c96972
      LRA has code to try to prevent cycling, by avoiding reloads that
      look too similar to the instruction being reloaded.  E.g. if we
      have a R<-C move for some constant C, reloading the source with
      another R<-C move is unlikely to be a good idea.
      
      However, this safeguard unnecessarily triggered in tests like
      the one in the patch.  We started with instructions like:
      
      (insn 12 9 13 5 (set (reg:DI 0 x0)
              (reg/f:DI 459)) "reg-alloc-1.c":18 47 {*movdi_aarch64}
           (expr_list:REG_EQUAL (symbol_ref:DI ("x00") [flags 0xc0]  <var_decl 0x7f3c03c1f510 x00>)
              (nil)))
      
      where r459 didn't get allocated a register and is equivalent to
      constant x00.  LRA would then handle it like this:
      
      Changing pseudo 459 in operand 1 of insn 12 on equiv `x00'
                  1 Non-pseudo reload: reject+=2
                  1 Non input pseudo reload: reject++
      ------->    Cycle danger: overall += LRA_MAX_REJECT
                alt=0,overall=609,losers=1,rld_nregs=1
      [...]
                alt=13,overall=9,losers=1,rld_nregs=1
      [...]
               Choosing alt 13 in insn 12:  (0) r  (1) w {*movdi_aarch64}
      
      In other words, to avoid loading the constant x00 into another GPR,
      LRA decided instead to move it into a floating-point register,
      then move that floating-point register into x0:
      
            Creating newreg=630, assigning class FP_REGS to r630
            Set class ALL_REGS for r631
         12: x0:DI=r630:DI
            REG_EQUAL `x00'
          Inserting insn reload before:
        815: r631:DI=high(`x00')
        816: r630:DI=r631:DI+low(`x00')
            REG_EQUAL `x00'
      
      That's inefficient and doesn't really help to resolve a cycling
      problem, since the r630 destination of 816 needs to be reloaded into
      a GPR anyway.
      
      The cycling check already had an exception for source values that are
      the result of an elimination.  This patch extends it to include the
      result of equivalence substitution.
      
      2018-01-06  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* lra-constraints.c (process_alt_operands): Test for the equivalence
      	substitutions when detecting a possible reload cycle.
      
      gcc/testsuite/
      	* gcc.target/aarch64/reg-alloc-1.c: New test.
      
      From-SVN: r256312
      Richard Sandiford committed
    • PR 78534 libgfortran ChangeLog · b081a376
      The libgfortran/ChangeLog entry was accidentally not included in
      r256284.
      
      From-SVN: r256311
      Janne Blomqvist committed
    • PR 50892 Latent bug in char pointer assignment · ee2d3987
      Due to r256284 (PR 78534) there was a latent bug that reared it's head
      due to different character length types in the pointer
      assignment. Fixed by this patch, which also adds a reduced testcase.
      
      Regtested on x86_64-pc-linux-gnu, committed to trunk as obvious.
      
      gcc/fortran/ChangeLog:
      
      2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/50892
      	* trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
      	lhs type.
      
      gcc/testsuite/ChangeLog:
      
      2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/50892
      	* gfortran.dg/char_pointer_assign_icb_1.f90: New test.
      
      From-SVN: r256310
      Janne Blomqvist committed
    • re PR debug/83480 (ICE in create_block_for_bookkeeping, at sel-sched.c:4557) · 59931fb0
      	PR debug/83480
      	* toplev.c (process_options): Don't enable debug_nonbind_markers_p
      	by default if flag_selective_schedling{,2}.  Formatting fixes.
      
      	* gcc.dg/pr83480.c: New test.
      
      From-SVN: r256309
      Jakub Jelinek committed
    • re PR rtl-optimization/83682 (ICE in simplify_subreg, at simplify-rtx.c:6296) · 8fec4d22
      	PR rtl-optimization/83682
      	* rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE
      	if it has non-VECTOR_MODE element mode.
      	(vec_duplicate_p): Likewise.
      
      	* gcc.target/i386/pr83682.c: New test.
      
      From-SVN: r256308
      Jakub Jelinek committed
    • re PR debug/83694 (New test case gcc.dg/pr83666.c from r256232 ICEs) · dba9c1fd
      	PR middle-end/83694
      	* cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode
      	and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT.
      
      From-SVN: r256307
      Jakub Jelinek committed