1. 09 Jan, 2018 27 commits
    • compiler: add escape analysis debug hash · 594d0e51
          
          Add a flag -fgo-debug-escape-hash for debugging escape analysis.
          It takes a binary string, optionally led by a "-", as argument.
          When specified, the escape analysis runs only on functions whose
          name is hashed to a value with matching suffix. The "-" sign
          negates the match, i.e. the analysis runs only on functions with
          non-matching hash.
      
          Reviewed-on: https://go-review.googlesource.com/83878
      
      	* lang.opt (fgo-debug-escape-hash): New option.
      	* go-c.h (struct go_create_gogo_args): Add debug_escape_hash
      	field.
      	* go-lang.c (go_langhook_init): Set debug_escape_hash field.
      	* gccgo.texi (Invoking gccgo): Document -fgo-debug-escape-hash.
      
      From-SVN: r256393
      Cherry Zhang committed
    • re PR fortran/83742 (ICE in gfc_is_simply_contiguous, at fortran/expr.c:5323) · d4319ef8
      2018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/83742
      	* expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
      
      2018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/83742
      	* gfortran.dg/contiguous_6.f90: New test.
      
      From-SVN: r256391
      Steven G. Kargl committed
    • PR libstdc++/59253 Improve pretty printers for smart pointers · d2dfcf82
      	PR libstdc++/59253 (partial)
      	* python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
      	type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
      	(SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
      	children.
      	* testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
      	of unique_ptr printer.
      	* testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
      	output of shared_ptr printer.
      
      From-SVN: r256390
      Juraj Oršulić committed
    • compiler: use macro Unordered_map instead of std::unordered_map · 1eac10b3
          
          Per gcc/go/go-system.h, this is what it is supposed to be, to
          support wider platforms.
          
          Reviewed-on: https://go-review.googlesource.com/85975
      
      From-SVN: r256389
      Ian Lance Taylor committed
    • Forgot to commit changelog entry: · 888e79a7
      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: r256388
      Aaron Sawdey committed
    • re PR rtl-optimization/83628 (performance regression when accessing arrays on alpha) · 49bb43be
      	PR target/83628
      	* combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
      	op_mode in the force_to_mode call.
      
      From-SVN: r256387
      Uros Bizjak committed
    • [AArch64] Use vec_perm_indices helper routines · 326ac20e
      This patch makes the AArch64 vec_perm_const code use the new
      vec_perm_indices routines, instead of checking each element individually.
      This means that they extend naturally to variable-length vectors.
      
      Also, aarch64_evpc_dup was the only function that generated rtl when
      testing_p is true, and that looked accidental.  The patch adds the
      missing check and then replaces the gen_rtx_REG/start_sequence/
      end_sequence stuff with an assert that no rtl is generated.
      
      2018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p
      	instead of checking each element individually.
      	(aarch64_evpc_uzp): Likewise.
      	(aarch64_evpc_zip): Likewise.
      	(aarch64_evpc_ext): Likewise.
      	(aarch64_evpc_rev): Likewise.
      	(aarch64_evpc_dup): Test the encoding for a single duplicated element,
      	instead of checking each element individually.  Return true without
      	generating rtl if
      	(aarch64_vectorize_vec_perm_const): Use all_from_input_p to test
      	whether all selected elements come from the same input, instead of
      	checking each element individually.  Remove calls to gen_rtx_REG,
      	start_sequence and end_sequence and instead assert that no rtl is
      	generated.
      
      From-SVN: r256385
      Richard Sandiford committed
    • [AArch64] Reject (high (const (plus anchor offset))) · 509bb9b6
      The aarch64_legitimate_constant_p tests for HIGH and CONST seem
      to be the wrong way round: (high (const ...)) is valid rtl that
      could be passed in, but (const (high ...)) isn't.  As it stands,
      we disallow anchor+offset but allow (high anchor+offset).
      
      2018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix
      	order of HIGH and CONST checks.
      
      From-SVN: r256384
      Richard Sandiford committed
    • Fix permute handling when vectorising scatters · 7ad429a4
      As mentioned in https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01575.html ,
      the scatter handling in vectorizable_store seems to be dead code at the
      moment.  Enabling it with the vect_analyze_data_ref_access part of
      that patch triggered an ICE in the avx512f-scatter-*.c tests (which
      previously didn't use scatters).  The problem was that the NARROW
      and WIDEN handling uses permute_vec_elements to marshal the inputs,
      and permute_vec_elements expected the lhs of the stmt to be an SSA_NAME,
      which of course it isn't for stores.
      
      This patch makes permute_vec_elements create a fresh variable in this case.
      
      2018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-vect-stmts.c (permute_vec_elements): Create a fresh variable
      	if the destination isn't an SSA_NAME.
      
      From-SVN: r256383
      Richard Sandiford committed
    • re PR tree-optimization/83668 (wrong code with -O -fno-tree-dominator-opts -fgraphite-identity) · 82c066f5
      2018-01-09  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83668
      	* graphite.c (canonicalize_loop_closed_ssa): Add edge argument,
      	move prologue...
      	(canonicalize_loop_form): ... here, renamed from ...
      	(canonicalize_loop_closed_ssa_form): ... this and amended to
      	swap successor edges for loop exit blocks to make us use
      	the RPO order we need for initial schedule generation.
      
      	* gcc.dg/graphite/pr83668.c: New testcase.
      
      From-SVN: r256381
      Richard Biener committed
    • Fix folding of Inf/NaN comparisons for -ftrapping-math (PR tree-optimization/64811). · e96a5786
      The folding of comparisons against Inf (to constants or comparisons
      with the maximum finite value) has various cases where it introduces
      or loses "invalid" exceptions for comparisons with NaNs.
      
      Folding x > +Inf to 0 should not be about HONOR_SNANS - ordered
      comparisons of both quiet and signaling NaNs should raise invalid.
      
      x <= +Inf is not the same as x == x, because again that loses an
      exception (equality comparisons don't raise exceptions except for
      signaling NaNs).
      
      x == +Inf is not the same as x > DBL_MAX, and a similar issue applies
      with the x != +Inf case - that transformation causes a spurious
      exception.
      
      This patch fixes the conditionals on the folding to avoid such
      introducing or losing exceptions.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu (where the
      cases involving spurious exceptions wouldn't have failed anyway before
      GCC 8 because of unordered comparisons wrongly always having formerly
      been used by the back end).  Also tested for powerpc-linux-gnu
      soft-float that this fixes many glibc math/ test failures that arose
      in that configuration because this folding affected the IBM long
      double support in libgcc (no such failures appeared for hard-float
      because of the bug of powerpc hard-float always using unordered
      comparisons) - some failures remain, but I believe them to be
      unrelated.
      
      	PR tree-optimization/64811
      gcc:
      	* match.pd: When optimizing comparisons with Inf, avoid
      	introducing or losing exceptions from comparisons with NaN.
      
      gcc/testsuite:
      	* gcc.dg/torture/inf-compare-1.c, gcc.dg/torture/inf-compare-2.c,
      	gcc.dg/torture/inf-compare-3.c, gcc.dg/torture/inf-compare-4.c,
      	gcc.dg/torture/inf-compare-5.c, gcc.dg/torture/inf-compare-6.c,
      	gcc.dg/torture/inf-compare-7.c, gcc.dg/torture/inf-compare-8.c:
      	New tests.
      	* gcc.c-torture/execute/ieee/fp-cmp-7.x: New file.
      
      From-SVN: r256380
      Joseph Myers committed
    • Add gcc_assert about stack alignment (PR sanitizer/82517). · aa5bfa8d
      2018-01-09  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82517
      	* asan.c (shadow_mem_size): Add gcc_assert.
      
      From-SVN: r256378
      Martin Liska committed
    • re PR target/79883 (avr i18n: untranslated "interrupt" or "signal") · 684684c6
      	PR target/79883
      	* gcc.target/avr/torture/pr57631.c (dg-warning): Quote 'signal'.
      
      From-SVN: r256376
      Georg-Johann Lay committed
    • re PR target/82641 (Unable to enable crc32 for a certain function with target… · f676330e
      re PR target/82641 (Unable to enable crc32 for a certain function with target attribute on ARM (aarch32))
      
      2018-01-09  Tamar Christina  <tamar.christina@arm.com>                                                                          
      
              PR target/82641
              * gcc.target/arm/pragma_fpu_attribute.c: Rewrite to use
              no NEON and require softfp or hard float-abi.
              * gcc.target/arm/pragma_fpu_attribute_2.c: Likewise.
      
      From-SVN: r256375
      Tamar Christina committed
    • typo · 1f1229d5
      From-SVN: r256374
      Georg-Johann Lay committed
    • Don't save registers in main(). · dcbe9170
      gcc/
      	Don't save registers in main().
      	PR target/83737
      	* doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it.
      	* config/avr/avr.opt (-mmain-is-OS_task): New target option.
      	* config/avr/avr.c (avr_set_current_function): Don't error if
      	naked, OS_task or OS_main are specified at the same time.
      	(avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task,
      	OS_main.
      	(avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task
      	attribute.
      	* common/config/avr/avr-common.c (avr_option_optimization_table):
      	Switch on -mmain-is-OS_task for optimizing compilations.
      
      From-SVN: r256373
      Georg-Johann Lay committed
    • re PR tree-optimization/83572 ([graphite] ICE in verify_dominators, at… · b25f84d0
      re PR tree-optimization/83572 ([graphite] ICE in verify_dominators, at dominance.c:1184 (error: dominator of 7 should be 15, not 13))
      
      2018-01-09  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83572
      	* graphite.c: Include cfganal.h.
      	(graphite_transform_loops): Connect infinite loops to exit
      	and remove fake edges at the end.
      
      	* gcc.dg/graphite/pr83572.c: New testcase.
      
      From-SVN: r256372
      Richard Biener committed
    • * ipa-inline.c (edge_badness): Revert accidental checkin. · b1a0199b
      From-SVN: r256370
      Jan Hubicka committed
    • re PR c++/80763 (-O3 causes error: inline clone in same comdat group list) · 6291062f
      
      	PR ipa/80763
      	* ipa-comdats.c (set_comdat_group): Only set comdat group of real
      	symbols; not inline clones.
      
      From-SVN: r256369
      Jan Hubicka committed
    • re PR target/83507 (ICE in internal_dfa_insn_code_* for powerpc targets) · 3a123ed7
      	PR target/83507
      	* modulo-sched.c (schedule_reg_moves): Punt if we'd need to move
      	hard registers.  Formatting fixes.
      
      	* gcc.dg/sms-13.c: New test.
      
      From-SVN: r256368
      Jakub Jelinek committed
    • re PR preprocessor/83722 (the ICE dumper doesn't comment-out some error messages) · 5190f1f9
      	PR preprocessor/83722
      	* gcc.c (try_generate_repro): Pass
      	&temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than
      	&temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to
      	do_report_bug.
      
      From-SVN: r256367
      Jakub Jelinek committed
    • re PR fortran/83741 (ICE in gfc_match_allocate, at fortran/match.c:4074) · 5e884ae3
      2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR Fortran/83741
      	* gfortran.dg/allocate_assumed_charlen_3.f90: New test.
      
      From-SVN: r256366
      Steven G. Kargl committed
    • libgo: update to Go1.10beta1 · 1a2f01ef
          
          Update the Go library to the 1.10beta1 release.
          
          Requires a few changes to the compiler for modifications to the map
          runtime code, and to handle some nowritebarrier cases in the runtime.
          
          Reviewed-on: https://go-review.googlesource.com/86455
      
      gotools/:
      	* Makefile.am (go_cmd_vet_files): New variable.
      	(go_cmd_buildid_files, go_cmd_test2json_files): New variables.
      	(s-zdefaultcc): Change from constants to functions.
      	(noinst_PROGRAMS): Add vet, buildid, and test2json.
      	(cgo$(EXEEXT)): Link against $(LIBGOTOOL).
      	(vet$(EXEEXT)): New target.
      	(buildid$(EXEEXT)): New target.
      	(test2json$(EXEEXT)): New target.
      	(install-exec-local): Install all $(noinst_PROGRAMS).
      	(uninstall-local): Uninstasll all $(noinst_PROGRAMS).
      	(check-go-tool): Depend on $(noinst_PROGRAMS).  Copy down
      	objabi.go.
      	(check-runtime): Depend on $(noinst_PROGRAMS).
      	(check-cgo-test, check-carchive-test): Likewise.
      	(check-vet): New target.
      	(check): Depend on check-vet.  Look at cmd_vet-testlog.
      	(.PHONY): Add check-vet.
      	* Makefile.in: Rebuild.
      
      From-SVN: r256365
      Ian Lance Taylor committed
    • match.c (gfc_match_allocate): Check for NULL pointer. · 8799df67
      2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* match.c (gfc_match_allocate): Check for NULL pointer.
      
      From-SVN: r256364
      Steven G. Kargl committed
    • RISC-V: Fix -msave-restore bug with sibcalls. · c8a0c7b6
      	2018-01-08  Monk Chiang  <sh.chiang04@gmail.com>
      		    Kito Cheng  <kito.cheng@gmail.com>
      
      	gcc/
      	* config/riscv/riscv.c (machine_function::is_leaf): Remove field.
      	(riscv_leaf_function_p): Delete.
      	(riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
      
      	2018-01-08  Chih-Mao Chen <pkmx.tw@gmail.com>
      		    Monk Chiang  <sh.chiang04@gmail.com>
      
      	gcc/testsuite/
      	* gcc.target/riscv/save-restore-1.c: New.
      
      From-SVN: r256362
      Jim Wilson committed
    • Daily bump. · b48ae4b0
      From-SVN: r256361
      GCC Administrator committed
  2. 08 Jan, 2018 13 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