1. 09 Jan, 2018 15 commits
  2. 08 Jan, 2018 25 commits
    • re PR target/83677 (PPC: The xxpermr instruction is not generated correctly) · a25811c8
      [gcc]
      
      2018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/83677
      	* config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
      	Reverse order of second and third operands in first alternative.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
      	of first and second elements in UNSPEC_VPERMR vector.
      	(altivec_expand_vec_perm_le): Likewise.
      
      [gcc/testsuite]
      
      2018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/83677
      	* gcc.target/powerpc/pr83677.c: New file.
      
      From-SVN: r256358
      Bill Schmidt committed
    • quad-float128.h (IBM128_TYPE): Explicitly use __ibm128, instead of trying to use long double. · 68df9882
      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: r256354
      Michael Meissner committed
    • 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