[gcc/devel/gccgo] re PR tree-optimization/93098 (ICE with negative shifter)
Ian Lance Taylor
ian@gcc.gnu.org
Wed Jan 22 23:55:00 GMT 2020
https://gcc.gnu.org/g:2efa10d528bb20bff299a899b1f226b6174b50da
commit 2efa10d528bb20bff299a899b1f226b6174b50da
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed Jan 1 01:20:39 2020 +0100
re PR tree-optimization/93098 (ICE with negative shifter)
PR tree-optimization/93098
* match.pd (popcount): For shift amounts, use integer_onep
or wi::to_widest () == cst instead of tree_to_uhwi () == cst
tests. Make sure that precision is power of two larger than or equal
to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro
instead of ULL suffixed constants. Formatting fixes.
* gcc.c-torture/compile/pr93098.c: New test.
From-SVN: r279809
Diff:
---
gcc/ChangeLog | 37056 +-----------------------
gcc/ChangeLog-2019 | 37052 +++++++++++++++++++++++
gcc/match.pd | 79 +-
gcc/testsuite/ChangeLog | 19185 +-----------
gcc/testsuite/ChangeLog-2019 | 19187 ++++++++++++
gcc/testsuite/gcc.c-torture/compile/pr93098.c | 37 +
6 files changed, 56332 insertions(+), 56264 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9f5782f..70caa82 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,37051 +1,13 @@
-2020-12-31 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_condition): Only nullify cond_expr
- if we've created a new condition. Don't nullify it if we've decided
- to keep it and then invert the result.
-
-2020-12-31 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Return
- the incoming virtual operand definition.
- (vect_do_peeling): When vectorizing an epilogue loop, handle the
- case in which the main loop has a virtual phi and the epilogue
- and scalar loops don't. Restore an earlier comment about the
- update_ssa call.
-
-2019-12-30 Olivier Hainque <hainque@adacore.com>
-
- * config/vxworks/stdint.h: New file. Include _yvals.h
- then stdint-gcc.h.
- * config/t-vxworks: Arrange to install the stdint.h wrapper.
- * config.gcc (*-*-vxworks*): Add stdint-gcc.h to $extra_headers
- so it gets copied. Set use_gcc_stdint to request _not_ crafting
- stdint.h through the common Makefile rules.
-
-2019-12-30 Olivier Hainque <hainque@adacore.com>
-
- * config/vxworks/_yvals.h: New file.
- * config/vxworks/_yvals-wrapper.h: New file.
- * gcc/config/vxworks/math.h: Use it to wrap the VxWorks
- math.h header.
- * gcc/config/vxworks/complex.h: Likewise.
- * gcc/config/vxworks/setjmp.h: Likewise.
- * gcc/config/vxworks/inttypes.h: Likewise.
- * config.gcc (*-*-vxworks*): Add system header wrappers
- to extra_headers.
- (powerpc-*-vxworks*): Reuse the common extra_headers.
-
-2019-12-30 Olivier Hainque <hainque@adacore.com>
-
- * config/vxworks/_vxworks-versions.h: New file.
- * config.gcc (*-*-vxworks*): Add it to extra_headers.
-
-2019-12-30 Olivier Hainque <hainque@adacore.com>
-
- * config/t-vxworks: Rework the vxworks.o compilation
- rules to use $(COMPILE).
-
-2019-12-30 Joel Brobecker <brobecker@adacore.com>
-
- * config.gcc <*-*-vxworks*>: Add vxworks-c.o to c_target_objs
- and cxx_target_objs. Set target_has_targetcm to "yes". Add
- vxworks-predef.h to extra_headers.
- * config/t-vxworks (vxworks-c.o): New target.
- * config/vxworks-c.c: New file.
- * config/vxworks/vxworks-predef.h: New file.
-
-2019-12-30 Alexandre Oliva <oliva@adacore.com>
- Olivier Hainque <hainque@adacore.com>
-
- * config/vx-common.h (WCHAR_TYPE_SIZE): 32 on VxWorks 7.
- (WCHAR_TYPE): Pick accordingly.
- (WINT_TYPE_SIZE): Define in terms of WCHAR_TYPE_SIZE.
- (WINT_TYPE): Define in terms of WCHAR_TYPE.
-
-2019-12-30 Olivier Hainque <hainque@adacore.com>
-
- * config/vx-common.h: Minor reorganization and add
- sectioning comments.
-
-2019-12-30 Doug Rupp <rupp@adacore.com>
-
- * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Define.
-
-2019-12-30 Olivier Hainque <hainque@adacore.com>
- Jerome Lambourg <labourg@adacore.com>
-
- * config/t-vxworks: Arrange to alter/restore glimits.h
- before/after stmp-int-hdrs, so it uses a different macro
- name to protect itself against recursive inclusions.
-
-2019-12-30 Peter Bergner <bergner@linux.ibm.com>
-
- PR target/92923
- * config/rs6000/rs6000-builtin.def (VAND, VANDC, VNOR, VOR, VXOR):
- Delete.
- (EQV_V16QI_UNS, EQV_V8HI_UNS, EQV_V4SI_UNS, EQV_V2DI_UNS, EQV_V1TI_UNS,
- NAND_V16QI_UNS, NAND_V8HI_UNS, NAND_V4SI_UNS, NAND_V2DI_UNS,
- NAND_V1TI_UNS, ORC_V16QI_UNS, ORC_V8HI_UNS, ORC_V4SI_UNS, ORC_V2DI_UNS,
- ORC_V1TI_UNS, VAND_V16QI_UNS, VAND_V16QI, VAND_V8HI_UNS, VAND_V8HI,
- VAND_V4SI_UNS, VAND_V4SI, VAND_V2DI_UNS, VAND_V2DI, VAND_V4SF,
- VAND_V2DF, VANDC_V16QI_UNS, VANDC_V16QI, VANDC_V8HI_UNS, VANDC_V8HI,
- VANDC_V4SI_UNS, VANDC_V4SI, VANDC_V2DI_UNS, VANDC_V2DI, VANDC_V4SF,
- VANDC_V2DF, VNOR_V16QI_UNS, VNOR_V16QI, VNOR_V8HI_UNS, VNOR_V8HI,
- VNOR_V4SI_UNS, VNOR_V4SI, VNOR_V2DI_UNS, VNOR_V2DI, VNOR_V4SF,
- VNOR_V2DF, VOR_V16QI_UNS, VOR_V16QI, VOR_V8HI_UNS, VOR_V8HI,
- VOR_V4SI_UNS, VOR_V4SI, VOR_V2DI_UNS, VOR_V2DI, VOR_V4SF, VOR_V2DF,
- VXOR_V16QI_UNS, VXOR_V16QI, VXOR_V8HI_UNS, VXOR_V8HI,
- VXOR_V4SI_UNS, VXOR_V4SI, VXOR_V2DI_UNS, VXOR_V2DI, VXOR_V4SF,
- VXOR_V2DF): Add definitions.
- * config/rs6000/rs6000-call.c (altivec_overloaded_builtins)
- <ALTIVEC_BUILTIN_VAND, ALTIVEC_BUILTIN_VANDC, ALTIVEC_BUILTIN_VNOR,
- ALTIVEC_BUILTIN_VOR, ALTIVEC_BUILTIN_VXOR>: Remove.
- <ALTIVEC_BUILTIN_VAND_V4SF, ALTIVEC_BUILTIN_VAND_V2DF,
- ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
- ALTIVEC_BUILTIN_VAND_V4SI_UNS, ALTIVEC_BUILTIN_VAND_V4SI,
- ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V8HI,
- ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V16QI_UNS,
- ALTIVEC_BUILTIN_VANDC_V4SF, ALTIVEC_BUILTIN_VANDC_V2DF,
- ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
- ALTIVEC_BUILTIN_VANDC_V4SI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI,
- ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V8HI,
- ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
- ALTIVEC_BUILTIN_VNOR_V4SF, ALTIVEC_BUILTIN_VNOR_V2DF,
- ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
- ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
- ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
- ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
- ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
- ALTIVEC_BUILTIN_VOR_V2DI, ALTIVEC_BUILTIN_VOR_V2DI_UNS,
- ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
- ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
- ALTIVEC_BUILTIN_VOR_V16QI, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
- ALTIVEC_BUILTIN_VXOR_V4SF, ALTIVEC_BUILTIN_VXOR_V2DF,
- ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
- ALTIVEC_BUILTIN_VXOR_V4SI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI,
- ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
- ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS>: Add
- definitions.
- <P8V_BUILTIN_EQV_V16QI, P8V_BUILTIN_EQV_V8HI, P8V_BUILTIN_EQV_V4SI,
- P8V_BUILTIN_EQV_V2DI, P8V_BUILTIN_NAND_V16QI, P8V_BUILTIN_NAND_V8HI,
- P8V_BUILTIN_NAND_V4SI, P8V_BUILTIN_NAND_V2DI, P8V_BUILTIN_ORC_V16QI,
- P8V_BUILTIN_ORC_V8HI, P8V_BUILTIN_ORC_V4SI,
- P8V_BUILTIN_ORC_V2DI>: Change unsigned usages to use the new *_UNS
- definition names.
- (rs6000_gimple_fold_builtin) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
- ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V8HI_UNS,
- ALTIVEC_BUILTIN_VAND_V8HI, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
- ALTIVEC_BUILTIN_VAND_V4SI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
- ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V4SF,
- ALTIVEC_BUILTIN_VAND_V2DF, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
- ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V8HI_UNS,
- ALTIVEC_BUILTIN_VANDC_V8HI, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
- ALTIVEC_BUILTIN_VANDC_V4SI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
- ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V4SF,
- ALTIVEC_BUILTIN_VANDC_V2DF, P8V_BUILTIN_NAND_V16QI_UNS,
- P8V_BUILTIN_NAND_V8HI_UNS, P8V_BUILTIN_NAND_V4SI_UNS,
- P8V_BUILTIN_NAND_V2DI_UNS, P8V_BUILTIN_NAND_V2DI,
- ALTIVEC_BUILTIN_VOR_V16QI_UNS, ALTIVEC_BUILTIN_VOR_V16QI,
- ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
- ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
- ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V2DI,
- ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
- P8V_BUILTIN_ORC_V16QI_UNS, P8V_BUILTIN_ORC_V8HI_UNS,
- P8V_BUILTIN_ORC_V4SI_UNS, P8V_BUILTIN_ORC_V2DI_UNS,
- P8V_BUILTIN_ORC_V2DI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
- ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
- ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
- ALTIVEC_BUILTIN_VXOR_V4SI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
- ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V4SF,
- ALTIVEC_BUILTIN_VXOR_V2DF, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
- ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
- ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
- ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
- ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V4SF,
- ALTIVEC_BUILTIN_VNOR_V2DF>: Use new definition names.
- (builtin_function_type) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
- ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
- ALTIVEC_BUILTIN_VAND_V2DI_UNS, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
- ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
- ALTIVEC_BUILTIN_VANDC_V2DI_UNS, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
- ALTIVEC_BUILTIN_VNOR_V8HI_UNS, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
- ALTIVEC_BUILTIN_VNOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
- ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V4SI_UNS,
- ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
- ALTIVEC_BUILTIN_VXOR_V8HI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
- ALTIVEC_BUILTIN_VXOR_V2DI_UNS, P8V_BUILTIN_EQV_V16QI_UNS,
- P8V_BUILTIN_EQV_V8HI_UNS, P8V_BUILTIN_EQV_V4SI_UNS,
- P8V_BUILTIN_EQV_V2DI_UNS, P8V_BUILTIN_EQV_V1TI_UNS,
- P8V_BUILTIN_NAND_V16QI_UNS, P8V_BUILTIN_NAND_V8HI_UNS,
- P8V_BUILTIN_NAND_V4SI_UNS, P8V_BUILTIN_NAND_V2DI_UNS,
- P8V_BUILTIN_NAND_V1TI_UNS, P8V_BUILTIN_ORC_V16QI_UNS,
- P8V_BUILTIN_ORC_V8HI_UNS, P8V_BUILTIN_ORC_V4SI_UNS,
- P8V_BUILTIN_ORC_V2DI_UNS, P8V_BUILTIN_ORC_V1TI_UNS>: Handle unsigned
- builtins.
-
-2019-12-29 Jakub Jelinek <jakub@redhat.com>
-
- PR target/93078
- * config/i386/i386-builtins.c (ix86_builtin_vectorized_function):
- Remove CASE_CFN_RINT handling.
- * config/i386/i386-builtin.def (IX86_BUILTIN_RINTPD,
- IX86_BUILTIN_RINTPS, IX86_BUILTIN_RINTPD256, IX86_BUILTIN_RINTPS256):
- Remove.
- * config/i386/sse.md (nearbyint<mode>2, rint<mode>2): New expanders
- with VF iterator.
-
-2019-12-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vect_get_strided_load_store_ops): Copy
- DR_STEP before gimplifying it.
-
-2019-12-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_condition): For extract-last
- reductions, check that the target supports the required comparison
- operation.
-
-2019-12-27 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry.
-
-2019-12-27 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vectorizable_reduction): Check whether the
- target supports the required VEC_COND_EXPR operation before
- allowing the fallback handling of masked fold-left reductions.
-
-2019-12-24 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
- -fweb and -frename-registers with -funroll-loops
-
-2019-12-22 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/invoke.texi (-flto): Use "compile time" as a noun.
-
-2019-12-21 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/93015
- * ipa-cp.c (ipcp_store_vr_results): Check that info exists
-
-2019-12-20 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/predicates.md (cint34_operand): Use
- SIGNED_INTEGER_34BIT_P macro.
- * config/rs6000/rs6000.c (num_insns_constant_gpr): Use the
- SIGNED_INTEGER_16BIT_P and SIGNED_INTEGER_34BIT_P macros.
- (address_to_insn_form): Use the SIGNED_INTEGER_16BIT_P and
- SIGNED_INTEGER_34BIT_P macros.
- * config/rs6000/rs6000.h (SIGNED_INTEGER_NBIT_P): New macro.
- (SIGNED_INTEGER_16BIT_P): Rename SIGNED_16BIT_OFFSET_P to be
- SIGNED_INTEGER_34BIT_P.
- (SIGNED_INTEGER_34BIT_P): Rename SIGNED_34BIT_OFFSET_P to be
- SIGNED_INTEGER_34BIT_P.
-
-2019-12-20 Stam Markianos-Wright <stam.markianos-wright@arm.com>
-
- * doc/sourcebuild.texi
- (arm_v8_2a_bf16_neon_ok): Document new target supports option.
- (arm_v8_2a_i8mm_ok): Likewise.
-
-2019-12-20 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92841
- * config/i386/i386.md (*stack_protect_set_3): For pic_32bit_operand
- always use lea{q}, no matter what value which_alternative has.
-
- PR target/93002
- * config/i386/i386.md (dec reg; cmp $-1, reg; jne lab): New
- define_peephole2.
-
-2019-12-19 Julian Brown <julian@codesourcery.com>
-
- * gimplify.c (gimplify_omp_var_data): Add GOVD_MAP_HAS_ATTACHMENTS.
- (insert_struct_comp_map): Support derived-type member mappings
- for arrays with descriptors which use GOMP_MAP_TO_PSET. Support
- GOMP_MAP_ATTACH_DETACH.
- (gimplify_scan_omp_clauses): Tidy up OACC_ENTER_DATA/OACC_EXIT_DATA
- mappings. Handle attach/detach clauses and component references.
- (gimplify_adjust_omp_clauses_1): Skip adjustments for explicit
- attach/detach clauses.
- (gimplify_omp_target_update): Handle struct mappings and finalize for
- detach operations.
- * omp-low.c (lower_omp_target): Support GOMP_MAP_ATTACH,
- GOMP_MAP_DETACH, GOMP_MAP_FORCE_DETACH.
- * tree-pretty-print.c (dump_omp_clause): Likewise, plus
- GOMP_MAP_ATTACH_DETACH.
-
-2019-12-19 Julian Brown <julian@codesourcery.com>
-
- * gimplify.c (insert_struct_comp_map, extract_base_bit_offset): New.
- (gimplify_scan_omp_clauses): Outline duplicated code into calls to
- above two functions.
-
-2019-12-19 Vladimir Makarov <vmakarov@redhat.com>
-
- PR target/92905
- * lra-constraints.c (process_alt_operands): Check offmemok when
- processing preferred_reload_class.
-
-2019-12-19 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md
- (<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>):
- Change input predcate to gcn_alu_operand.
- (extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>):
- Likewise.
- (truncv64di<mode>2): Likewise.
- (truncv64di<mode>2_exec): Likewise.
- (<convop><mode>v64di2): Likewise.
- (<convop><mode>v64di2_exec): Likewise.
-
-2019-12-19 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (*plus_carry_dpp_shr_<mode>): Rename to ...
- (*plus_carry_dpp_shr_v64si): ... this, and replace all
- VEC_1REG_INT_MODE with V64SI.
-
-2019-12-19 David Malcolm <dmalcolm@redhat.com>
-
- * hash-map-tests.c (selftest::test_map_of_int_to_strings): New
- selftest.
- (selftest::hash_map_tests_c_tests): Call it.
-
-2019-12-19 David Malcolm <dmalcolm@redhat.com>
-
- * gimple-predict.h (gimple_predict_predictor): Make "gs" param
- const.
- (gimple_predict_outcome): Likewise.
- * gimple-pretty-print.c (do_niy): Likewise.
- (dump_unary_rhs): Likewise.
- (dump_binary_rhs): Likewise.
- (dump_ternary_rhs): Likewise.
- (dump_gimple_assign): Likewise.
- (dump_gimple_return): Likewise.
- (dump_gimple_call_args): Likewise.
- (pp_points_to_solution): Make "pt" param const.
- (dump_gimple_call): Make "gs" param const.
- (dump_gimple_switch): Likewise.
- (dump_gimple_cond): Likewise.
- (dump_gimple_label): Likewise.
- (dump_gimple_goto): Likewise.
- (dump_gimple_bind): Likewise.
- (dump_gimple_try): Likewise.
- (dump_gimple_catch): Likewise.
- (dump_gimple_eh_filter): Likewise.
- (dump_gimple_eh_must_not_throw): Likewise.
- (dump_gimple_eh_else): Likewise.
- (dump_gimple_resx): Likewise.
- (dump_gimple_eh_dispatch): Likewise.
- (dump_gimple_debug): Likewise.
- (dump_gimple_omp_for): Likewise.
- (dump_gimple_omp_continue): Likewise.
- (dump_gimple_omp_single): Likewise.
- (dump_gimple_omp_taskgroup): Likewise.
- (dump_gimple_omp_target): Likewise.
- (dump_gimple_omp_teams): Likewise.
- (dump_gimple_omp_sections): Likewise.
- (dump_gimple_omp_block): Likewise.
- (dump_gimple_omp_critical): Likewise.
- (dump_gimple_omp_ordered): Likewise.
- (dump_gimple_omp_scan): Likewise.
- (dump_gimple_omp_return): Likewise.
- (dump_gimple_transaction): Likewise.
- (dump_gimple_asm): Likewise.
- (dump_gimple_phi): Make "phi" param const.
- (dump_gimple_omp_parallel): Make "gs" param const.
- (dump_gimple_omp_task): Likewise.
- (dump_gimple_omp_atomic_load): Likewise.
- (dump_gimple_omp_atomic_store): Likewise.
- (dump_gimple_mem_ops): Likewise.
- (pp_gimple_stmt_1): Likewise. Add "const" to the various as_a <>
- casts throughout.
- * gimple-pretty-print.h (gimple_stmt_1): Make gimple * param const.
- * gimple.h (is_a_helper <const gdebug *>::test): New.
- (is_a_helper <const ggoto *>::test): New.
- (is_a_helper <const glabel *>::test): New.
- (is_a_helper <const geh_else *>::test): New.
- (is_a_helper <const geh_mnt *>::test): New.
- (is_a_helper <const gswitch *>::test): New.
- (is_a_helper <const gtry *>::test): New.
- (is_a_helper <const greturn *>::test): New.
- (gimple_call_tail_p): Make param const.
- (gimple_call_return_slot_opt_p): Likewise.
- (gimple_call_va_arg_pack_p): Likewise.
- (gimple_call_use_set): Add const overload.
- (gimple_call_clobber_set): Likewise.
- (gimple_has_lhs): Make param const.
- (gimple_bind_body): Likewise.
- (gimple_catch_handler): Likewise.
- (gimple_eh_filter_failure): Likewise.
- (gimple_eh_must_not_throw_fndecl): Likewise.
- (gimple_eh_else_n_body): Likewise.
- (gimple_eh_else_e_body): Likewise.
- (gimple_try_eval): Likewise.
- (gimple_try_cleanup): Likewise.
- (gimple_phi_arg): Add const overload.
- (gimple_phi_arg_def): Make param const.
- (gimple_phi_arg_edge): Likewise.
- (gimple_phi_arg_location): Likewise.
- (gimple_phi_arg_has_location): Likewise.
- (gimple_debug_bind_get_var): Likewise.
- (gimple_debug_bind_get_value): Likewise.
- (gimple_debug_source_bind_get_var): Likewise.
- (gimple_debug_source_bind_get_value): Likewise.
- (gimple_omp_body): Likewise.
- (gimple_omp_for_collapse): Likewise.
- (gimple_omp_for_pre_body): Likewise.
- (gimple_transaction_body): Likewise.
- * tree-eh.c (lookup_stmt_eh_lp_fn): Make param "t" const.
- (lookup_stmt_eh_lp): Likewise.
- * tree-eh.h (lookup_stmt_eh_lp_fn): Make param const.
- (lookup_stmt_eh_lp): Likewise.
- * tree-ssa-alias.h (pt_solution_empty_p): Make param const.
- * tree-ssa-structalias.c (pt_solution_empty_p): Likewise.
-
-2019-12-19 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): When
- handling partial SVE vectors, use the container mode rather than
- the element mode if the constant isn't a single-element duplicate.
- * config/aarch64/aarch64-sve.md (@aarch64_sve_reinterpret<mode>):
- Check targetm.can_change_mode_class instead of BYTES_BIG_ENDIAN.
-
-2019-12-19 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (addv64si3<exec_clobber>): Rename to ...
- (add<mode>3<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE.
- (addv64si3_dup<exec_clobber>): Rename to ...
- (add<mode>3_dup<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE.
- (subv64si3<exec_clobber>): Rename to ...
- (sub<mode>3<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE.
-
-2019-12-19 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_can_change_mode_class):
- Don't allow changes between partial SVE modes and other kinds
- of mode. Don't allow changes between two partial SVE modes
- if they have different container or element sizes.
-
-2019-12-19 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_function_value_1): New function,
- split out from...
- (aarch64_function_value): ...here. Handle partial SVE modes by
- pretending that they have the associated/traditional integer mode,
- then wrap the result in the real mode.
- (aarch64_layout_arg): Take an orig_mode argument and pass it to
- aarch64_function_arg_alignment. Handle partial SVE modes analogously
- to aarch64_function_value.
- (aarch64_function_arg): Update call accordingly.
- (aarch64_function_arg_advance): Likewise.
-
-2019-12-19 Jan Hubicka <hubicka@ucw.cz>
- Xi Ruoyao <xry111@mengyan1223.wang>
-
- * cgraph.c (cgraph_node_cannot_be_local_p_1): Prevent targets of
- symver attributes to be localized.
- * ipa-visibility.c (cgraph_externally_visible_p,
- varpool_node::externally_visible_p): Likewise.
- * symtab.c (symtab_node::verify_base): Check visibility of symbol
- versions.
-
-2019-12-19 Jan Hubicka <hubicka@ucw.cz>
- Luo Xiong Hu <luoxhu@linux.ibm.com
-
- * ipa-fnsummary.h (ipa_size_summary): Remove copy consturctor.
- (ipa_size_summary_t): Add duplicate method; move to heap.
- * ipa-fnsumary.c (ipa_fn_summary_alloc): Fix allocation.
-
-2019-12-19 Feng Xue <fxue@os.amperecomputing.com>
-
- PR ipa/92794
- * ipa-cp.c (self_recursive_agg_pass_through_p): New function.
- (intersect_with_plats): Use error_mark_node as place holder
- when aggregate jump function is simple pass-through for
- self-recursive call.
- (intersect_with_agg_replacements): Likewise.
- (intersect_aggregates_with_edge): Likewise.
- (find_aggregate_values_for_callers_subset): Likewise.
-
-2019-12-18 David Malcolm <dmalcolm@redhat.com>
-
- * common.opt (fdiagnostics-show-cwe): Add.
- * diagnostic-core.h (class diagnostic_metadata): New forward decl.
- (warning_at): Add overload taking a const diagnostic_metadata &.
- (emit_diagnostic_valist): Add overload taking a
- const diagnostic_metadata *.
- * diagnostic-format-json.cc: Include "diagnostic-metadata.h".
- (json_from_metadata): New function.
- (json_end_diagnostic): Call it to add "metadata" child for
- diagnostics with metadata.
- (diagnostic_output_format_init): Clear context->show_cwe.
- * diagnostic-metadata.h: New file.
- * diagnostic.c: Include "diagnostic-metadata.h".
- (diagnostic_impl): Add const diagnostic_metadata * param.
- (diagnostic_n_impl): Likewise.
- (diagnostic_initialize): Initialize context->show_cwe.
- (diagnostic_set_info_translated): Initialize diagnostic->metadata.
- (get_cwe_url): New function.
- (print_any_cwe): New function.
- (diagnostic_report_diagnostic): Call print_any_cwe if the
- diagnostic has non-NULL metadata.
- (emit_diagnostic): Pass NULL as the metadata in the call to
- diagnostic_impl.
- (emit_diagnostic_valist): Likewise.
- (emit_diagnostic_valist): New overload taking a
- const diagnostic_metadata *.
- (inform): Pass NULL as the metadata in the call to
- diagnostic_impl.
- (inform_n): Likewise for diagnostic_n_impl.
- (warning): Likewise.
- (warning_at): Likewise. Add overload that takes a
- const diagnostic_metadata &.
- (warning_n): Pass NULL as the metadata in the call to
- diagnostic_n_impl.
- (pedwarn): Likewise for diagnostic_impl.
- (permerror): Likewise.
- (error): Likewise.
- (error_n): Likewise.
- (error_at): Likewise.
- (sorry): Likewise.
- (sorry_at): Likewise.
- (fatal_error): Likewise.
- (internal_error): Likewise.
- (internal_error_no_backtrace): Likewise.
- * diagnostic.h (diagnostic_info::metadata): New field.
- (diagnostic_context::show_cwe): New field.
- * doc/invoke.texi (-fno-diagnostics-show-cwe): New option.
- * opts.c (common_handle_option): Handle OPT_fdiagnostics_show_cwe.
- * toplev.c (general_init): Initialize global_dc->show_cwe.
-
-2019-12-19 Julian Brown <julian@codesourcery.com>
- Maciej W. Rozycki <macro@codesourcery.com>
- Tobias Burnus <tobias@codesourcery.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * omp-low.c (lower_omp_target): Support GOMP_MAP_NO_ALLOC.
- * tree-pretty-print.c (dump_omp_clause): Likewise.
-
-2019-12-18 Eric Botcazou <ebotcazou@adacore.com>
-
- * ira.c (ira): Use simple LRA algorithm when not optimizing.
-
-2019-12-18 Thomas Schwinge <thomas@codesourcery.com>
-
- * gimplify.c (gimplify_omp_target_update): Elaborate 'exit data'
- 'finalize' handling.
-
-2019-12-18 Tobias Burnus <tobias@codesourcery.com>
-
- PR middle-end/86416
- * Makefile.in (CFLAGS-lto-streamer-in.o): Pass target_noncanonical on.
- * lto-streamer-in.c (lto_input_mode_table): Improve unsupported-mode
- diagnostic.
-
-2019-12-18 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/aarch64/aarch64-cores.def:
- ("cortex-a76ae"): Use neoversen1 tuning.
- ("cortex-a77"): Likewise.
- ("cortex-a65"): Use cortexa53 scheduler.
- ("cortex-a65ae"): Likewise.
- ("neoverse-e1"): Use cortexa73 tuning.
-
-2019-12-18 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/92971
- * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
- definition of values, release memory on exit.
-
-2019-12-17 Jan Hubicka <hubicka@ucw.cz>
- Martin Jambor <mjambor@suse.cz>
-
- * ipa-param-manipulation.h (get_original_index): Declare.
- * ipa-param-manipulation.c (ipa_param_adjustments::get_original_index):
- New member function.
- * ipa-prop.c (ipcp_get_parm_bits): New function.
- * ipa-prop.h (ipcp_get_parm_bits): Declare.
- * tree-ssa-ccp.c: Include cgraph.h, alloc-pool.h, symbol-summary.h,
- ipa-utils.h and ipa-prop.h
- (get_default_value): Use ipcp_get_parm_bits.
-
-2019-12-18 Jakub Jelinek <jakub@redhat.com>
-
- PR lto/92972
- * lto-wrapper.c (merge_and_complain): Use just "-fno-pie" instead of
- big ? "-fno-pie" : "-fno-pie". Formatting fixes. Fix comment typo.
-
-2019-12-17 Martin Sebor <msebor@redhat.com>
-
- PR c++/61339
- * doc/invoke.texi (-Wmismatched-tags, -Wredundant-tags): Document
- new C++ options.
-
-2019-12-17 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/rs6000.c (num_insns_constant_gpr): Return 1 if the
- constant can be loaded with PLI if -mcpu=future.
- * config/rs6000/rs6000.md (add<mode>3): Add alternative to
- generate PADDI for 34-bit constants if -mcpu=future.
- (movdi_internal64): Add alternative to use PLI to load up 34-bit
- constants if -mcpu=future.
- (movsi_internal1): Add alternative to use PLI to load up 32-bit
- constants if -mcpu=future.
- * config/rs6000/predicates.md (add_operand): Allow eI constants.
-
-2019-12-17 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92841
- * config/i386/i386.md (@stack_protect_set_1_<mode>,
- @stack_protect_test_1_<mode>): Use output_asm_insn.
- (*stack_protect_set_2_<mode>, *stack_protect_set_3): New define_insns
- and corresponding define_peephole2s.
-
-2019-12-17 Jan Hubicka <hubicka@ucw.cz>
-
- * symtab.c (symtab_node::get_partitioning_class): Aliases of external
- symbols are external.
-
-2019-12-17 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-protos.h (thumb1_gen_const_int): Add new prototype.
- * config/arm/arm.c (arm_option_check_internal): Remove restriction
- on MOVT for -mpure-code.
- (thumb1_gen_const_int): New function.
- (thumb1_legitimate_address_p): Support -mpure-code.
- (thumb1_rtx_costs): Likewise.
- (thumb1_size_rtx_costs): Likewise.
- (arm_thumb1_mi_thunk): Likewise.
- * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Likewise.
- * config/arm/thumb1.md (thumb1_movsi_symbol_ref): New.
- (*thumb1_movhf): Support -mpure-code.
- * doc/invoke.texi (-mpure-code): Remove restriction on MOVT.
-
-2019-12-17 Andrew Stubbs <ams@codesourcery.com>
-
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Mention pr92772
- in the comments.
-
-2019-12-17 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (extract_last_<mode>): New expander.
- (fold_extract_last_<mode>): New expander.
-
-2019-12-17 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
- (CTZ_DEFINED_VALUE_AT_ZERO): Define.
- * config/gcn/gcn.md (s_mnemonic): Add clz and ctz.
- (expander): Likewise.
- (countzeros): New code iterator.
- (<expander>si2): New insn pattern.
- (<expander>di2): New insn pattern.
-
-2019-12-17 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92962
- * common/config/i386/i386-common.c (processor_alias_table): Formatting
- fixes.
- * doc/invoke.texi (bdver3, bdver4, znver1): Add missing closing paren.
- (znver2): Likewise. Add RDPID and WBNOINVD, remove spurious comma
- before CLWB.
-
-2019-12-17 Hongyu Wang <hongyu.wang@intel.com>
-
- PR target/92651
- * config/i386/i386.h (TARGET_EXPAND_ABS): New macro.
- * config/i386/x86-tune.def (X86_TUNE_EXPAND_ABS): New.
- * config/i386/i386.md (abs<SWI48x>2): New define_expand.
-
-2019-12-17 H.J. Lu <hjl.tools@gmail.com>
-
- PR target/92807
- * config/i386/i386.c (ix86_lea_outperforms): Check !TARGET_BONNELL.
- (ix86_avoid_lea_for_addr): When not optimizing for Bonnell, use add
- for a = a + b and a = b + a.
-
-2019-12-16 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/92952
- * builtins.c (compute_objsize): Adjust offset by the array low bound.
-
-2019-12-16 David Malcolm <dmalcolm@redhat.com>
-
- * pretty-print.c (pp_write_text_as_html_like_dot_to_stream): New
- function.
- * pretty-print.h (pp_write_text_as_html_like_dot_to_stream): New decl.
-
-2019-12-16 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of
- hardcoding the (old, expired) register number.
- (*mtcrfsi): Ditto.
-
-2019-12-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config.gcc: s/msp430*-*-*/msp430-*-*.
- Handle msp430-*-elfbare.
- * config/msp430/msp430-devices.c (TARGET_SUBDIR): Define.
- (_MSPMKSTR): Define.
- (__MSPMKSTR): Define.
- (rest_of_devices_path): Use TARGET_SUBDIR value in string.
- * config/msp430/msp430.c (msp430_option_override): Error if
- -fuse-cxa-atexit is used when it has been disabled at configure time.
- * config/msp430/t-msp430: Define TARGET_SUBDIR when building
- msp430-devices.o.
- * doc/install.texi: Document msp430-*-elf and msp430-*-elfbare.
- * doc/invoke.texi: Update documentation about which path devices.csv is
- searched for.
-
-2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com>
-
- PR target/92950
- * config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
- and lhrl with llc.
-
-2019-12-14 Martin Sebor <msebor@redhat.com>
-
- * doc/extend.texi (attribute access): Correct typos.
-
-2019-12-14 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/92357
- * ipa-fnsummary.c (ipa_fn_summary_write): Use
- lto_symtab_encoder_iterator with lsei_start_function_in_partition and
- lsei_next_function_in_partition instead of walking all cgraph nodes
- in encoder.
-
- PR tree-optimization/92930
- * ipa-pure-const.c (special_builtin_state): Don't handle
- BUILT_IN_APPLY. Formatting fixes.
- (check_call): Formatting fixes.
-
-2019-12-14 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.h (DARWIN_EXTRA_SPECS): Add new
- bundle spec. (DARWIN_BUNDLE1_SPEC): New.
- (STARTFILE_SPEC): Use darwin bundle spec.
- * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
- (DARWIN_DYLIB1_SPEC): Delete duplicate.
-
-2019-12-13 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/91582
- PR middle-end/92868
- * builtins.c (addr_decl_size): New function.
- (gimple_call_alloc_size): Add arguments.
- (compute_objsize): Add an argument. Set *PDECL even for allocated
- objects.
- Correct checking for negative wide_int.
- Correct handling of negative outer offsets into unknown regions
- or with unknown inner offsets.
- Extend offsets to at most sizetype precision.
- Only handle constant subobject sizes.
- * builtins.h (gimple_call_alloc_size): Add arguments.
- * tree.c (component_ref_size): Always return sizetype.
- * tree-ssa-strlen.c (strinfo::alloc): New member.
- (get_addr_stridx): Add argument.
- (get_stridx): Use ptrdiff_t. Add argument.
- (new_strinfo): Set new member.
- (get_string_length): Handle alloca and VLA.
- (dump_strlen_info): Dump more state.
- (maybe_invalidate): Print more info. Decrease indentation.
- (unshare_strinfo): Set new member.
- (valid_builtin_call): Handle alloca and VLA.
- (maybe_warn_overflow): Check and set no-warning bit. Improve
- handling of offsets. Print allocated objects.
- (handle_builtin_strlen): Handle strinfo records with null lengths.
- (handle_builtin_strcpy): Add argument. Call maybe_warn_overflow.
- (is_strlen_related_p): Handle dynamically allocated objects.
- (get_range): Add argument.
- (handle_builtin_malloc): Rename...
- (handle_alloc): ...to this and handle all allocation functions.
- (handle_builtin_memset): Call maybe_warn_overflow.
- (count_nonzero_bytes): Handle more MEM_REF forms.
- (strlen_check_and_optimize_call): Call handle_alloc_call. Pass
- arguments to more callees.
- (handle_integral_assign): Add argument. Create strinfo entries
- for MEM_REF assignments.
- (check_and_optimize_stmt): Handle more MEM_REF forms.
-
-2019-12-13 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/rs6000/darwin.h (DARWIN_DYLIB1_SPEC): New.
-
-2019-12-13 Jan Hubicka <hubicka@ucw.cz>
-
- * lto-streamer-in.c (input_function): Add node parameter.
- (lto_read_body_or_constructor): Use it.
-
-2019-12-13 Roman Zhuykov <zhroma@ispras.ru>
-
- PR rtl-optimization/92591
- * modulo-sched.c (ps_add_node_check_conflicts): Improve checking
- for history > 0 case.
-
-2019-12-13 Roman Zhuykov <zhroma@ispras.ru>
-
- * modulo-sched.c (sms_schedule): Use param_sms_max_ii_factor
- value instead of macro. Adjust comment.
- (sms_schedule_by_order): Use parameter value without macro.
- * params.opt: Add ranges for modulo scheduler parameters,
- set param_sms_max_ii_factor = 2 by default.
-
-2019-12-13 Roman Zhuykov <zhroma@ispras.ru>
-
- PR rtl-optimization/90001
- * ddg.c (create_ddg): Init max_dist array for each node.
- (free_ddg): Free max_dist array.
- (create_ddg_edge): Use bool field instead of aux union.
- (set_recurrence_length): Use prepared max_dist information instead
- of calling longest_simple_path.
- (create_scc): Remove graph argument, fill node's aux.count with
- SCC id, and move set_recurrence_length call to...
- (create_ddg_all_sccs): ...here, after filling all max_dist arrays
- using FloydâÂÂWarshall-like algorithm.
- (update_dist_to_successors): Remove the whole function.
- (longest_simple_path): Likewise.
- * ddg.h (struct ddg_node): Add max_dist pointer.
- (struct ddg_edge): Use bool field instead of unused aux union.
-
-2019-12-13 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (mulv64si3<exec>): Rename to ...
- (mul<mode>3<exec>): ... this, and implement sub-dword patterns.
- (mulv64si3_dup<exec>): Rename to ...
- (mul<mode>3_dup<exec>): ... this, and implement sub-dword patterns.
-
-2019-12-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common
- targets.
-
-2019-12-13 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (sdwa): New mode attribute.
- (VCVT_FROM_MODE): Rename to ...
- (VCVT_MODE): ... this.
- (VCVT_TO_MODE): Delete mode iterator.
- (VCVT_FMODE): New mode iterator.
- (VCVT_IMODE): Likewise.
- (<cvt_name><VCVT_FROM_MODE:mode><VCVT_TO_MODE:mode>2<exec>): Change ...
- (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): ... to this.
- (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): New.
- (zero_convert): New code iterator.
- (convop): New code attribute.
- (<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>)
- : New.
- (extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>)
- : New.
- (vec_truncatev64div64si): Rename to ...
- (truncv64di<mode>2): ... this and implement sub-dword patterns.
- (vec_truncatev64div64si_exec): Rename to ...
- (truncv64di<mode>2_exec): ... this and implement sub-dword patterns.
- (<convop><mode>v64di2): New insn_and_split.
- (<convop><mode>v64di2_exec): Likewise.
- (mask_gather_load<mode>): Update truncate names.
- (mask_scatter_store<mode>): Likewise.
- * config/gcn/gcn.c (gcn_expand_scaled_offsets): Update truncate names.
-
-2019-12-13 Dennis Zhang <dennis.zhang@arm.com>
-
- * config/aarch64/aarch64-arches.def (armv8.6-a): New.
- * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
- __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC and
- __ARM_FEATURE_BF16_SCALAR_ARITHMETIC when enabled.
- * config/aarch64/aarch64-option-extensions.def (i8mm, bf16): New.
- (fp): Disabling fp also disables i8mm and bf16.
- (simd): Disabling simd also disables i8mm.
- * config/aarch64/aarch64.h (AARCH64_FL_V8_6): New macro.
- (AARCH64_FL_I8MM, AARCH64_FL_BF16, AARCH64_FL_FOR_ARCH8_6): Likewise.
- (AARCH64_ISA_V8_6, AARCH64_ISA_I8MM, AARCH64_ISA_BF16): Likewise.
- (TARGET_I8MM, TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
- * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options
- and add a new table to list permissible values for ARCH.
-
-2019-12-13 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92908
- * simplify-rtx.c (simplify_relational_operation): Punt for vector
- cmp_mode and scalar mode, if simplify_relational_operation returned
- const_true_rtx.
- (simplify_const_relational_operation): Change VOID_mode in function
- comment to VOIDmode.
-
-2019-12-13 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/rs6000.c (adjust_vectorization_cost): New function.
- (rs6000_add_stmt_cost): Call adjust_vectorization_cost and update
- stmt_cost.
-
-2019-12-12 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92904
- * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
- not need_temp, decrease alignment of the read because the GPR save
- area only guarantees 8-byte alignment.
-
-2019-12-12 Georg-Johann Lay <avr@gjlay.de>
-
- Add support for some more AVR devices from avrxmega3 family.
-
- * config/avr/avr-mcus.def (attiny1604, attiny1606, attiny1607)
- (attiny402, attiny404, attiny406)
- (attiny804, attiny806, attiny807)
- (attiny202, attiny204): Add AVR_MCU lines to support them.
- * doc/avr-mmcu.texi: Regenerate.
-
-2019-12-12 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
- of execution of function call parameters.
-
-2019-12-12 Vineet Gupta <vgupta@synopsys.com>
-
- * config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which
- helps codegen generate exceptions even for quiet NaN.
- * config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode.
- (get_arc_condition_code): Likewise.
- (arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode.
- * config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode.
- * config/arc/predicates.md (proper_comparison_operator): Likewise.
- * config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE.
- (cmpdf_fpu_trap): Likewise.
-
-2019-12-12 Claudiu Zissulescu <claziss@synopsys.com>
-
- * config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE.
- (cstoredi4): Use TARGET_HARD_FLOAT.
-
-2019-12-11 Jakub Jelinek <jakub@redhat.com>
-
- * opts.c (default_options_table): Move -ftree-loop-distribute-patterns
- entry from -O3 or later section to -O2 or later section.
- * doc/invoke.texi (-ftree-loop-distribute-patterns): Mention the
- option is enabled by default at -O2+ rather than just at -O3.
-
- PR target/92723
- * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
- vect_internal_def, use oprnd1 as is, without trying to cast it.
- Formatting fix.
-
-2019-12-11 Martin Sebor <msebor@redhat.com>
-
- * builtins.c (compute_objsize): Add an argument and set it to offset
- into destination.
- * builtins.h (compute_objsize): Add an argument.
- * tree-object-size.c (addr_object_size): Add an argument and set it
- to offset into destination.
- (compute_builtin_object_size): Same.
- * tree-object-size.h (compute_builtin_object_size): Add an argument.
- * tree-ssa-strlen.c (get_addr_stridx): Add an argument and set it
- to offset into destination.
- (maybe_warn_overflow): New function.
- (handle_store): Call maybe_warn_overflow to issue warnings.
-
-2019-12-11 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.h (STARTFILE_SPEC) [!fexceptions]: Use
- crtbegin_no_eh.o if building for the C language.
- [fno-exceptions]: Use crtbegin_no_eh.o if building for any language
- except C.
- (ENDFILE_SPEC) [!fexceptions]: Use crtend_no_eh.o if building for
- the C language.
- [fno-exceptions]: Use crtend_no_eh.o if building for any language
- except C.
- * config/msp430/t-msp430: Add -fno-exceptions multilib.
- * doc/install.texi: Document --disable-no-exceptions multilib configure
- option.
- * doc/sourcebuild.texi: Document exceptions_enabled effective target.
-
-2019-12-11 David Malcolm <dmalcolm@redhat.com>
-
- * pretty-print.c (pretty_printer::pretty_printer): New copy-ctor.
- (pretty_printer::clone): New vfunc implementation.
- * pretty-print.h (format_postprocessor::clone): New pure vfunc
- decl.
- (pretty_printer::pretty_printer): New copy-ctor decl.
- (pretty_printer::clone): New vfunc decl.
-
-2019-12-11 David Malcolm <dmalcolm@redhat.com>
-
- * function-tests.c (selftest::make_fndecl): Make non-static.
- * selftest.h (selftest::make_fndecl): New decl.
-
-2019-12-11 Lewis Hyatt <lhyatt@gmail.com>
-
- PR 91853
- * pretty-print.c (pp_quoted_string): Avoid hex-escaping valid
- multibyte input. Fix off-by-one-bug printing the last byte before a
- hex-escaped output.
- (pp_character): Don't apply line wrapping in the middle of multibyte
- characters.
- (test_utf8): New test.
- (pretty_print_c_tests): Call the new test.
-
-2019-12-11 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup.
- (ALL_SIMD): Use it.
- (ALL_FPU_EXTERNAL): New fgroup.
- (ALL_FP): Use it.
- (cortex-a55, cortex-a75, cortex-a76, cortex-a76ae): Remove redundant
- +simd from architecture specification.
- (cortex-a77, neoverse-n1, cortex-a75.cortex-a55): Likewise.
- * config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ...
- (isa_all_fpubits_internal, fpu_bitlist_internal): ... these.
- (isa_all_fpbits): New bitmap.
- (arm_option_override): Initialize it.
- (arm_configure_build_target): If the target isa does not have any
- FP enabled, do not warn about mismatches in FP-related feature bits.
-
-2019-12-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
-
- * real.c (struct arm_bfloat_half_format,
- encode_arm_bfloat_half, decode_arm_bfloat_half): New.
- * real.h (arm_bfloat_half_format): New.
-
-2019-12-11 Hongtao Liu <hongtao.liu@intel.com>
-
- PR target/92865
- * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Enable
- integer mask cmov when available even with TARGET_XOP.
-
-2019-12-10 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92891
- * builtins.c (gimple_call_alloc_size): Convert size to sizetype
- before returning it.
-
-2019-12-10 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/92796
- * lra-int.h (lra_risky_transformations_p): Rename to
- check_and_force_assignment_correctness_p.
- * lra-assigns.c: Ditto.
- (lra_assign): Reset check_and_force_assignment_correctness_p.
- * lra-constraints.c (lra_risky_transformations_p): Rename to
- check_and_force_assignment_correctness_p.
- (lra_constraints): Set up check_and_force_assignment_correctness_p
- only for the 1st sub-pass.
- * lra-eliminations.c (process_insn_for_elimination): Set up
- check_and_force_assignment_correctness_p if the insn chnaged its
- code.
-
-2019-12-10 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/92882
- * regstat.c (regstat_bb_compute_calls_crossed): Don't check
- INSN_UID against DF_INSN_SIZE or use DF_INSN_INFO_GET unless
- NONDEBUG_INSN_P.
-
- PR ipa/92883
- * ipa-cp.c (propagate_vr_across_jump_function): Pass jvr rather
- than *jfunc->m_vr to intersect. Formatting fix.
-
- PR middle-end/92825
- * cfgexpand.c (add_stack_protection_conflicts): Change return type
- from void to bool, return true if at least one stack_vars[i].decl
- is addressable.
- (record_or_union_type_has_array_p, stack_protect_decl_p): Remove.
- (expand_used_vars): Don't call stack_protect_decl_p, instead for
- -fstack-protector-strong set gen_stack_protect_signal to true
- if add_stack_protection_conflicts returned true. Formatting fixes.
- * doc/invoke.texi (-fstack-protector-strong): Clarify that optimized
- out variables or variables not living on the stack don't count.
- (-fstack-protector): Likewise. Clarify it affects >= 8 byte arrays
- rather than > 8 byte.
-
- * ipa-param-manipulation.c
- (ipa_param_body_adjustments::register_replacement): Fix comment typo
- - accross -> across.
- * ipa-sra.c (propagate_used_across_scc_edge, ipa_sra_analysis):
- Likewise.
- (param_splitting_across_edge): Fix typo in dump message - accross
- -> across.
-
-2019-12-10 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.c (cgraph_node::verify_node): Verify tp_first_run.
- * cgraph.h (cgrpah_node): Turn tp_first_run back to int.
- * cgraphunit.c (tp_first_run_node_cmp): Do not watch for overflows.
- (expand_all_functions): First expand ordered section and then
- unordered.
- * profile.c (compute_value_histograms): Error on out of range
- tp_first_runs.
-
-2019-12-10 Jan Hubicka <hubicka@ucw.cz>
-
- * predict.c (compute_function_frequency): Check for presence of IPA
- profile.
-
-2019-12-10 Jan Hubicka <hubicka@ucw.cz>
-
- * varasm.c (default_function_section): Fix confused tests for
- tp_first_run reordering.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Don't
- allow SVE modes in GPRs.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (vccore): New iterator.
- * config/aarch64/aarch64-sve.md (vec_series<mode>): Use it instead
- of vwcore.
- (*vec_series<mode>_plus): Likewise.
-
-2019-12-10 Frederik Harwath <frederik@codesourcery.com>
-
- * omp-low.c (scan_omp_for): Use clause location in warning.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * dwarf2out.c (loc_descriptor): Punt for MODE_VECTOR_BOOL.
- (add_const_value_attribute): Likewise.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vect_create_epilog_for_reduction): When
- handling direct_slp_reduc, allow the PHI arguments to have
- a different type from the vector elements.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_condition): Record the loop
- masks required for extract-last reductions.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vect_finish_replace_stmt): Always use the
- original scalar statement rather than a pattern statement.
- (vectorizable_condition): Likewise, in the handling of extract-last
- reductions.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vectorizable_reduction): Don't use
- EXTRACT_LAST_REDUCTION for chained reductions.
-
-2019-12-10 Richard Sandiford <richard.sandiford@arm.com>
-
- * ipa-utils.h (get_odr_name_for_type): Check for a TYPE_DECL.
- * ipa-devirt.c (warn_types_mismatch): Don't call xstrdup for the
- second demangled name.
-
-2019-12-10 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386.c (IX86_LEA_PRIORITY): Fix comment typos.
-
-2019-12-10 Martin Liska <mliska@suse.cz>
-
- PR tree-optimization/92862
- * predict.c (predict_paths_leading_to_edge): Fix typo from e to e2.
- * tree-ssa-loop-niter.c (loop_only_exit_p): Return false
- instead of true;
-
-2019-12-09 David Malcolm <dmalcolm@redhat.com>
-
- * gcc-rich-location.c
- (maybe_range_label_for_tree_type_mismatch::get_text): Replace
- label_text ctor call with label_text::borrow.
- * gcc-rich-location.h (text_range_label::get_text): Replace
- label_text ctor called with false with label_text::borrow.
-
-2019-12-09 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-show-locus.c (diagnostic_show_locus): Remove initial
- newline.
- (selftest::test_diagnostic_show_locus_unknown_location): Remove
- initial newline from expected outputs.
- (selftest::test_one_liner_simple_caret): Likewise.
- (selftest::test_one_liner_caret_and_range): Likewise.
- (selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
- (selftest::test_one_liner_fixit_insert_before): Likewise.
- (selftest::test_one_liner_fixit_insert_after): Likewise.
- (selftest::test_one_liner_fixit_remove): Likewise.
- (selftest::test_one_liner_fixit_replace): Likewise.
- (selftest::test_one_liner_fixit_replace_non_equal_range):
- Likewise.
- (selftest::test_one_liner_fixit_replace_equal_secondary_range):
- Likewise.
- (selftest::test_one_liner_fixit_validation_adhoc_locations):
- Likewise.
- (selftest::test_one_liner_many_fixits_1): Likewise.
- (selftest::test_one_liner_many_fixits_2): Likewise.
- (selftest::test_one_liner_labels): Likewise.
- (selftest::test_one_liner_simple_caret_utf8): Likewise.
- (selftest::test_one_liner_caret_and_range_utf8): Likewise.
- (selftest::test_one_liner_multiple_carets_and_ranges_utf8):
- Likewise.
- (selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
- (selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
- (selftest::test_one_liner_fixit_remove_utf8): Likewise.
- (selftest::test_one_liner_fixit_replace_utf8): Likewise.
- (selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
- Likewise.
- (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
- Likewise.
- (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
- Likewise.
- (selftest::test_one_liner_many_fixits_1_utf8): Likewise.
- (selftest::test_one_liner_many_fixits_2_utf8): Likewise.
- (selftest::test_one_liner_labels_utf8): Likewise.
- (selftest::test_add_location_if_nearby): Likewise.
- (selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
- (selftest::test_overlapped_fixit_printing): Likewise.
- (selftest::test_overlapped_fixit_printing_utf8): Likewise.
- (selftest::test_overlapped_fixit_printing_2): Likewise.
- (selftest::test_fixit_insert_containing_newline): Likewise.
- (selftest::test_fixit_insert_containing_newline_2): Likewise.
- (selftest::test_fixit_replace_containing_newline): Likewise.
- (selftest::test_fixit_deletion_affecting_newline): Likewise.
- (selftest::test_line_numbers_multiline_range): Likewise.
- * diagnostic.c (default_diagnostic_finalizer): Add pp_newline call
- before call to diagnostic_show_locus.
- (diagnostic_append_note): Likewise.
-
-2019-12-09 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/92761
- PR middle-end/92762
- * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Tighten
- up tests.
- * hash-table.h (hash_table::expand): Use placement new to copy
- construct objects in uninitialized storage.
- (hash_table::empty_slow): Avoid invoking copy assignment on
- uninitialized objects.
-
-2019-12-09 Lewis Hyatt <lhyatt@gmail.com>
-
- PR preprocessor/49973
- * input.c (location_compute_display_column): New function to help with
- multibyte awareness in diagnostics.
- (test_cpp_utf8): New self-test.
- (input_c_tests): Call the new test.
- * input.h (location_compute_display_column): Declare.
- * diagnostic-show-locus.c: Pervasive changes to add multibyte awareness
- to all classes and functions.
- (enum column_unit): New enum.
- (class exploc_with_display_col): New class.
- (class layout_point): Convert m_column member to array m_columns[2].
- (layout_range::contains_point): Add col_unit argument.
- (test_layout_range_for_single_point): Pass new argument.
- (test_layout_range_for_single_line): Likewise.
- (test_layout_range_for_multiple_lines): Likewise.
- (line_bounds::convert_to_display_cols): New function.
- (layout::get_state_at_point): Add col_unit argument.
- (make_range): Use empty filename rather than dummy filename.
- (get_line_width_without_trailing_whitespace): Rename to...
- (get_line_bytes_without_trailing_whitespace): ...this.
- (test_get_line_width_without_trailing_whitespace): Rename to...
- (test_get_line_bytes_without_trailing_whitespace): ...this.
- (class layout): m_exploc changed to exploc_with_display_col from
- plain expanded_location.
- (layout::get_linenum_width): New accessor member function.
- (layout::get_x_offset_display): Likewise.
- (layout::calculate_linenum_width): New subroutine for the constuctor.
- (layout::calculate_x_offset_display): Likewise.
- (layout::layout): Use the new subroutines. Add multibyte awareness.
- (layout::print_source_line): Add multibyte awareness.
- (layout::print_line): Likewise.
- (layout::print_annotation_line): Likewise.
- (line_label::line_label): Likewise.
- (layout::print_any_labels): Likewise.
- (layout::annotation_line_showed_range_p): Likewise.
- (get_printed_columns): Likewise.
- (class line_label): Rename m_length to m_display_width.
- (get_affected_columns): Rename to...
- (get_affected_range): ...this; add col_unit argument and multibyte
- awareness.
- (class correction): Add m_affected_bytes and m_display_cols
- members. Rename m_len to m_byte_length for clarity. Add multibyte
- awareness throughout.
- (correction::insertion_p): Add multibyte awareness.
- (correction::compute_display_cols): New function.
- (correction::ensure_terminated): Use new member name m_byte_length.
- (line_corrections::add_hint): Add multibyte awareness.
- (layout::print_trailing_fixits): Likewise.
- (layout::get_x_bound_for_row): Likewise.
- (test_one_liner_simple_caret_utf8): New self-test analogous to the one
- with _utf8 suffix removed, testing multibyte awareness.
- (test_one_liner_caret_and_range_utf8): Likewise.
- (test_one_liner_multiple_carets_and_ranges_utf8): Likewise.
- (test_one_liner_fixit_insert_before_utf8): Likewise.
- (test_one_liner_fixit_insert_after_utf8): Likewise.
- (test_one_liner_fixit_remove_utf8): Likewise.
- (test_one_liner_fixit_replace_utf8): Likewise.
- (test_one_liner_fixit_replace_non_equal_range_utf8): Likewise.
- (test_one_liner_fixit_replace_equal_secondary_range_utf8): Likewise.
- (test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise.
- (test_one_liner_many_fixits_1_utf8): Likewise.
- (test_one_liner_many_fixits_2_utf8): Likewise.
- (test_one_liner_labels_utf8): Likewise.
- (test_diagnostic_show_locus_one_liner_utf8): Likewise.
- (test_overlapped_fixit_printing_utf8): Likewise.
- (test_overlapped_fixit_printing): Adapt for changes to
- get_affected_columns, get_printed_columns and class corrections.
- (test_overlapped_fixit_printing_2): Likewise.
- (test_linenum_sep): New constant.
- (test_left_margin): Likewise.
- (test_offset_impl): Helper function for new test.
- (test_layout_x_offset_display_utf8): New test.
- (diagnostic_show_locus_c_tests): Call new tests.
-
-2019-12-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree.c (build_array_type_1): Add SET_CANONICAL parameter and compute
- TYPE_CANONICAL from the element type only if it is true. Remove a few
- obsolete lines and adjust recursive call.
- (fld_process_array_type): Adjust call to build_array_type_1.
- (build_array_type): Likewise.
- (build_nonshared_array_type): Likewise.
-
-2019-12-09 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Change
- %s to %o in asm output.
- (gather<mode>_insn_2offsets<exec>): Likewise.
-
-2019-12-09 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/t-multilib: Use arm->thumb multilib reuse rules
- on a-profile.
-
-2019-12-09 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/rs6000.md (unnamed mfcr define_insn): Name this
- set<mode>_cc.
- (unnamed define_insn_and_split): Delete.
- (unnamed define_insn): Delete.
- (unnamed define_insn): Delete.
- (unnamed define_split): Delete.
-
-2019-12-09 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * regstat.c (regstat_bb_compute_calls_crossed): Add a cast to
- avoid a warning.
-
-2019-12-09 Matthew Malcomson <matthew.malcomson@arm.com>
-
- PR middle-end/92410
- * bb-reorder.c (pass_reorder_blocks::execute): Recompute
- dataflow luids once basic blocks have been reordered.
- * haifa-sched.c (reemit_notes): Create df insn record for each
- new note.
- * regstat.c (regstat_bb_compute_calls_crossed): Assert every
- insn has an insn record before trying to use it.
-
-2019-12-09 Hongtao Liu <hongtao.liu@intel.com>
-
- * common/config/i386/i386-common.c
- (OPTION_MASK_ISA_AVX5124FMAPS_SET): Rename to
- OPTION_MASK_ISA2_AVX5124FMAPS_SET.
- (OPTION_MASK_ISA_AVX5124VNNIW_SET, OPTION_MASK_ISA_AVX512BF16_SET,
- OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
- OPTION_MASK_ISA_PCONFIG_SET, OPTION_MASK_ISA_WBNOINVD_SET,
- OPTION_MASK_ISA_SGX_SET, OPTION_MASK_ISA_CX16_SET,
- OPTION_MASK_ISA_MOVBE_SET, OPTION_MASK_ISA_PTWRITE_SET,
- OPTION_MASK_ISA_MWAITX_SET, OPTION_MASK_ISA_CLZERO_SET,
- OPTION_MASK_ISA_RDPID_SET, OPTION_MASK_ISA_VAES_SET,
- OPTION_MASK_ISA_MOVDIR64B_SET, OPTION_MASK_ISA_WAITPKG_SET,
- OPTION_MASK_ISA_CLDEMOTE_SET, OPTION_MASK_ISA_ENQCMD_SET,
- OPTION_MASK_ISA_AVX5124FMAPS_UNSET,
- OPTION_MASK_ISA_AVX5124VNNIW_UNSET,
- OPTION_MASK_ISA_AVX512BF16_UNSET,
- OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET,
- OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_UNSET,
- OPTION_MASK_ISA_SGX_UNSET, OPTION_MASK_ISA_CX16_UNSET,
- OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_PTWRITE_UNSET,
- OPTION_MASK_ISA_MWAITX_UNSET, OPTION_MASK_ISA_CLZERO_UNSET,
- OPTION_MASK_ISA_RDPID_UNSET, OPTION_MASK_ISA_VAES_UNSET,
- OPTION_MASK_ISA_MOVDIR64B_UNSET, OPTION_MASK_ISA_WAITPKG_UNSET,
- OPTION_MASK_ISA_CLDEMOTE_UNSET, OPTION_MASK_ISA_ENQCMD_UNSET,
- OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
- OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
- OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD,
- OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE,
- OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX,
- OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID,
- OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B,
- OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE,
- OPTION_MASK_ISA_ENQCMD): Ditto.
- * config/i386/i386-builtin.def
- (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
- OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
- OPTION_MASK_ISA_WBNOINVD, OPTION_MASK_ISA_PTWRITE,
- OPTION_MASK_ISA_RDPID, OPTION_MASK_ISA_VAES,
- OPTION_MASK_ISA_MOVDIR64B, OPTION_MASK_ISA_ENQCMD): Ditto.
- * config/i386/i386-builtins.c (OPTION_MASK_ISA_MWAITX,
- OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_WAITPKG,
- OPTION_MASK_ISA_CLDEMOTE, OPTION_MASK_ISA_WBNOINVD): Ditto.
- * config/i386/i386-c.c
- (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
- OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
- OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD,
- OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE,
- OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX,
- OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID,
- OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B,
- OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE,
- OPTION_MASK_ISA_ENQCMD): Ditto.
- * config/i386/i386-option.c: Ditto
- * config/i386/i386.opt: Ditto..
- * config/i386/i386.h: (TARGET_ISA_AVX5124FMAPS,
- TARGET_ISA_AVX5124VNNIW, TARGET_ISA_AVX512BF16,
- TARGET_ISA_AVX512VP2INTERSECT, TARGET_ISA_PCONFIG,
- TARGET_ISA_WBNOINVD, TARGET_ISA_SGX, TARGET_ISA_CX16,
- TARGET_ISA_MOVBE, TARGET_ISA_PTWRITE, TARGET_ISA_MWAITX,
- TARGET_ISA_CLZERO, TARGET_ISA_RDPID, TARGET_ISA_VAES,
- TARGET_ISA_MOVDIR64B, TARGET_ISA_WAITPKG, TARGET_ISA_CLDEMOTE)
- TARGET_ISA_ENQCMD): Ditto.
-
-2019-12-09 Sudakshina Das <sudi.das@arm.com>
- Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmt.c (vectorizable_shift): Condition ndts for
- vect_model_simple_cost call on scalar_shift_arg.
-
-2019-12-09 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92834
- * match.pd (A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
- A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): New simplifications.
-
-2019-12-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- PR tree-optimization/89007
- * tree-vect-patterns.c (vect_recog_average_pattern): If there is no
- target support available, generate code to distribute rshift over plus
- and add a carry.
-
-2019-12-09 Martin Liska <mliska@suse.cz>
-
- PR ipa/92737
- * cgraph.c (symbol_table_test::symbol_table_test): Fix
- coding style.
- * cgraph.h (symtab_node::symtab_node): New constructor.
- (cgraph_node::cgraph_node): Likewise.
- (varpool_node::varpool_node): Likewise.
- (symbol_table::allocate_cgraph_symbol): Use newly
- created constructor.
- (symbol_table::allocate_cgraph_symbol): Remove.
- * cgraphunit.c (symtab_terminator): Likewise.
- * varpool.c (varpool_node::create_empty): Use newly
- created constructor.
-
-2019-12-09 Hongtao Liu <hongtao.liu@intel.com>
-
- PR target/92686
- * config/i386/sse.md
- (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
- *<avx512>_cmp<mode>3<mask_scalar_merge_name>,
- *<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
- *<avx512>_ucmp<mode>3<mask_scalar_merge_name>): New.
- * config/i386/i386.c (ix86_print_operand): New operand substitution.
- * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode):
- New function.
- (ix86_expand_sse_cmp): Relax condition for integer mask from
- 512-bit vector to all 128/256/512-bit vector. Delete code gen
- for avx512f compare patterns since we have generic pattern now.
- (ix86_expand_sse_movcc): Adjust condition and codegen for
- maskcmp.
- (ix86_expand_int_sse_cmp): Don't canonicalize the comparison
- when corresponding vector compare is available.
-
-2019-12-08 Sandra Loosemore <sandra@codesourcery.com>
-
- Revert:
- 2019-12-05 Sandra Loosemore <sandra@codesourcery.com>
-
- * config/nios2/linux.h (LINK_EH_SPEC): Define.
-
-2019-12-07 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.c (cgraph_node::dump): Make tp_first_run 64bit.
- * cgraph.h (cgrpah_node): Likewise.
- (tp_first_run_node_cmp): Deeclare.
- * cgraphunit.c (node_cmp): Rename to ...
- (tp_first_run_node_cmp): ... this; export; watch for 64bit overflows;
- clear tp_first_run for no_reorder and !flag_profile_reorder_functions.
- (expand_all_functions): Collect tp_first_run and normal functions to
- two vectors so the other functions remain sorted. Do not check for
- flag_profile_reorder_functions it is function local flag.
- * profile.c (compute_value_histograms): Update tp_first_run printing.
-
-2019-12-07 Jan Hubicka <hubicka@ucw.cz>
-
- * opts.c (common_handle_option): Do not clear ipa_reference for
- -fprofile-use.
-
-2019-12-07 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-split.c (split_function): Preserve 0 tp_first_run.
-
-2019-12-07 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive
- sanity check.
-
-2019-12-07 Jan Hubicka <hubicka@ucw.cz>
-
- PR tree-optimization/92860
- * common.opt (fprofile-reorder-functions, ftoplevel-reorder): Add
- Optimization flag.
-
-2019-12-07 Marek Polacek <polacek@redhat.com>
-
- PR c++/91678 - wrong error with decltype and location wrapper.
- * fold-const.c (maybe_lvalue_p): Handle VIEW_CONVERT_EXPR.
-
-2019-12-07 Eric Botcazou <ebotcazou@adacore.com>
-
- PR middle-end/90840
- * expr.c (expand_assignment): In the case of a CONCAT on the LHS, make
- sure to pass a valid inner mode in calls to simplify_gen_subreg.
-
-2019-12-07 Tobias Burnus <tobias@codesourcery.com>
- David Malcolm <dmalcolm@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR c/87488
- * pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL
- instead of ST sequence to terminate OSC 8 strings.
-
-2019-12-06 Andreas Krebbel <krebbel@linux.ibm.com>
- Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/92176
- * lra.c (simplify_subreg_regno): Don't permit unconditional
- changing mode for LRA too.
-
-2019-12-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.h (TCTX_ALLOCATION, TCTX_DEALLOCATION, TCTX_EXCEPTIONS)
- (TCTX_CAPTURE_BY_COPY): New type_context_kinds.
- * config/aarch64/aarch64-sve-builtins.cc (verify_type_context):
- Handle them.
-
-2019-12-06 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Use %o
- in the asm output.
-
-2019-12-06 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (VEC_1REG_MODE): Remove V64QI and V64HI.
- (VEC_1REG_ALT): Likewise.
- (VEC_ALL1REG_MODE): New mode iterator.
- (VEC_1REG_INT_MODE): Remove V64QI and V64HI.
- (VEC_1REG_INT_ALT): Likewise.
- (VEC_ALL1REG_INT_MODE): New mode interator.
- (VEC_ALL1REG_INT_ALT): Likewise.
- (VEC_REG_MODE): Remove V64QI and V64HI.
- (VEC_ALLREG_MODE): New mode interator.
- (vec_merge): Change to VEC_ALLREG_MODE.
- (vec_merge_with_clobber): Likewise.
- (vec_merge_with_vcc): Likewise.
- (mov<mode>): Likewise.
- (mov<mode>_unspec): Likewise.
- (*mov<mode>): Change to VEC_ALL1REG_MODE.
- (mov<mode>_exec): Likewise.
- (*mov<mode>_exec_match): Likewise.
- (mov<mode>_sgprbase): Likewise.
- (reload_in<mode>): Change to VEC_ALLREG_MODE.
- (reload_out<mode>): Likewise.
- (scalar address splits): Likewise.
- (*vec_set<mode>): Change to VEC_ALL1REG_MODE.
- (vec_set<mode>): Change to VEC_ALLREG_MODE.
- (*vec_set<mode>_1): Change to VEC_ALL1REG_MODE.
- (vec_duplicate<mode><exec>): Likewise.
- (vec_extract<mode><scalar_mode>): Likewise.
- (vec_init<mode><scalar_mode>): Change to VEC_ALLREG_MODE.
- (gather_load<mode>): Likewise.
- (gather<mode>_exec): Likewise.
- (gather<mode>_expr<exec>): Likewise.
- (gather<mode>_insn_1offset<exec>): Likewise.
- (gather<mode>_insn_1offset_ds<exec>): Likewise.
- (gather<mode>_insn_2offsets<exec>): Likewise.
- (ds_bpermute<mode>): Change to VEC_ALL1REG_MODE.
- (VEC_INT_MODE): Remove V64QI and V64HI.
- (vcond_mask_<mode>di): Change to VEC_ALLREG_MODE.
- (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Change to
- VEC_ALL1REG_MODE.
- (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise.
- (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Likewise.
- (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise.
- (maskload<mode>di): Change to VEC_ALL1REG_MODE.
- (maskstore<mode>di): Likewise.
- (mask_gather_load<mode>): Likewise.
- (mov_from_lane63_<mode>): Likewise.
- * config/gcn/gcn.c (gcn_vector_mode_supported_p): Renable V64QImode
- and V64HImode vectorization.
- (gcn_related_vector_mode): New function.
- (TARGET_VECTORIZE_RELATED_MODE): New define.
-
-2019-12-06 Tobias Burnus <tobias@codesourcery.com>
- Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * omp-low.c (lower_omp_target): For optional arguments, deref once
- more to obtain the type.
-
-2019-12-06 Richard Biener <rguenther@suse.de>
-
- * match.pd (nop_convert): Remove empty match. Use nop_convert?
- everywhere.
-
-2019-12-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.c (prune_runtime_alias_test_list): Exit early
- for empty vectors. Avoid using ordered_remove and instead
- shuffle the vector as we go.
-
-2019-12-06 Richard Biener <rguenther@suse.de>
-
- * genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and
- VIEW_CONVERT{0,1,2}.
- (expr::opt_grp): Add and initialize.
- (lower_opt_convert): Rename to ...
- (lower_opt): ... and work on opt_grp, simply switching operations
- from being optional to being present or not.
- (has_opt_convert): Rename to ...
- (has_opt): ... and adjust.
- (parser::parse_operation): Return the optional opt_grp,
- remove special-casing of conditional operations and more generally
- parse [digit]'?'.
- (parser::parse_expr): Stick on the parsed opt_grp and perform
- rough verification.
- (parser::parse_for): Remove now unnecessary code.
- (main): Likewise.
- * doc/match-and-simplify.texi: Mention ? now works on all
- unary operations and also match predicates.
-
-2019-12-06 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraphclones.c (cgraph_node::create_clone): Only localize toplevel
- functions, not inline clones.
-
-2019-12-06 Jan Hubicka <hubicka@ucw.cz>
-
- * cfgexpand.c (expand_debug_expr): Do not ICE on SAD_EXPR.
-
-2019-12-06 Richard Biener <rguenther@suse.de>
-
- * genmatch.c (c_expr::gen_transform): Emit newlines from line
- number changes rather than after every semicolon.
-
-2019-12-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92819
- * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Handle inserts
- into the last lane. For two-element vectors try inserting
- into the last lane when inserting into the first fails.
-
-2019-12-06 Jakub Jelinek <jakub@redhat.com>
-
- * common.opt (fprofile-partial-training): Terminate description with
- full stop.
-
-2019-12-05 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/92622
- * tree-vrp.c (vrp_prop::check_array_ref): Avoid using a variable
- left uninitialized by get_addr_base_and_unit_offset on failure.
-
-2019-12-05 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-prop.c (ipa_set_jf_unknown): Do not clear bits and m_vr.
- (detect_type_change_from_memory_writes): Remoe parameter JFUNC.
- (detect_type_change): Likewise.
- (detect_type_change_ssa): Likewise.
- (ipa_analyze_virtual_call_uses): Update.
-
-2019-12-05 Sandra Loosemore <sandra@codesourcery.com>
-
- * config/nios2/linux.h (LINK_EH_SPEC): Define.
-
-2019-12-05 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local
-
-2019-12-05 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraphclones.c (localize_profile): New function.
- (cgraph_node::create_clone): Use it for partial profiles.
- * common.opt (fprofile-partial-training): New flag.
- * doc/invoke.texi (-fprofile-partial-training): Document.
- * ipa-cp.c (update_profiling_info): For partial profiles do not
- set function profile to zero.
- * profile.c (compute_branch_probabilities): With partial profile
- watch if edge count is zero and turn all probabilities to guessed.
- (compute_branch_probabilities): For partial profiles do not apply
- profile when entry count is zero.
- * tree-profile.c (tree_profiling): Only do value_profile_transformations
- when profile is read.
-
-2019-12-05 Sudakshina Das <sudi.das@arm.com>
-
- * tree-vect-loop.c (vect_model_reduction_cost): Remove reduction_type
- check from if condition.
-
-2019-12-05 Tobias Burnus <tobias@codesourcery.com>
-
- * omp-low.c (lower_omp_target): For use_device_ptr/use_derice_addr
- and Fortran's optional arguments, unconditionally add the is-present
- condition before the libgomp call.
-
-2019-12-05 Richard Sandiford <richard.sandiford@arm.com>
-
- PR middle-end/92768
- * tree-core.h (OEP_BITWISE): New flag.
- * fold-const.c (operand_compare::operand_equal_p): Handle it.
- * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.
-
-2019-12-05 Richard Biener <rguenther@suse.de>
-
- PR middle-end/92818
- * tree-ssa-forwprop.c (simplify_vector_constructor): Improve
- heuristics on what don't care element to choose.
- * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Fix typo.
-
-2019-12-05 Martin Liska <mliska@suse.cz>
-
- PR gcov-profile/92817
- * coverage.c (build_gcov_exit_decl): Remove superfluous
- void_type_node.
-
-2019-12-05 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.md (cbranch<mode>4): Use
- msp430_general_dst_nonv_operand instead of nonimmediate_operand for
- dest operand of CMP instruction.
- (cbranchpsi4_real): Likewise.
- (cbranchqi4_real): Likewise.
- (cbranchhi4_real): Likewise.
- (cbranchpsi4_reversed): Likewise.
- (cbranchqi4_reversed): Likewise.
- (cbranchhi4_reversed): Likewise.
-
-2019-12-05 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92803
- * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
- invariant vector construction.
-
-2019-12-05 Martin Liska <mliska@suse.cz>
-
- PR gcov-profile/91971
- * coverage.c (coverage_init): Mangle full path
- only when -fprofile-dir is used.
-
-2019-12-05 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92791
- * config/i386/i386.md (movstrict<mode>): Move test for
- TARGET_PARTIAL_REG_STALL and not optimizing for size from
- expander's condition to the body - FAIL; in that case.
-
-2019-12-03 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/91582
- * builtins.c (gimple_call_alloc_size): New function.
- (compute_objsize): Add argument. Call gimple_call_alloc_size.
- Handle variable offsets and indices.
- * builtins.h (gimple_call_alloc_size): Declare.
- (compute_objsize): Add argument.
- * gimple-ssa-warn-restrict.c: Remove assertions.
- * tree-ssa-strlen.c (handle_store): Handle calls to allocated objects.
-
-2019-12-04 Julian Brown <julian@codesourcery.com>
-
- * config/gcn/gcn.h (FIXED_REGISTERS): Make s6/s7 fixed registers.
-
-2019-12-04 Peter Bergner <bergner@linux.ibm.com>
-
- PR bootstrap/92661
- * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Move to
- rs6000.h.
- (altivec_overloaded_builtins): Move to rs6000-call.c.
- * config/rs6000/rs6000.h (struct altivec_builtin_types): Moved from
- rs6000-c.c.
- * config/rs6000/rs6000-call.c (rs6000_builtin_info): Make static.
- (altivec_overloaded_builtins): Moved from rs6000-c.c.
- (rs6000_common_init_builtins): Do no define builtins that overload
- builtins that have been disabled.
-
-2019-12-04 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/arm/arm.c (arm_option_override_internal):
- Use max_cond_insns from CPU tuning unless -mrestrict-it is used.
-
-2019-12-04 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/aarch64/aarch64.c
- (thunderxt88_tunings): Use AARCH64_FUSE_ALU_BRANCH.
- (thunderx_tunings): Likewise.
- (tsv110_tunings): Use AARCH64_FUSE_ALU_BRANCH and AARCH64_FUSE_ALU_CBZ.
- (thunderx2t99_tunings): Likewise.
- (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_CMP_BRANCH.
- * config/aarch64/aarch64-fusion-pairs.def: Add ALU_CBZ fusion.
-
-2019-12-04 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
- empty CTOR and memset partial-def registering. Take advantage
- of fancy offset analysis in memset handling.
-
-2019-12-04 Richard Sandiford <richard.sandiford@arm.com>
-
- * fold-const.c (native_encode_vector_part): Handle
- VECTOR_BOOLEAN_TYPE_Ps that have subbyte precision.
- (native_decode_vector_tree): Delete, moving the bulk of the code to...
- (native_interpret_vector_part): ...this new function. Use a pointer
- and length instead of a vec<> and start index.
- (native_interpret_vector): Use native_interpret_vector_part.
- (fold_view_convert_vector_encoding): Likewise.
-
-2019-12-04 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Handle
- non-constant defs in the most trivial way.
- (vn_reference_lookup_3): Also push down SSA partial defs.
-
-2019-12-04 Martin Liska <mliska@suse.cz>
-
- * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion):
- Initialize count of newly created BB.
-
-2019-12-04 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92734
- * match.pd ((A +- B) - A -> +- B, (A +- B) -+ B -> A,
- A - (A +- B) -> -+ B, A +- (B -+ A) -> +- B): Handle nop_convert.
-
-2019-12-04 Kewen Lin <linkw@gcc.gnu.org>
-
- PR target/92760
- * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Use
- VECTOR_MEM_NONE_P instead of VECTOR_UNIT_NONE_P.
-
-2019-12-03 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c: Include tree-into-ssa.h.
- (compute_fn_summary): Call update_ssa.
-
-2019-12-03 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.c (cgraph_node::verify_node): Check that calls_comdat_local
- is set only for symbol in comdat group.
- * symtab.c (symtab_node::dissolve_same_comdat_group_1): Clear it.
-
-2019-12-03 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.c: Include tree-into-ssa.h
- (cgraph_node::get_body): Call update_ssa.
- * cgraphunit.c (cgraph_node::expand): Likewise.
- * lto-streamer-in.c (input_function): Do not call update_ssa.
-
-2019-12-03 Richard Sandiford <richard.sandiford@arm.com>
-
- * gimplify.c (gimplify_compound_lval): Don't gimplify and install
- an array element size if array_element_size is already an invariant.
- Similarly don't gimplify and install a field offset if
- component_ref_field_offset is already an invariant.
-
-2019-12-03 Richard Sandiford <richard.sandiford@arm.com>
-
- * cfgexpand.c (discover_nonconstant_array_refs_r): If an access
- with POLY_INT_CST size is made to a fixed-size object, force the
- object to live in memory.
-
-2019-12-03 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md: Change "vcondu" patterns to use VEC_1REG_MODE
- for the data mode.
-
-2019-12-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92758
- * tree-ssa-forwprop.c (simplify_vector_constructor): Restore
- operation on uniform vectors.
-
-2019-12-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92645
- * gimple-fold.c (gimple_fold_builtin_memory_op): Fold memcpy
- from or to a properly aligned register variable.
-
-2019-12-03 Matthias Klose <doko@ubuntu.com>
-
- * Makefile.in (SOURCES): Add doc/lto-dump.1.
- (install-man): Add $(LTO_DUMP_INSTALL_NAME)$(man1ext).
- ($(LTO_DUMP_INSTALL_NAME)$(man1ext): New.
-
-2019-12-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92751
- * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fail
- when a clobber ends up in the partial-def vector.
- (vn_reference_lookup_3): Let clobbers be handled by the
- assignment from CTOR handling.
-
-2019-12-03 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92734
- * match.pd ((CST1 - A) +- CST2 -> CST3 - A,
- CST1 - (CST2 - A) -> CST3 + A): Handle nop casts around
- inner subtraction.
-
-2019-12-03 UroÃ
¡ Bizjak <ubizjak@gmail.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR target/92744
- * config/i386/i386.md (peephole2 for *swap<mode>): Use
- general_reg_operand predicates instead of register_operand.
-
-2019-12-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92645
- * tree-ssa.c (execute_update_addresses_taken): Avoid representing
- a full def of a vector via a BIT_INSERT_EXPR.
-
-2019-12-02 Bill Schmidt <wschmidt@linux.ibm.com>
-
- * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Make
- static.
- * config/rs6000/rs6000-internal.h (rs6000_invalid_builtin): Remove
- decl.
-
-2019-12-02 Richard Sandiford <richard.sandiford@arm.com>
-
- PR middle-end/92741
- * fold-const.c (fold_convertible_p): Check vector types more
- thoroughly.
-
-2019-12-02 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_report_sve_required): New function.
- (aarch64_expand_mov_immediate): Use it when attempting to measure
- the length of an SVE vector.
- (aarch64_mov_operand_p): Only allow SVE CNT immediates when
- SVE is enabled.
-
-2019-12-02 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve-builtins.h
- (gimple_folder::force_vector): Declare.
- * config/aarch64/aarch64-sve-builtins.cc
- (gimple_folder::force_vector): New function.
- * config/aarch64/aarch64-sve-builtins-base.cc
- (svcmp_impl::fold): Likewise.
- (svdup_impl::fold): Handle svdup_z too.
-
-2019-12-02 Martin Liska <mliska@suse.cz>
-
- * ipa-devirt.c (warn_types_mismatch): Use get_odr_name_for_type
- function.
- (debug_tree_odr_name): New.
- * ipa-utils.h (get_odr_name_for_type): New.
-
-2019-12-02 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92742
- * tree-vect-loop.c (vect_fixup_reduc_chain): Do not
- touch the def-type but verify it is consistent with the
- original stmts.
-
-2019-12-02 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92712
- * match.pd ((A * B) +- A -> (B +- 1) * A,
- A +- (A * B) -> (1 +- B) * A): Allow optimizing signed integers
- even when we don't know anything about range of A, but do know
- something about range of B and the simplification won't introduce
- new UB.
-
-2019-12-02 Feng Xue <fxue@os.amperecomputing.com>
-
- PR ipa/92133
- * doc/invoke.texi (ipa-cp-max-recursive-depth): Document new option.
- (ipa-cp-min-recursive-probability): Likewise.
- * params.opt (ipa-cp-max-recursive-depth): New.
- (ipa-cp-min-recursive-probability): Likewise.
- * ipa-cp.c (ipcp_lattice<valtype>::add_value): Add two new parameters
- val_p and unlimited.
- (self_recursively_generated_p): New function.
- (get_val_across_arith_op): Likewise.
- (propagate_vals_across_arith_jfunc): Add constant propagation for
- self-recursive function.
- (incorporate_penalties): Do not penalize pure self-recursive function.
- (good_cloning_opportunity_p): Dump node_is_self_scc flag.
- (propagate_constants_topo): Set node_is_self_scc flag for cgraph node.
- (get_info_about_necessary_edges): Relax hotness check for edge to
- self-recursive function.
- * ipa-prop.h (ipa_node_params): Add new field node_is_self_scc.
-
-2019-12-01 Sandra Loosemore <sandra@codesourcery.com>
-
- PR target/92499
-
- * config/nios2/nios2.c (nios2_in_small_data_p): Do not consider
- objects of flexible types to be small if they have internal linkage
- or are declared extern.
- * config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with...
- (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this. Use targetm.in_small_data_p
- instead of the size of the object initializer.
- * tree.c (flexible_array_type_p): Move from C front end, and
- generalize to handle fields in non-C structures.
- * tree.h (flexible_array_type_p): Declare.
-
-2019-11-30 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.h (profile_count::operator<): Use IPA value for
- comparsion.
- (profile_count::operator>): Likewise.
- (profile_count::operator<=): Likewise.
- (profile_count::operator>=): Likewise.
- * predict.c (maybe_hot_count_p): Do not convert to gcov_type.
-
-2019-11-30 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.c (compute_max_insns): Return int64_t.
- (inline_small_functions): Simplify.
-
-2019-11-30 Jan Hubicka <hubicka@ucw.cz>
-
- * tree-cfg.c (execute_fixup_cfg): Update also max_bb_count when
- scaling happen.
-
-2019-11-30 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.h (symtab_node): Add symver flag.
- * cgraphunit.c (process_symver_attribute): New.
- (process_common_attributes): Use process_symver_attribute.
- * lto-cgraph.c (lto_output_node): Stream symver.
- (lto_output_varpool_node): Stream symver.
- (input_overwrite_node): Stream symver.
- (input_varpool_node): Stream symver.
- * output.h (do_assemble_symver): Decalre.
- * symtab.c (symtab_node::dump_base): Dump symver.
- (symtab_node::verify_base): Verify symver.
- (symtab_node::resolve_alias): Handle symver.
- * varasm.c (do_assemble_symver): New function.
- * varpool.c (varpool_node::assemble_aliases): Use it.
- * doc/extend.texi: (symver attribute): Document.
- * config/elfos.h (ASM_OUTPUT_SYMVER_DIRECTIVE): New.
-
-2019-11-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.h (type_context_kind): New enum.
- (verify_type_context): Declare.
- * target.def (verify_type_context): New target hook.
- * doc/tm.texi.in (TARGET_VERIFY_TYPE_CONTEXT): Likewise.
- * doc/tm.texi: Regenerate.
- * tree.c (verify_type_context): New function.
- * config/aarch64/aarch64-protos.h (aarch64_sve::verify_type_context):
- Declare.
- * config/aarch64/aarch64-sve-builtins.cc (verify_type_context):
- New function.
- * config/aarch64/aarch64.c (aarch64_verify_type_context): Likewise.
- (TARGET_VERIFY_TYPE_CONTEXT): Define.
-
-2019-11-30 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.c (cgraph_node::dump): Dump unit_id and merged_extern_inline.
- * cgraph.h (cgraph_node): Add unit_id and
- merged_extern_inline.
- (symbol_table): Add max_unit.
- (symbol_table::symbol_table): Initialize it.
- * cgraphclones.c (duplicate_thunk_for_node): Copy unit_id.
- merged_comdat, merged_extern_inline.
- (cgraph_node::create_clone): Likewise.
- (cgraph_node::create_version_clone): Likewise.
- * ipa-fnsummary.c (dump_ipa_call_summary): Dump info about cross module
- calls.
- * ipa-fnsummary.h (cross_module_call_p): New inline function.
- * ipa-inline-analyssi.c (simple_edge_hints): Use it.
- * ipa-inline.c (inline_small_functions): Likewise.
- * lto-symtab.c (lto_cgraph_replace_node): Record merged_extern_inline;
- copy merged_comdat and merged_extern_inline.
- * lto-cgraph.c (lto_output_node): Stream out merged_comdat,
- merged_extern_inline and unit_id.
- (input_overwrite_node): Stream in these.
- (input_cgraph_1): Set unit_base.
- * lto-streamer.h (lto_file_decl_data): Add unit_base.
- * symtab.c (symtab_node::make_decl_local): Record former_comdat.
-
-2019-11-30 Maciej W. Rozycki <macro@wdc.com>
-
- * gcc.c (process_command): Only warn about an ineffective `-x'
- option if any input files have actually been supplied.
-
-2019-11-30 Maciej W. Rozycki <macro@wdc.com>
-
- * doc/install.texi (Options specification): Remove the list of
- target library subdirectories supporting
- `--enable-version-specific-runtime-libs'. Document defaults for
- the option.
-
-2019-11-29 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/92283
- * lra.c (lra): Update reg notes after inheritance sub-pass and
- before constraint sub-pass.
-
-2019-11-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/91003
- * tree-vect-slp.c (vect_mask_constant_operand_p): Pass in the
- operand number, avoid handling the non-condition operands of
- COND_EXPRs as comparisons.
- (vect_get_constant_vectors): Pass down the operand number.
- (vect_get_slp_defs): Likewise.
-
-2019-11-29 Frederik Harwath <frederik@codesourcery.com>
-
- * gimple-match-head.c (maybe_resimplify_conditional_op): Use
- generic_expr_could_trap_p to check if the condition of COND_EXPR or
- VEC_COND_EXPR can trap.
-
-2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/92677
- * tree-vect-loop.c (vect_dissolve_slp_only_groups): Set the gap
- to zero when dissolving a group of strided accesses.
-
-2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/92596
- * tree-vect-stmts.c (vectorizable_call): Punt on hybrid mask/nonmask
- operations.
- (vectorizable_operation): Likewise, instead of relying on
- vect_get_mask_type_for_stmt to do this.
- (vect_get_vector_types_for_stmt): Always return a vector type
- immediately, rather than deferring the choice for boolean results.
- Use a vector mask type instead of a normal vector if
- vect_use_mask_type_p.
- (vect_get_mask_type_for_stmt): Delete.
- * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Remove
- mask_producers argument and special boolean_type_node handling.
- (vect_determine_vf_for_stmt): Remove mask_producers argument and
- update calls to vect_determine_vf_for_stmt_1. Remove doubled call.
- (vect_determine_vectorization_factor): Update call accordingly.
- * tree-vect-slp.c (vect_build_slp_tree_1): Remove special
- boolean_type_node handling.
- (vect_slp_analyze_node_operations_1): Likewise.
-
-2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (stmt_vec_info::mask_precision): New field.
- (vect_use_mask_type_p): New function.
- * tree-vect-patterns.c (vect_init_pattern_stmt): Copy the
- mask precision to the pattern statement.
- (append_pattern_def_seq): Add a scalar_type_for_mask parameter
- and use it to initialize the new stmt's mask precision.
- (search_type_for_mask_1): Delete.
- (search_type_for_mask): Replace with...
- (integer_type_for_mask): ...this new function. Use the information
- cached in the stmt_vec_info.
- (vect_recog_bool_pattern): Update accordingly.
- (build_mask_conversion): Pass the scalar type associated with the
- mask type to append_pattern_def_seq.
- (vect_recog_mask_conversion_pattern): Likewise. Call
- integer_type_for_mask instead of search_type_for_mask.
- (vect_convert_mask_for_vectype): Call integer_type_for_mask instead
- of search_type_for_mask.
- (possible_vector_mask_operation_p): New function.
- (vect_determine_mask_precision): Likewise.
- (vect_determine_stmt_precisions): Call it.
-
-2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (get_mask_type_for_scalar_type): Replace
- the slp_tree parameter with a group size parameter.
- (vect_get_mask_type_for_stmt): Likewise.
- * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
- (vect_get_mask_type_for_stmt): Likewise.
- * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Update
- call accordingly.
-
-2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_operation): Punt early
- on codes that are handled elsewhere.
-
-2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * doc/sourcebuild.texi (vect_bool_cmp): Document.
- * tree-vect-patterns.c (search_type_for_mask_1): If neither
- operand to a boolean comparison is a natural vector mask,
- handle both operands like normal integers instead.
-
-2019-11-29 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Bail
- out early for too large objects.
-
-2019-11-29 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/92476
- * ipa-cp.c (set_single_call_flag): Set node_calling_single_call in
- the summary only if the summary exists.
- (find_more_scalar_values_for_callers_subset): Check node_dead in
- the summary only if the summary exists.
- (ipcp_store_bits_results): Ignore nodes without lattices.
- (ipcp_store_vr_results): Likewise.
- * cgraphclones.c: Include ipa-fnsummary.h and ipa-prop.h and the
- header files required by them.
- (cgraph_node::expand_all_artificial_thunks): Analyze expanded thunks.
-
-2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/92710
- * tree-vect-stmts.c (vectorizable_simd_clone_call): Reject
- vector mask arguments.
-
-2019-11-29 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.c (profile_count::to_cgraph_frequency,
- profile_count::to_sreal_scale): Check for compaibility of counts.
- * profile-count.h (compatible_p): Make public; add checking for
- global0 versus global types.
- * cgraph.c (cgraph_node::verify_node): Verify count compatibility.
-
-2019-11-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92715
- * tree-ssa-forwprop.c (simplify_vector_constructor): Bail
- out for uniform vectors and source vectors with less elements
- than the destination.
-
-2019-11-29 Martin Liska <mliska@suse.cz>
-
- PR lto/91574
- * ipa-devirt.c (types_same_for_odr): Check for existence
- of TYPE_NAMEs first.
-
-2019-11-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92704
- * tree-if-conv.c (combine_blocks): Deal with virtual PHIs
- in loops performing only loads.
-
-2019-11-29 Julian Brown <julian@codesourcery.com>
-
- * builtin-types.def (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR,
- BT_DFLOAT128_PTR) Remove.
- * tree-core.h (TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE,
- TI_DFLOAT128_PTR_TYPE): Remove.
- * tree.c (build_common_type_nodes): Remove dfloat32_ptr_type_node,
- dfloat64_ptr_type_node and dfloat128_ptr_type_node initialisation.
- * tree.h (dfloat32_ptr_type_node, dfloat64_ptr_type_node,
- dfloat128_ptr_type_node): Remove macros.
-
-2019-11-28 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/rs6000.md (*movsi_internal1): Fix formatting. Improve
- formatting.
- (*movdi_internal64): Ditto.
-
-2019-11-28 Segher Boessenkool <segher@kernel.crashing.org>
-
- PR target/92602
- * config/rs6000/rs6000.md (bswap<mode>2_load for HSI): Change the
- indexed_or_indirect_operand to be memory_operand.
- (bswap<mode>2_store for HSI): Ditto.
- (bswapdi2_load): Ditto.
- (bswapdi2_store): Ditto.
-
-2019-11-28 Martin Liska <mliska@suse.cz>
-
- PR debug/46558
- * dbgcnt.c (dbg_cnt_list_all_counters): Mark table
- headers for translation.
-
-2019-11-28 Martin Liska <mliska@suse.cz>
-
- PR lto/92609
- * ipa-devirt.c (warn_types_mismatch): Use TYPE_MAIN_VARIANT
- consistently.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.c (want_early_inline_function_p): Remove leftover optimize
- checks.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.c (profile_count::combine_with_ipa_count): Return
- uninitialized count if called on ininitialized count.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline-transform.c (inline_transform): Scale profile before
- redirecting.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.h (profile_count::max): Work on profiles of different
- type.
- (profile_count::apply_scale): Be sure that ret is not local or global0
- type if num is global.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.h (profile_count::max): Work on profiles of different
- type.
- (profile_count::apply_scale): Be sure that ret is not local or global0
- type if num is global.
-
-2019-11-28 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/92697
- * cgraph.c (cgraph_node_cannot_be_local_p_1): Return true for
- ifunc_resolvers.
- * symtab.c (symtab_node::dump_base): Dump ifunc_resolver flag.
- Removed trailig whitespace.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.h (profile_count::combine_with_ipa_count_within):
- Declare.
- * profile-count.c (profile_count::combine_with_ipa_count_within):
- New.
- * cgraphclones.c (cgraph_edge::clone, cgraph_node::create_clone): Use
- it.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-utils.c (ipa_merge_profiles): Be sure that all type transtions
- of counters are done same way.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-cp.c (update_profiling_info): Fix scaling.
-
-2019-11-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92645
- * tree-inline.c (remap_gimple_stmt): When the return value
- is not wanted, elide GIMPLE_RETURN.
-
-2019-11-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92645
- * tree-ssa-forwprop.c (get_bit_field_ref_def): Also handle
- conversions inside a mode class. Remove restriction on
- preserving the element size.
- (simplify_vector_constructor): Deal with the above and for
- identity permutes also try using VEC_UNPACK_[FLOAT_]LO_EXPR
- and VEC_PACK_TRUNC_EXPR.
-
-2019-11-28 Georg-Johann Lay <avr@gjlay.de>
-
- Must use push insn to pass varargs arguments of DFmode because
- otherwise the middle-end generates wrong code.
-
- PR target/92055
- * config/avr/avr.md (MPUSH) [DF, DC]: Add modes to mode iterator.
-
-2019-11-28 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92691
- * tree-ssa-strlen.c (handle_store): Clarify return value meaning
- in function comment.
- (strlen_check_and_optimize_call): Likewise. For handle_printf_call
- calls, return !handle_printf_call rather than always returning true.
- (check_and_optimize_stmt): Describe return value meaning in function
- comment. Formatting fix.
-
-2019-11-28 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.c (profile_count::to_sreal_scale): Handle correctly
- combination of globa0 and global counters..
-
-2019-11-28 Kewen Lin <linkw@gcc.gnu.org>
-
- PR target/92566
- * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Check
- by VECTOR_UNIT_NONE_P instead.
-
-2019-11-28 Hongtao Liu <hongtao.liu@inte.com>
-
- * config/i386/sse.md (avx512f_maskcmp<mode>3):
- Refine VF to VF_AVX512VL.
-
-2019-11-27 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/rs6000.md (movsi_internal): Reformat.
- (movdi_internal64): Reformat.
-
-2019-11-27 Peter Bergner <bergner@linux.ibm.com>
-
- PR bootstrap/92661
- * config/rs6000/rs6000-call.c: (def_builtin): Do not define the
- builtin if we don't have an actual type.
- (builtin_function_type): If the builtin function uses a DFP type
- and decimal float has been disabled, then return NULL_TREE.
-
-2019-11-27 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/92510
- * combine.c (gen_lowpart_for_combine): Only transform lowpart subreg
- of comparison into a comparison with different mode if both imode and
- omode are scalar integral modes.
-
-2019-11-27 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/90007
- * recog.c (constrain_operands): Permit hard registers too for
- memory when LRA is used.
-
-2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de>
-
- * config/m68k/m68k.c (m68k_output_compare_fp): Restore differences
- between Coldfire and regular m68k.
- * config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants.
-
-2019-11-27 Richard Biener <rguenther@suse.de>
-
- * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
- * targhooks.c (default_builtin_vectorized_conversion): Likewise.
- * targhooks.h (default_builtin_vectorized_conversion): Likewise.
- * optabs-tree.c (supportable_convert_operation): Do not call
- targetm.vectorize.builtin_conversion. Remove unused decl parameter.
- * optabs-tree.h (supportable_convert_operation): Adjust.
- * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
- * doc/tm.texi: Regenerate.
- * tree-ssa-forwprop.c (simplify_vector_constructor): Adjust.
- * tree-vect-generic.c (expand_vector_conversion): Likewise.
- * tree-vect-stmts.c (vect_gen_widened_results_half): Remove
- unused decl parameter and adjust.
- (vect_create_vectorized_promotion_stmts): Likewise.
- (vectorizable_conversion): Adjust.
-
-2019-11-27 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92690
- * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
- converting elements not originally converted.
-
-2019-11-27 Tobias Burnus <tobias@codesourcery.com>
-
- PR middle-end/92463
- * builtins.c (do_mpfr_ckconv, do_mpc_ckconv, do_mpfr_remquo,
- do_mpfr_lgamma_r, do_mpc_arg2): Use MPFR_RNDx instead of GMP_RNDx,
- mpfr_rnd_t instead of mp_rnd_t.
- * fold-const-call.c (do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_sincos,
- do_mpfr_arg2, do_mpfr_arg3, do_mpc_arg1, do_mpc_arg2): Likewise.
- * gimple-ssa-sprintf.c (format_floating_max, format_floating):
- Use mpfr_exp_t instead of mp_exp_t.
- * real.c (real_from_string, dconst_e_ptr, dconst_sqrt2_ptr): Use
- MPFR_RNDx instead of GMP_RNDx.
- * realmpfr.c (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t and
- mpfr_exp_t instead mp_rnd_t and mp_exp_t, respectively.
- * realmpfr.h (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t instead
- of mp_rnd_t and remove MPFR_RNDx poisoning.
- * ubsan.c (ubsan_instrument_float_cast): MPFR_RNDx instead of GMP_RNDx.
-
-2019-11-27 Kewen Lin <linkw@gcc.gnu.org>
-
- PR tree-optimization/91790
- * tree-vect-stmts.c (vectorizable_load): Use the adjusted
- DR for vect_setup_realignment when first_stmt_info is different
- from first_stmt_info_for_drptr.
-
-2019-11-27 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92645
- * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
- CTORs with just a subset of the original vectors.
-
-2019-11-27 Richard Biener <rguenther@suse.de>
-
- PR middle-end/92674
- * tree-inline.c (expand_call_inline): Delay purging EH/abnormal
- edges and instead record blocks in bitmap.
- (gimple_expand_calls_inline): Adjust.
- (fold_marked_statements): Delay EH cleanup until all folding is
- done.
- (optimize_inline_calls): Do EH/abnormal cleanup for calls after
- inlining finished.
-
-2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de>
-
- * auto-inc-dec.c (merge_in_block): Allow autoinc in jumps unless
- LRA is enabled.
- * combine.c (can_combine_p): Disallow autoinc in jumps unless LRA is
- disabled.
-
-2019-11-27 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/92664
- * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
-
-2019-11-26 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92683
- * gimple-fold.c (gimple_fold_builtin_string_compare): Restore a test
- inadvertently removed in a previous change. Rename local variable
- for clarity.
-
-2019-11-26 Richard Biener <rguenther@suse.de>
-
- PR middle-end/92669
- * cfganal.c (pre_and_rev_post_order_compute_fn): Deal with
- NULL pre_order.
-
-2019-11-26 Robin Dapp <rdapp@linux.ibm.com>
-
- * config/s390/linux.h: Add undef for MUSL_DYNAMIC_LINKERxx.
-
-2019-11-26 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92644
- * tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check
- next to INTEGER_CST checks.
-
-2019-11-26 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92645
- * tree-vect-slp.c (vect_build_slp_tree_2): For unary ops
- do not build the operation from scalars if the operand is.
-
-2019-11-25 Tobias Burnus <tobias@codesourcery.com>
-
- * config/gcn/mkoffload.c (COMMENT_PREFIX, struct id_map,
- func_ids, funcs_tail, var_ids, vars_tail) Remove unused
- definitions.
-
-2019-11-25 Martin Liska <mliska@suse.cz>
-
- * ipa-icf.c (sem_item_optimizer::dump_cong_classes): Clean
- up used dump message.
-
-2019-11-25 Martin Liska <mliska@suse.cz>
-
- PR bootstrap/92653
- * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Comment out
- too strict checking assert.
-
-2019-11-25 Joseph Myers <joseph@codesourcery.com>
-
- PR c/91985
- * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128)
- (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR): Define to
- error_mark_node if corresponding global tree node is NULL.
- * tree.c (build_common_tree_nodes): Do not initialize
- dfloat32_type_node, dfloat64_type_node or dfloat128_type_node if
- decimal floating-point not supported.
-
-2019-11-25 Joseph Myers <joseph@codesourcery.com>
-
- * attribs.c (decl_attributes): Do not ignore C++11 attributes on
- types.
-
-2019-11-25 Bernd Schmidt <bernds_cb1@t-online.de>
-
- * config/m68k/m68k.c (output_move_himode, output_move_qimode):
- Replace code for non-CONST_INT constants with gcc_unreachable.
- * config/m68k/m68k.md (cbranchdi): Don't generate individual
- compare and test.
- (CMPMODE): New mode_iterator.
- (cbranchsi4, cbranchqi4, cbranchhi4): Replace expanders with
- cbranch<mode>4.
- (cstoresi4, cstoreqi4, cstorehi4): Replace expanders with
- cstore<mode>4.
- (cmp<mode>_68881): Remove 'F' constraint from first comparison
- operand.
- (bit test insns patterns): Use nonimmediate_operand, not
- register_operand, for source operands that allow memory in
- their constraints.
- (divmodsi4, udivmodsi4, divmodhi4 and related unnamed patterns):
- Use register_operand, not nonimmediate_operand, for the
- destinations.
- (DBCC): New mode_iterator.
- (dbcc peepholes): Use it to reduce duplication.
- (trap): Use const_true_rtx, not const1_rtx.
- * config/m68k/predicates.md (m68k_comparison_operand): Renamed
- from m68k_subword_comparison_operand and changed to handle
- SImode.
-
- PR target/91851
- * config/m68k/m68k-protos.h (output-dbcc_and_branch): Adjust
- declaration.
- (m68k_init_cc): New declaration.
- (m68k_output_compare_di, m68k_output_compare_si)
- (m68k_output_compare_hi, m68k_output_compare_qi)
- (m68k_output_compare_fp, m68k_output_btst, m68k_output_bftst)
- (m68k_find_flags_value, m68k_output_scc, m68k_output_scc_float)
- (m68k_output_branch_integer, m68k_output_branch_integer_rev.
- m68k_output_branch_float, m68k_output_branch_float_rev):
- Likewise.
- (valid_dbcc_comparison_p_2, flags_in_68881)
- (output_btst): Remove declaration.
- * config/m68k/m68k.c (INCLDUE_STRING): Define.
- (TARGET_ASM_FINAL_POSTSCAN_INSN): Define.
- (valid_dbcc_comparison_p_2, flags_in_68881): Delete functions.
- (flags_compare_op0, flags_compare_op1, flags_operand1,
- flags_operand2, flags_valid): New static variables.
- (m68k_find_flags_value, m68k_init_cc): New functions.
- (handle_flags_for_move, m68k_asm_final_postscan_insn,
- remember_compare_flags): New static functions.
- (output_dbcc_and_branch): New argument CODE. Use it, and add
- PLUS and MINUS to the possible codes. All callers changed.
- (m68k_output_btst): Renamed from output_btst. Remove OPERANDS
- and INSN arguments, add CODE arg. Return the comparison code
- to use. All callers changed. Use CODE instead of
- next_insn_tests_no_inequality, and replace cc_status management
- with changing the return code.
- (m68k_rtx_costs): Instead of testing for COMPARE, test for
- RTX_COMPARE or RTX_COMM_COMPARE.
- (output_move_simode, output_move_qimode): Call
- handle_flags_for_move.
- (notice_update_cc): Delete function.
- (m68k_output_bftst, m68k_output_compare_di, m68k_output_compare_si,
- m68k_output_compare_hi, m68k_output_compare_qi,
- m68k_output_compare_fp, m68k_output_branch_integer,
- m68k_output_branch_integer_rev, m68k_output_scc,
- m68k_output_branch_float, m68k_output_branch_float_rev,
- m68k_output_scc_float): New functions.
- (output_andsi3, output_iorsi3, output_xorsi3): Call CC_STATUS_INIT
- once at the start, and set flags_valid and flags_operand1 if the
- flags are usable.
- * config/m68k/m68k.h (CC_IN_68881, NOTICE_UPDATE_CC,
- CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, OUTPUT_JUMP): Remove
- definitions.
- (CC_STATUS_INIT): Define.
- * config/m68k/m68k.md (flags_valid): New define_attr.
- (tstdi, tstsi_internal_68020_cf, tstsi_internal, tsthi_internal,
- tstqi_internal, tst<mode>_68881, tst<mode>_cf, cmpdi_internal,
- cmpdi, unnamed cmpsi/cmphi/cmpqi patterns, cmpsi_cf,
- cmp<mode>_68881, cmp<mode>_cf, unnamed btst patterns,
- tst_bftst_reg, tst_bftst_reg, unnamed scc patterns, scc,
- sls, sordered_1, sunordered_1, suneq_1, sunge_1, sungt_1,
- sunle_1, sunlt_1, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
- bge0_di, blt0_di, beq, bne, bgt, bgtu, blt, bltu, bge, bgeu,
- ble, bleu, bordered, bunordered, buneq, bunge, bungt, bunle,
- bunlt, bltgt, beq_rev, bne_rev, bgt_rev, bgtu_rev,
- blt_rev, bltu_rev, bge_rev, bgeu_rev, ble_rev, bleu_rev,
- bordered_rev, bunordered_rev, buneq_rev, bunge_rv, bungt_rev,
- bunle_rev, bunlt_rev, bltgt_rev, ctrapdi4, ctrapsi4, ctraphi4,
- ctrapqi4, conditional_trap): Delete patterns.
- (cbranchdi4_insn): New pattern.
- (cbranchdi4): Don't generate cc0 patterns. When testing LT or GE,
- test high part only. When testing EQ or NE, generate beq0_di
- and bne0_di patterns directly.
- (cstoredi4): When testing LT or GE, test high part only.
- (both sets of cbranch<mode>4, cstore<mode>4): Don't generate cc0
- patterns.
- (scc0_constraints, cmp1_constraints, cmp2_constraints,
- scc0_cf_constraints, cmp1_cf_constraints, cmp2_cf_constraints,
- cmp2_cf_predicate): New define_mode_attrs.
- (cbranch<mode>4_insn, cbranch<mode>4_insn_rev,
- cbranch<mode>4_insn_cf, cbranch<mode>4_insn_cf_rev,
- cstore<mode>4_insn, cstore<mode>4_insn_cf for integer modes)
- New patterns.
- (cbranch<mode>4_insn_68881, cbranch<mode>4_insn_rev_68881):
- (cbranch<mode>4_insn_cf, cbranch<mode>4_insn_rev_cf,
- cstore<mode>4_insn_68881, cstore<mode>4_insn_cf for FP):
- New patterns.
- (cbranchsi4_btst_mem_insn, cbranchsi4_btst_reg_insn,
- cbranchsi4_btst_mem_insn_1, cbranchsi4_btst_reg_insn_1):
- Likewise.
- (BTST): New define_mode_iterator.
- (btst_predicate, btst_constraint, btst_range): New
- define_mode_attrs.
- (cbranch_bftst<mode>_insn, cstore_bftst<mode>_insn): New
- patterns.
- (movsi_m68k_movsi_m68k2, movsi_cf, unnamed movstrict patterns,
- unnamed movhi and movqi patterns, unnamed movsf, movdf and movxf
- patterns): Set attr "flags_valid".
- (truncsiqi2, trunchiqi2, truncsihi2): Remove manual CC_STATUS
- management. Set attr "flags_valid".
- (extendsidi2, extendplussidi, unnamed float_extendsfdf pattern,
- extendsfdf2_cf, fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2,
- addi_sexthishl32, adddi_dilshr32, adddi_dilshr32_cf,
- addi_dishl32, subdi_sexthishl32, subdi_dishl32, subdi3): Remove
- manual CC_STATUS management.
- (addsi3_internal, addhi3, addqi3, subsi3, subhi3, subqi3,
- unnamed strict_lowpart subhi and subqi patterns): Set attr
- "flags_valid".
- (unnamed strict_lowpart addhi3 and addqi3 patterns): Likewise.
- Remove code to operate on address regs and assert the case
- does not occur.
- (unnamed mulsidi patterns, divmodhi4, udivmodhi4): Remove
- manual CC_STATUS_INIT.
- (andsi3_internal, andhi3, andqi3, iorsi3_internal, iorhi3, iorqi3,
- xorsi3_internal, xorhi3, xorqi3, negsi2_internal,
- negsi2_5200, neghi2, negqi2, one_cmplsi2_internal, one_cmplhi2,
- one_cmplqi2, unnamed strict_lowpart patterns
- for andhi, andqi, iorhi, iorqi, xorhi, xorqi, neghi, negqi,
- one_cmplhi and one_cmplqi): Set attr "flags_valid".
- (iorsi_zext_ashl16, iorsi_zext): Remove manual CC_STATUS_INIT.
- (ashldi_sexthi, ashlsi_16, ashlsi_17_24): Remove manual
- CC_STATUS_INIT.
- (ashlsi3, ashlhi3, ashlqi3, ashrsi3, ashrhi3, ashrqi3, lshrsi3,
- lshrhi3, shrqi3, rotlsi3, rotlhi3, rotlhi3_lowpart, rotlqi3,
- rotlqi3_lowpart, rotrsi3, rotrhi3, rotrhi_lowpart, rotrqi3,
- unnamed strict_low_part patterns for HI and
- QI versions): Set attr "flags_valid".
- (bsetmemqi, bsetmemqi_ext, bsetdreg, bchgdreg, bclrdreg,
- bclrmemqi, extzv_8_16_reg, extzv_bfextu_mem, insv_bfchg_mem,
- insv_bfclr_mem, insv_bfset_mem, extv_bfextu_reg,
- insv_bfclr_reg, insv_bfset_reg, dbne_hi, dbne_si, dbge_hi,
- dbge_si, extendsfxf2, extenddfxf2, ): Remove manual cc_status management.
- (various unnamed peepholes): Adjust compare/branch sequences
- for new cbranch patterns.
- (dbcc peepholes): Likewise, and output the comparison here
- as well.
- * config/m68k/predicates.md (valid_dbcc_comparison_p): Delete.
- (fp_src_operand): Allow constant zero.
- (address_reg_operand): New predicate.
-
- * rtl.h (inequality_comparisons_p): Remove declaration.
- * recog.h (next_insn_tests_no_inequality): Likewise.
- * rtlanal.c (inequality_comparisons_p): Delete function.
- * recog.c (next_insn_tests_no_inequality): Likewise.
-
-2019-11-25 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Add assertion.
- (vect_detect_hybrid_slp): Swap lane and instance iteration,
- properly re-building the visited hash-map for each lane.
-
-2019-11-25 Tobias Burnus <tobias@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address,
- gcn_md_reorg): Remove unused variables.
- (gcn_emutls_var_init): Add missing (but unreachable) return
- to silence warning.
- (gcn_hsa_declare_function_name): Add gcc_unreachable to ensure
- target != TARGET_GCN3 or TARGET_GCN3 will fail instead of use
- an uninitialized variable.
-
-2019-11-25 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/92109
- * cgraph.h (cgraph_node::remove_from_clone_tree): Declare.
- * cgraphclones.c (cgraph_node::remove_from_clone_tree): New method.
- (cgraph_materialize_clone): Move removel from clone tree to the
- the new method and use it instead.
- * ipa.c (symbol_table::remove_unreachable_nodes): When removing
- bodies of clones, also remove it from the clone tree.
-
-2019-11-25 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/91956
- * ipa-sra.c (process_isra_node_results): Put the new node to the
- same comdat group as the original node.
-
-2019-11-25 Georg-Johann Lay <avr@gjlay.de>
-
- Build double32 / long-double32 multilibs if needed.
-
- PR target/92055
- * config/avr/t-avr:
- (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): Remove vars.
- (HAVE_DOUBLE32, HAVE_LONG_DOUBLE32, WITH_LONG_DOUBLE)
- (HAVE_DOUBLE64, HAVE_LONG_DOUBLE64, WITH_DOUBLE): Set from
- tm_defines and pass to genmultilib.awk.
- * config/avr/genmultilib.awk: Use these variables to add double32
- and / or long-double32 multilib(s) as needed.
- * config/avr/driver-avr.c (avr_double_lib): Adjust comment.
-
-2019-11-25 Richard Biener <rguenther@suse.de>
-
- * cfgloop.h (get_loop_exit_edges): Add extra parameter denoting
- loop body, defaulted to NULL.
- (single_likely_exit): Add exit vector argument
- * tree-ssa-loop-niter.h (loop_only_exit_p): Add loop body argument.
- (number_of_iterations_exit): Likewise.
- (number_of_iterations_exit_assumptions): Likewise.
- * cfgloop.c (get_loop_exit_edges): Use passed in loop body
- if not NULL.
- * cfgloopanal.c (single_likely_exit): Use passed in exit vector.
- * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
- Compute exit vector around call to single_likely_exit.
- * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Pass down
- loop body to loop_only_exit_p.
- * tree-ssa-loop-niter.c (loop_only_exit_p): Get loop body from
- caller.
- (number_of_iterations_exit_assumptions): Get loop body from caller
- if not NULL.
- (number_of_iterations_exit): Pass through new loop body arg.
- (infer_loop_bounds_from_undefined): Get loop body from caller.
- (estimate_numbers_of_iterations): Compute loop body once.
-
-2019-11-25 Richard Biener <rguenther@suse.de>
-
- * cfganal.c (pre_and_rev_post_order_compute_fn): Use an
- auto_bb_flag instead of an sbitmap for visited handling.
-
-2019-11-25 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/vector.md (vector_fp_comparison_simple): New code
- iterator.
- (vector_fp_comparison_complex): Likewise.
- (vector_<code><mode> for VEC_F and vector_fp_comparison_simple): New
- define_and_split.
- (vector_<code><mode> for VEC_F and vector_fp_comparison_complex):
- Likewise.
- (vector_lt<mode> for VEC_F): Refactor with
- vector_fp_comparison_simple.
- (vector_le<mode> for VEC_F): Likewise.
- (vector_unge<mode> for VEC_F): Likewise.
- (vector_unle<mode> for VEC_F): Likewise.
- (vector_ne<mode> for VEC_F): Likewise.
- (vector_ungt<mode> for VEC_F): Likewise.
- (vector_unlt<mode> for VEC_F): Likewise.
- (vector_ltgt<mode> for VEC_F): Refactor with
- vector_fp_comparison_complex.
- (vector_ordered<mode> for VEC_F): Likewise.
- (vector_uneq<mode> for VEC_F): Likewise.
- (vector_unordered<mode> for VEC_F): Likewise.
-
-2019-11-24 Bernd Schmidt <bernds_cb1@t-online.de>
-
- * config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a
- COMPARE, representing an overflow detection.
-
- * combine.c (combine_instructions): Record costs for jumps.
-
- * combine.c (can_combine_p): Allow autoinc in jumps.
-
-2019-11-23 Jan Hubicka <hubicka@ucw.cz>
-
- * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT): Remove.
- * doc/invoke.texi (max-inline-insns-single-O2,
- inline-heuristics-hint-percent-O2, inline-min-speedup-O2,
- early-inlining-insns-O2): Remove documentation.
- * ipa-fnsummary.c (analyze_function_body,
- compute_fn_summary): Use opt_for_fn when accessing parameters.
- * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
- inline_insns_auto, can_inline_edge_by_limits_p,
- want_early_inline_function_p, big_speedup_p,
- want_inline_small_function_p, want_inline_self_recursive_call_p,
- recursive_inlining, compute_max_insns, inline_small_functions):
- Likewise.
- * opts.c (default_options): Add -O3 defaults for
- OPT__param_early_inlining_insns_,
- OPT__param_inline_heuristics_hint_percent_,
- OPT__param_inline_min_speedup_, OPT__param_max_inline_insns_single_.
- * params.opt (-param=early-inlining-insns-O2=,
- -param=inline-heuristics-hint-percent-O2=,
- -param=inline-min-speedup-O2=, -param=max-inline-insns-single-O2=
- -param=early-inlining-insns=, -param=inline-heuristics-hint-percent=,
- -param=inline-min-speedup=, -param=inline-unit-growth=,
- -param=large-function-growth=, -param=large-stack-frame=,
- -param=large-stack-frame-growth=, -param=large-unit-insns=,
- -param=max-inline-insns-recursive=,
- -param=max-inline-insns-recursive-auto=,
- -param=max-inline-insns-single=,
- -param=max-inline-insns-size=, -param=max-inline-insns-small=,
- -param=max-inline-recursive-depth=,
- -param=max-inline-recursive-depth-auto=,
- -param=min-inline-recursive-probability=,
- -param=partial-inlining-entry-probability=,
- -param=uninlined-function-insns=, -param=uninlined-function-time=,
- -param=uninlined-thunk-insns=, -param=uninlined-thunk-time=): Add
- Optimization.
-
-2019-11-23 Jakub Jelinek <jakub@redhat.com>
-
- * ipa-fnsummary.c: Fix comment typos.
- * ipa-ref.h: Likewise.
- * ipa-predicate.h: Likewise.
- * ipa-split.c: Likewise.
- * ipa-inline-analysis.c: Likewise.
- * ipa-predicate.c: Likewise.
- * ipa-devirt.c: Likewise.
- * ipa-icf.h: Likewise.
- * profile-count.c: Likewise.
- * ipa-icf.c: Likewise.
- (sem_function::equals_wpa): Fix typos in dump messages.
- * ipa-icf-gimple.h: Fix comment typos.
- * ipa-inline-transform.c: Likewise.
- * ipa-polymorphic-call.c: Likewise.
- * ipa-fnsummary.h: Likewise.
- * ipa-inline.c: Likewise.
- (dump_inline_stats): Fix typo in debug dump message.
- * profile-count.h: Fix comment typos.
-
- PR target/92615
- * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
- GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
- register_operand, force x into register before storing it into dest.
- Formatting fix.
-
- PR middle-end/83859
- * doc/extend.texi (attribute access): Fix a typo.
-
- PR rtl-optimization/92610
- * cse.c (rest_of_handle_cse2): Call cleanup_cfg (0) also if
- cse_cfg_altered is set, even when tem is 0.
- (rest_of_handle_cse_after_global_opts): Likewise.
-
-2019-11-22 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/92458
- * tree-hash-traits.h (tree_decl_hash, tree_ssa_name_hash,
- tree_hash): Move to ...
- * tree.h (tree_decl_hash, tree_ssa_name_hash, tree_hash): ... here.
- (struct decl_tree_cache_traits, struct type_tree_cache_traits): New
- types.
- (decl_tree_cache_map, tree_tree_cache_map): New typedefs.
-
- PR tree-optimization/92618
- * tree-ssa-reassoc.c (v_info): Change from auto_vec to a struct
- containing the auto_vec and a tree.
- (undistribute_bitref_for_vector): Handle the case when element type
- of vec is not the same as type of the BIT_FIELD_REF. Formatting
- fixes.
-
-2019-11-22 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/83859
- * attribs.h (struct attr_access): New.
- * attribs.c (decl_attributes): Add an informational note.
- * builtins.c (check_access): Make extern. Consistently set no-warning
- after issuing a warning. Handle calls through function pointers. Set
- no-warning.
- * builtins.h (check_access): Declare.
- * calls.c (rdwr_access_hash): New type.
- (rdwr_map): Same.
- (init_attr_rdwr_indices): New function.
- (maybe_warn_rdwr_sizes): Same.
- (initialize_argument_information): Call init_attr_rdwr_indices.
- Call maybe_warn_rdwr_sizes.
- (get_size_range): Avoid null argument.
- * doc/extend.texi (attribute access): Document new attribute.
-
-2019-11-22 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn.c (OMP_LDS_SIZE): Define.
- (ACC_LDS_SIZE): Define.
- (OTHER_LDS_SIZE): Define.
- (LDS_SIZE): Redefine using above.
- (gcn_expand_prologue): Initialize m0 with LDS_SIZE-1.
-
-2019-11-22 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/88226
- * builtins.c (check_nul_terminated_array): New function.
- (fold_builtin_0): Remove declaration.
- (fold_builtin_1): Same.
- (fold_builtin_2): Same.
- (fold_builtin_3): Same.
- (fold_builtin_strpbrk): Add argument.
- (fold_builtin_strspn): Same.
- (fold_builtin_strcspn): Same.
- (expand_builtin_strcat): Call it. Remove unused argument.
- (expand_builtin_stpncpy): Same.
- (expand_builtin_strncat): Same.
- (expand_builtin_strncpy): Same. Adjust indentation.
- (expand_builtin_strcmp): Same.
- (expand_builtin_strncmp): Same.
- (expand_builtin_fork_or_exec): Same.
- (expand_builtin): Handle more built-ins.
- (fold_builtin_2): Add argument.
- (fold_builtin_n): Make static. Add argument.
- (fold_call_expr): Pass new argument to fold_builtin_n and fold_builtin_2.
- (fold_builtin_call_array): Pass new argument to fold_builtin_n.
- (fold_builtin_strpbrk): Add argument. Call check_nul_terminated_array.
- (fold_call_stmt): Pass new argument to fold_builtin_n.
- * builtins.h: Correct a comment.
- * gimple-fold.c (gimple_fold_builtin_strchr): Call
- check_nul_terminated_array.
- * tree-ssa-strlen.c (handle_builtin_strlen): Call
- check_nul_terminated_array.
- (handle_builtin_strchr): Same.
- (handle_builtin_string_cmp): Same.
-
-2019-11-22 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92501
- * gimple-fold.c ((gimple_fold_builtin_string_compare): Let strncmp
- handle unterminated arrays. Rename local variables for clarity.
-
-2019-11-22 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_hsa_declare_function_name): Calculate
- granulated_sgprs according to architecture.
-
-2019-11-22 Jan Hubicka <jh@suse.cz>
-
- * ggc-page.c (ggc_collect): Call memory_block_pool::trim.
- * memory-block.cc (memory_block_pool::clear_free_list): Rename to ...
- (memory_block_pool::reduce_free_list): ... this one.
- (memory_block_pool::trim): New static function.
- * memory-block.h (memory_block_pool::freelist_size): New constant
- (memory_block_pool::clear_free_list): Rename to ...
- (memory_block_pool::reduce_free_list): ... this one.
- (memory_block_pool::trim): Declare.
-
-2019-11-22 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vect_model_simple_cost): Take an optional
- vect_cost_for_stmt.
- (vectorizable_condition): Calculate the cost of EXTRACT_LAST_REDUCTION
- here rather than...
- * tree-vect-loop.c (vect_model_reduction_cost): ...here.
-
-2019-11-22 Claudiu Zissulescu <claziss@synopsys.com>
-
- * config/arc/arc.md (bic_f): Use cc_set_register predicate.
- (bic_cmp0_noout): New pattern.
- (bic_cmp0): Likewise.
- (neg_scc_insn): Remove pattern.
- (not_scc_insn): Likewise.
-
-2019-11-21 Harald van Dijk <harald@gigawatt.nl>
-
- * doc/invoke.texi (-fcommon): Remove claim about ISO C.
-
-2019-11-21 Joseph Myers <joseph@codesourcery.com>
-
- * gimplify.c (expand_FALLTHROUGH_r, expand_FALLTHROUGH): Use
- pedwarn instead of warning_at for fallthrough not preceding a case
- or default label.
-
-2019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- PR tree-optimization/92608
- * tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead
- of dyn_cast.
-
-2019-11-21 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/predicates.md (extra_insn_branch_comparison_operator):
- New predicate.
- * config/rs6000/rs6000-protos.h (rs6000_emit_fp_cror): New declaration.
- * config/rs6000/rs6000.c (rs6000_generate_compare): Don't do anything
- special for FP comparisons that need a cror instruction eventually.
- (rs6000_emit_fp_cror): New function.
- (rs6000_emit_sCOND): Expand all floating point comparisons to one
- instruction, for normal FP modes, with HONOR_NANS.
- (rs6000_emit_cbranch): Reformat.
- * config/rs6000/rs6000.md (fp_rev): New iterator.
- (fp_two): New iterator.
- *<code><mode>_cc for fp_rev and GPR: New define_insn_and_split.
- *<code><mode>_cc for fp_two and GPR: New define_insn_and_split.
- *cbranch_2insn: New define_insn_and_split.
-
-2019-11-21 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/92526
- * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Reject
- versioning for alignment if the accesses do not have a consistent
- mask, rather than asserting that the masks are consistent.
-
-2019-11-21 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/92595
- * tree-vect-stmts.c (get_group_load_store_type): Add a VECTOR_MODE_P
- check.
- (vectorizable_store, vectorizable_load): Likewise.
-
-2019-11-21 Jan Hubicka <jh@suse.cz>
-
- * ipa-inline.c (update_callee_keys): Add parameter UPDATE_SINCE.
- (resolve_noninline_speculation, inline_small_functions): Avoid
- redundant updates.
-
-2019-11-21 Richard Biener <rguenther@suse.de>
-
- * lra.c (lra_insn_recog_data_pool): New.
- (free_insn_recog_data): Adjust.
- (finish_insn_recog_data): Release lra_insn_recog_data_pool.
- (lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool.
-
-2019-11-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92596
- * tree-vect-slp.c (vect_build_slp_tree): Fix pasto.
-
-2019-11-21 Jan Hubicka <jh@suse.cz>
-
- * ipa-fnsummary.c (evaluate_conditions_for_known_args): Be
- ready for some vectors to not be allocated.
- (evaluate_properties_for_edge): Document better; make
- known_vals and known_aggs caller allocated; avoid determining
- values of parameters which are not used.
- (ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and
- known_aggs.
- * ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
- (do_estimate_edge_size): Likewise.
- (do_estimate_edge_hints): Likewise.
- * ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when
- values are not known.
- (ipa_release_agg_values): Add option to not release vector itself.
- * ipa-prop.h (ipa_release_agg_values): Add parameter RELEASE_VECTOR.
-
-2019-11-21 Richard Biener <rguenther@suse.de>
-
- * cfgloop.h (loop_iterator::~loop_iterator): Remove.
- (loop_iterator::to_visit): Use an auto_vec with internal storage.
- (loop_iterator::loop_iterator): Adjust.
- * cfganal.c (compute_dominance_frontiers_1): Fold into...
- (compute_dominance_frontiers): ... this. Hoist invariant
- get_immediate_dominator call.
- (compute_idf): Use a work-set instead of a work-list for more
- optimal iteration order and duplicate avoidance.
- * tree-into-ssa.c (mark_phi_for_rewrite): Avoid re-allocating
- the vector all the time, instead pre-allocate the vector only
- once.
- (delete_update_ssa): Simplify.
- * vec.h (va_heap::release): Disable -Wfree-nonheap-object around it.
-
-2019-11-21 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/91355
- * tree-ssa-sink.c (select_best_block): Use >= rather than >
- for early_bb scaled count with best_bb count comparison.
-
- * ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo,
- preffer -> prefer.
- * ipa-inline.c (edge_badness): Likewise.
- * lto-streamer.h (class lto_location_cache): Likewise.
- * tree-ssa-sink.c (select_best_block): Likewise. Fix comment typos,
- gratutious -> gratuitous.
-
-2019-11-21 Richard Biener <rguenther@suse.de>
-
- Revert
- 2019-09-17 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/91790
- * tree-vect-stmts.c (vectorizable_load): For BB vectorization
- use the correct DR for setting up realignment.
-
-2019-11-21 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.c (equiv_class_hasher): Change to nofree.
- (equiv_class_obstack): New.
- (equiv_class_lookup_or_add): Allocate from equiv_class_obstack.
- (perform_var_substitution): Initialize equiv_class_obstack.
- (free_var_substitution_info): Free equiv_class_obstack.
-
-2019-11-20 Jan Hubicka <jh@suse.cz>
-
- * ipa-inline.c (want_early_inline_function_p): Do not estimate
- edge growth when callee function is very large.
- * ipa-inline.h (estimate_min_edge_growth): New.
-
-2019-11-20 Jan Hubicka <jh@suse.cz>
-
- * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Allow
- negative time in calls summary; correct roundoff errors
- leading to negative times.
- (ipa_merge_fn_summary_after_inlining): Update calls size time table
- if present.
- (ipa_update_overall_fn_summary): Add RESET parameter.
- * ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype.
- * ipa-inline-transform.c (inline_call): Enable incremental updates.
-
-2019-11-20 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt
- def types for two-operation SLP.
-
-2019-11-20 Richard Sandiford <richard.sandiford@arm.com>
-
- PR testsuite/92366
- * doc/sourcebuild.texi (vect_char_add): Document.
-
-2019-11-20 Alexandre Oliva <oliva@adacore.com>
-
- * function.h (CALLEE_FROM_CGRAPH_P): Remove.
- * function.c (record_final_call): Record even calls that might
- have been in the cgraph.
- * toplev.c (dump_final_node_vcg): Skip iteration over cgraph
- callees.
-
-2019-11-20 Janne Blomqvist <jb@gcc.gnu.org>
-
- * configure.ac: Use https for gcc.gnu.org
- * configure: Regenerated.
- * doc/install.texi: Use https for gcc.gnu.org.
- * doc/sourcebuild.texi: Likewise.
-
-2019-11-20 Julian Brown <julian@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_asm_output_symbol_ref): Handle null cfun.
-
-2019-11-20 Jan Hubicka <jh@suse.cz>
-
- * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Add CALL
- parameter and update call_size_time_table.
- (ipa_fn_summary::max_size_time_table_size): New constant.
- (estimate_calls_size_and_time_1): Break out from ...
- (estimate_calls_size_and_time): ... here; implement summary production.
- (summarize_calls_size_and_time): New function.
- (ipa_call_context::estimate_size_and_time): Bypass
- estimate_calls_size_and_time for leaf functions.
- (ipa_update_overall_fn_summary): Likewise.
- * ipa-fnsummary.h (call_size_time_table): New.
- (ipa_fn_summary::account_size_time): Update prototype.
-
-2019-11-20 Joseph Myers <joseph@codesourcery.com>
-
- * doc/invoke.texi (-Wc11-c2x-compat): Document.
-
-2019-11-20 Wilco Dijkstra <wdijkstr@arm.com>
-
- PR85678
- * common.opt (fcommon): Change init to 1.
- * doc/invoke.texi (-fcommon): Update documentation.
-
-2019-11-20 Jan Hubicka <jh@suse.cz>
-
- * fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec
- to ordinary array.
-
-2019-11-20 Jan Hubicka <jh@suse.cz>
-
- * fibonacci_heap.h (fibonacci_heap<K,V>::fibonacci_heap):
- Add allocator parameter.
- (fibonacci_heap<K,V>::~fibonacci_heap): Optimize destruction.
- (fibonacci_heap<K,V>::m_allocator): New.
- (fibonacci_heap<K,V>::m_own_allocator): New.
- (fibonacci_heap<K,V>::insert): Use allocator.
- (fibonacci_heap<K,V>::extract_min): Likewise.
- (fibonacci_heap<K,V>::union_with): Assert that both heaps share
- allocator.
- (fibonacci_heap<K,V>::consolidate): Allocate constant sized vector
- on stack.
- * fibonacci_heap.c: Include alloc-pool
- (test_empty_heap): Initialize allocator.
- (test_union): Likewise.
- * bb-reorder.c: Include alloc-pool.h.
- * tracer.c: Inlclude alloc-pool.h.
-
-2019-11-20 Jan Hubicka <jh@suse.cz>
-
- * lto-streamer-out.c (DFS::sccstack): Turn into auto-vec.
- Preallocate for 32 entries.
- (DFS::worklist): Likewise.
- (DFS::DFS): Do not initialize sccstack and worklist.
- (DFS::~DFS): Do not release sccstack.
-
-2019-11-20 Segher Boessenkool <segher@kernel.crashing.org>
-
- PR target/92573
- * config/rs6000/dfp.md (dfptstsfi_<code>_<mode> for DFP_TEST and DDTD):
- Handle UNORDERED if !HONOR_NANS.
-
-2019-11-20 Jan Hubicka <jh@suse.cz>
-
- * ipa-inline.c (wrapper_heuristics_may_apply): Break out from ...
- (edge_badness): ... here.
- (inline_small_functions): Use monotonicity of badness calculation
- to avoid redundant updates.
-
-2019-11-20 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.c (vect_analyze_slp_instance): Dump
- constructors we are actually analyzing.
- (vect_slp_check_for_constructors): Do not vectorize uniform
- constuctors, do not dump here.
-
-2019-11-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92537
- * tree-vect-slp.c (vect_analyze_slp_instance): Move CTOR
- vectorization validity check...
- (vect_slp_analyze_operations): ... here.
-
-2019-11-20 Claudiu Zissulescu <claziss@synopsys.com>
-
- * config/arc/arc-protos.h (make_pass_arc_ifcvt): Declare.
- (make_pass_arc_predicate_delay_insns): Likewise.
- * config/arc/arc.c (class pass_arc_ifcvt): Reformat text, add gate
- method, remove clone.
- (class pass_arc_predicate_delay_insns): Likewise.
- (arc_init): Remove registering of ARC specific passes.
- * config/arc/t-arc (PASSES_EXTRA): Add arc-passes.def.
- * config/arc/arc-passes.def: New file.
-
-2019-11-20 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/90840
- * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM
- and has a mode that doesn't have corresponding integral type.
-
- PR target/90867
- * config/i386/i386-options.c (ix86_valid_target_attribute_tree): Don't
- clear opts->x_ix86_isa_flags{,2} here...
- (ix86_valid_target_attribute_inner_p): ... but here when seeing
- arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit.
-
- PR c/90898
- * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove
- assertion.
- (insert_clobbers_for_var): Fix a typo in function comment.
-
-2019-11-20 Jiangning Liu <jiangning.liu@amperecomputing.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/91195
- * tree-ssa-phiopt.c (cond_store_replacement): Move lhs unsharing
- earlier. Set TREE_NO_WARNING on the rhs1 of the artificially added
- load.
-
-2019-11-20 Georg-Johann Lay <avr@gjlay.de>
-
- Make 0-series device specs work with older versions of avr-gcc.
-
- PR target/92545
- * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Remove.
- * config/avr/gen-avr-mmcu-specs.c (print_mcu)
- <*link_pm_base_address>: Don't write spec.
- <*link_arch>: Add --defsym=__RODATA_PM_OFFSET__= as needed.
-
-2019-11-20 Richard Biener <rguenther@suse.de>
-
- PR c/92088
- * builtins.c (compute_objsize): Deal with VLAs.
-
-2019-11-19 Pat Haugen <pthaugen@us.ibm.com>
-
- * config/rs6000/rs6000.c (move_to_end_of_ready): New, factored out
- from common code.
- (power6_sched_reorder2): Factored out from rs6000_sched_reorder2,
- call new function.
- (power9_sched_reorder2): Call new function.
- (rs6000_sched_reorder2): Likewise.
-
-2019-11-18 Jan Hubicka <jh@suse.cz>
-
- * ipa-fnsummary.c (estimate_edge_size_and_time): Drop parameter PROB.
- (estimate_calls_size_and_time): Update.
-
-2019-11-18 Jan Hubicka <jh@suse.cz>
-
- * ipa-inline.c (inlining_speedup): New function.
- (edge_badness): Use it.
-
-2019-11-19 Zoran Jovanovic <zoran.jovanovic@mips.com>
- Dragan Mladjenovic <dmladjenovic@wavecomp.com>
-
- * config/mips/mips-msa.md (msa_<msabr>_<msafmt_f>, msa_<msabr>_v_<msafmt_f>):
- Mark as not having "likely" version.
- * config/mips/mips.md (insn_count): The simd_div instruction with
- TARGET_CHECK_ZERO_DIV consists of 3 instructions.
- (can_delay): Exclude simd_branch.
- (defile_delay *): Add simd_branch instructions.
- They have one regular delay slot.
-
-2019-11-19 Richard Sandiford <richard.sandiford@arm.com>
-
- Revert:
- 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
-
- * cse.c (cse_insn): Delete no-op register moves too.
- * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons.
- Take a second comparison to control the value for NE.
- (mask_to_comparison): Handle unsigned comparisons.
- (simplify_logical_relational_operation): Likewise. Update call
- to comparison_to_mask. Handle AND if !HONOR_NANs.
- (simplify_binary_operation_1): Call the above for AND too.
-
-2019-11-19 Martin Liska <mliska@suse.cz>
-
- * toplev.c (general_init): Move the call...
- (toplev::main): ... here as we need init_options_struct
- being called.
-
-2019-11-19 Wilco Dijkstra <wdijkstr@arm.com>
-
- PR target/79262
- * config/aarch64/aarch64.c (generic_vector_cost): Adjust
- vec_to_scalar_cost.
-
-2019-11-19 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/arm/arm-cpus.in (armv7): Set tune to Cortex-A53.
- (armv7-a): Likewise.
- (armv7ve): Likewise.
-
-2019-11-19 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92581
- * tree-vect-loop.c (vect_create_epilog_for_reduction): For
- condition reduction chains gather all conditions involved
- for computing the index reduction vector.
-
-2019-11-19 Dennis Zhang <dennis.zhang@arm.com>
-
- * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
- AARCH64_MEMTAG_BUILTIN_START, AARCH64_MEMTAG_BUILTIN_IRG,
- AARCH64_MEMTAG_BUILTIN_GMI, AARCH64_MEMTAG_BUILTIN_SUBP,
- AARCH64_MEMTAG_BUILTIN_INC_TAG, AARCH64_MEMTAG_BUILTIN_SET_TAG,
- AARCH64_MEMTAG_BUILTIN_GET_TAG, and AARCH64_MEMTAG_BUILTIN_END.
- (aarch64_init_memtag_builtins): New.
- (AARCH64_INIT_MEMTAG_BUILTINS_DECL): New macro.
- (aarch64_general_init_builtins): Call aarch64_init_memtag_builtins.
- (aarch64_expand_builtin_memtag): New.
- (aarch64_general_expand_builtin): Call aarch64_expand_builtin_memtag.
- (AARCH64_BUILTIN_SUBCODE): New macro.
- (aarch64_resolve_overloaded_memtag): New.
- (aarch64_resolve_overloaded_builtin_general): New. Call
- aarch64_resolve_overloaded_memtag to handle overloaded MTE builtins.
- * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
- __ARM_FEATURE_MEMORY_TAGGING when enabled.
- (aarch64_resolve_overloaded_builtin): Call
- aarch64_resolve_overloaded_builtin_general.
- * config/aarch64/aarch64-protos.h
- (aarch64_resolve_overloaded_builtin_general): New declaration.
- * config/aarch64/aarch64.h (AARCH64_ISA_MEMTAG): New macro.
- (TARGET_MEMTAG): Likewise.
- * config/aarch64/aarch64.md (UNSPEC_GEN_TAG): New unspec.
- (UNSPEC_GEN_TAG_RND, and UNSPEC_TAG_SPACE): Likewise.
- (irg, gmi, subp, addg, ldg, stg): New instructions.
- * config/aarch64/arm_acle.h (__arm_mte_create_random_tag): New macro.
- (__arm_mte_exclude_tag, __arm_mte_ptrdiff): Likewise.
- (__arm_mte_increment_tag, __arm_mte_set_tag): Likewise.
- (__arm_mte_get_tag): Likewise.
- * config/aarch64/predicates.md (aarch64_memtag_tag_offset): New.
- (aarch64_granule16_uimm6, aarch64_granule16_simm9): New.
- * config/arm/types.md (memtag): New.
- * doc/invoke.texi (-memtag): Update description.
-
-2019-11-19 Richard Henderson <richard.henderson@linaro.org>
-
- * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
- to define __GCC_ASM_FLAG_OUTPUTS__.
- * config/arm/arm.c (thumb1_md_asm_adjust): New function.
- (arm_option_params_internal): Swap out targetm.md_asm_adjust
- depending on TARGET_THUMB1.
- * doc/extend.texi (FlagOutputOperands): Document thumb1 restriction.
-
-2019-11-19 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92549
- * config/i386/i386.md (peephole2 for *swap<mode>): New peephole2.
-
- PR middle-end/91450
- * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one
- operand is negative and one non-negative, compare the non-negative
- one against 0 rather than comparing s1 & s2 against 0. Otherwise,
- don't compare (s1 & s2) == 0, but compare separately both s1 == 0
- and s2 == 0, unless one of them is known to be negative. Remove
- tem2 variable, use tem where tem2 has been used before.
-
-2019-11-19 Eric Botcazou <ebotcazou@adacore.com>
-
- * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo.
-
-2019-11-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92557
- * omp-low.c (omp_clause_aligned_alignment): Punt if TYPE_MODE is not
- vmode rather than asserting it always is.
-
-2019-11-19 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92554
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Look
- for the actual condition stmt and deal with sign-changes.
-
-2019-11-19 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92555
- * tree-vect-loop.c (vect_update_vf_for_slp): Also scan PHIs
- for non-SLP stmts.
-
-2019-11-19 Martin Liska <mliska@suse.cz>
-
- PR bootstrap/92540
- * config/riscv/riscv.c (riscv_address_insns): Initialize
- addr in order to remove boostrap -Wmaybe-uninitialized
- error.
-
-2019-11-18 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92493
- * gimple-ssa-sprintf.c (get_origin_and_offset): Remove spurious
- assignment.
-
-2019-11-18 Giuliano Belinassi <giuliano.belinassi@usp.br>
-
- * cfgloop.c (get_loop_body_in_custom_order): New.
- * cfgloop.h (get_loop_body_in_custom_order): New prototype.
- * tree-loop-distribution.c (class loop_distribution): New.
- (bb_top_order_cmp): Remove.
- (bb_top_order_cmp_r): New.
- (create_rdg_vertices): Move into class loop_distribution.
- (stmts_from_loop): Same as above.
- (update_for_merge): Same as above.
- (partition_merge_into): Same as above.
- (get_data_dependence): Same as above.
- (data_dep_in_cycle_p): Same as above.
- (update_type_for_merge): Same as above.
- (build_rdg_partition_for-vertex): Same as above.
- (classify_builtin_ldst): Same as above.
- (classify_partition): Same as above.
- (share_memory_accesses): Same as above.
- (rdg_build_partitions): Same as above.
- (pg_add_dependence_edges): Same as above.
- (build_partition_graph): Same as above.
- (merge_dep_scc_partitions): Same as above.
- (break_alias_scc_partitions): Same as above.
- (finalize_partitions): Same as above.
- (distribute_loop): Same as above.
- (bb_top_order_init): New method
- (bb_top_order_destroy): New method.
- (get_bb_top_order_index_size): New method.
- (get_bb_top_order_index_index): New method.
- (get_bb_top_order_index_index): New method.
- (loop_distribution::execute): New method.
- (pass_loop_distribution::execute): Instantiate loop_distribution.
-
-2019-11-18 Jan Hubicka <jh@suse.cz>
-
- PR ipa/92508
- * ipa-inline.c (inline_small_functions): Add new edges after reseting
- caches.
- * ipa-inline-analysis.c (do_estimate_edge_time): Fix sanity check.
-
-2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
-
- * doc/sourcebuild.texi (vect_check_ptrs): Document.
- * optabs.def (check_raw_ptrs_optab, check_war_ptrs_optab): New optabs.
- * doc/md.texi: Document them.
- * internal-fn.def (IFN_CHECK_RAW_PTRS, IFN_CHECK_WAR_PTRS): New
- internal functions.
- * internal-fn.h (internal_check_ptrs_fn_supported_p): Declare.
- * internal-fn.c (check_ptrs_direct): New macro.
- (expand_check_ptrs_optab_fn): Likewise.
- (direct_check_ptrs_optab_supported_p): Likewise.
- (internal_check_ptrs_fn_supported_p): New fuction.
- * tree-data-ref.c: Include internal-fn.h.
- (create_ifn_alias_checks): New function.
- (create_intersect_range_checks): Use it.
- * config/aarch64/iterators.md (SVE2_WHILE_PTR): New int iterator.
- (optab, cmp_op): Handle it.
- (raw_war, unspec): New int attributes.
- * config/aarch64/aarch64.md (UNSPEC_WHILERW, UNSPEC_WHILE_WR): New
- constants.
- * config/aarch64/predicates.md (aarch64_bytes_per_sve_vector_operand):
- New predicate.
- * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): New
- expander.
- (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): New
- pattern.
-
-2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree.c (build_vector_from_ctor): Directly return a zero vector for
- empty constructors.
-
-2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
-
- * cse.c (cse_insn): Delete no-op register moves too.
- * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons.
- Take a second comparison to control the value for NE.
- (mask_to_comparison): Handle unsigned comparisons.
- (simplify_logical_relational_operation): Likewise. Update call
- to comparison_to_mask. Handle AND if !HONOR_NANs.
- (simplify_binary_operation_1): Call the above for AND too.
-
-2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
-
- * fold-const.c (native_encode_vector): Turn into a wrapper function,
- splitting the main code out into...
- (native_encode_vector_part): ...this new function.
- (native_decode_vector_tree): New function.
- (fold_view_convert_vector_encoding): Likewise.
- (fold_view_convert_expr): Use it for converting VECTOR_CSTs
- to VECTOR_TYPEs.
-
-2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.c (create_intersect_range_checks_index): If the
- alias pair describes simple WAW and WAR dependencies, just check
- whether the first B access overlaps later A accesses.
- (create_waw_or_war_checks): New function that performs the same
- optimization on addresses.
- (create_intersect_range_checks): Call it.
-
-2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
-
- * lra-constraints.c (valid_address_p): Take the operand and a
- constraint as argument. If the operand is a MEM and the constraint
- is a memory constraint, check whether the eliminated form of the
- MEM already satisfies the constraint.
- (process_address_1): Update calls accordingly.
-
-2019-11-18 Tom Tromey <tromey@adacore.com>
-
- * doc/tm.texi: Rebuild.
- * doc/tm.texi.in (Misc): Don't document MODIFY_JNI_METHOD_CALL.
- * config/i386/cygming.h (MODIFY_JNI_METHOD_CALL): Don't define.
-
-2019-11-18 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92516
- * tree-vect-slp.c (vect_analyze_slp_instance): Add bst_map
- argument, hoist bst_map creation/destruction to ...
- (vect_analyze_slp): ... here, forming a true graph with
- SLP instances being the entries.
- (vect_detect_hybrid_slp_stmts): Remove wrapper.
- (vect_detect_hybrid_slp): Use one visited set for all
- graph entries.
- (vect_slp_analyze_node_operations): Simplify visited/lvisited
- to hash-sets of slp_tree.
- (vect_slp_analyze_operations): Likewise.
- (vect_bb_slp_scalar_cost): Remove wrapper.
- (vect_bb_vectorization_profitable_p): Use one visited set for
- all graph entries.
- (vect_schedule_slp_instance): Elide bst_map use.
- (vect_schedule_slp): Likewise.
-
-2019-11-18 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.c (vect_analyze_slp_instance): When a CTOR
- was vectorized with just external refs fail.
-
-2019-11-18 Martin Liska <mliska@suse.cz>
-
- PR ipa/92525
- * ipa-icf.c (sem_function::init): Unset m_checker
- at the end of the function.
-
-2019-11-18 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92558
- * tree-vect-loop.c (vect_create_epilog_for_reduction): When
- reducting the width of a reduction vector def update new_phis.
-
-2019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * configure.ac (gcc_cv_target_ldbl128): Set for powerpc*-*-linux-musl*
- and s390*-*-linux-musl* targets.
- * configure: Regenerate.
-
-2019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * config/s390/linux.h (MUSL_DYNAMIC_LINKER32): Define.
- (MUSL_DYNAMIC_LINKER64): Define.
-
-2019-11-18 Martin Liska <mliska@suse.cz>
-
- * dbgcnt.c (dbg_cnt_set_limit_by_name): Provide error
- message for an unknown counter.
- (dbg_cnt_process_single_pair): Support 0 as minimum value.
- (dbg_cnt_process_opt): Remove unreachable code.
-
-2019-11-18 Martin Liska <mliska@suse.cz>
-
- PR ipa/92529
- * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
- Compare LHS types of NOP_EXPR.
-
-2019-11-18 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * run-rtl-passes.c (run_rtl_passes): Accept and handle empty
- "initial_pass_name" argument -- by running "*clean_state" pass.
- Also free the "initial_pass_name" when done.
-
-2019-11-18 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/92462
- * alias.c (find_base_term): Restrict the look through ANDs.
- (find_base_value): Likewise.
-
-2019-11-18 Georg-Johann Lay <avr@gjlay.de>
-
- Add support for AVR devices from the 0-series.
-
- PR target/92545
- * config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field.
- * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers.
- * config/avr/avr-mcus.def (AVR_MCU): Add respective field.
- * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Add.
- * config/avr/gen-avr-mmcu-specs.c (print_mcu)
- <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code
- for spec definitions.
- * doc/avr-mmcu.texi: Regenerate.
-
-2019-11-18 Hongtao Liu <hongtao.liu@intel.com>
-
- PR target/92448
- * config/i386/i386-expand.c (ix86_expand_set_or_cpymem):
- Replace TARGET_AVX128_OPTIMAL with TARGET_AVX256_SPLIT_REGS.
- * config/i386/i386-option.c (ix86_vec_cost): Ditto.
- (ix86_reassociation_width): Ditto.
- * config/i386/i386-options.c (ix86_option_override_internal):
- Replace TARGET_AVX128_OPTIAML with
- ix86_tune_features[X86_TUNE_AVX128_OPTIMAL]
- * config/i386/i386.h (TARGET_AVX256_SPLIT_REGS): New macro.
- (TARGET_AVX128_OPTIMAL): Deleted.
- * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): New
- DEF_TUNE.
-
-2019-11-16 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/rs6000.md (cceq_ior_compare): Rename to...
- (@cceq_ior_compare_<mode> for GPR): ... this. Allow GPR instead of
- just SI.
- (cceq_rev_compare): Rename to...
- (@cceq_rev_compare_<mode> for GPR): ... this. Allow GPR instead of
- just SI.
- (define_split for <bd>tf_<mode>): Add SImode first argument to
- gen_cceq_ior_compare.
-
-2019-11-16 Segher Boessenkool <segher@kernel.crashing.org>
-
- * common/config/powerpcspe: Delete.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT
- output in UNSPEC_WRFFR.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.c (create_intersect_range_checks_index): Rewrite
- the index tests to have the form (unsigned T) (B - A + bias) <= limit.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.c (create_intersect_range_checks_index)
- (create_intersect_range_checks): Print dump messages.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.c (dump_alias_pair): New function.
- (prune_runtime_alias_test_list): Use it to dump each merged alias pair.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.h (DR_ALIAS_MIXED_STEPS): New flag.
- * tree-data-ref.c (prune_runtime_alias_test_list): Set it when
- merging data references with different steps.
- (create_intersect_range_checks_index): Take a
- dr_with_seg_len_pair_t instead of two dr_with_seg_lens.
- Bail out if DR_ALIAS_MIXED_STEPS is set.
- (create_intersect_range_checks): Take a dr_with_seg_len_pair_t
- instead of two dr_with_seg_lens. Update call to
- create_intersect_range_checks_index.
- (create_runtime_alias_checks): Update call accordingly.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.h (DR_ALIAS_RAW, DR_ALIAS_WAR, DR_ALIAS_WAW)
- (DR_ALIAS_ARBITRARY, DR_ALIAS_SWAPPED, DR_ALIAS_UNSWAPPED): New flags.
- (dr_with_seg_len_pair_t::sequencing): New enum.
- (dr_with_seg_len_pair_t::flags): New member variable.
- (dr_with_seg_len_pair_t::dr_with_seg_len_pair_t): Take a sequencing
- parameter and initialize the flags member variable.
- * tree-loop-distribution.c (compute_alias_check_pairs): Update
- call accordingly.
- * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
- Ensure the two data references in an alias pair are in statement
- order, if there is a defined order.
- * tree-data-ref.c (prune_runtime_alias_test_list): Use
- DR_ALIAS_SWAPPED and DR_ALIAS_UNSWAPPED to record whether we've
- swapped the references in a dr_with_seg_len_pair_t. OR together
- the flags when merging two dr_with_seg_len_pair_ts. After merging,
- try to restore the original dr_with_seg_len order, updating the
- flags if that fails.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.c (prune_runtime_alias_test_list): Delay
- swapping the dr_as based on init values until we've decided
- whether to merge them.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-data-ref.c (prune_runtime_alias_test_list): Sort the
- two accesses in each dr_with_seg_len_pair_t before trying to
- combine separate dr_with_seg_len_pair_ts.
- * tree-loop-distribution.c (compute_alias_check_pairs): Don't do
- that here.
- * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve.md
- (scatter_store<SVE_FULL_SD:mode><v_int_equiv>): Extend to...
- (scatter_store<SVE_24:mode><v_int_container>): ...this.
- (mask_scatter_store<SVE_FULL_S:mode><v_int_equiv>): Extend to...
- (mask_scatter_store<SVE_4:mode><v_int_equiv>): ...this.
- (mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>): Extend to...
- (mask_scatter_store<SVE_2:mode><v_int_equiv>): ...this.
- (*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked): New
- pattern.
- (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to...
- (*mask_scatter_store<SVE_2:mode><v_int_equiv>_sxtw): ...this.
- (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to...
- (*mask_scatter_store<SVE_2:mode><v_int_equiv>_uxtw): ...this.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (SVE_2BHSI, SVE_2HSDI, SVE_4BHI)
- (SVE_4HSI): New mode iterators.
- (ANY_EXTEND2): New code iterator.
- * config/aarch64/aarch64-sve.md
- (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>):
- Extend to...
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
- ...this, handling extension to partial modes as well as full modes.
- Describe the extension as a predicated rather than unpredicated
- extension.
- (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>):
- Likewise extend to...
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
- ...this, making the same adjustments.
- (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw):
- Likewise extend to...
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_sxtw)
- ...this, making the same adjustments.
- (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw):
- Likewise extend to...
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_uxtw)
- ...this, making the same adjustments.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked):
- New pattern.
- (*aarch64_ldff1_gather<mode>_sxtw): Canonicalize to a constant
- extension predicate.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw):
- Describe the extension as a predicated rather than unpredicated
- extension.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw):
- Likewise. Canonicalize to a constant extension predicate.
- * config/aarch64/aarch64-sve-builtins-base.cc
- (svld1_gather_extend_impl::expand): Add an extra predicate for
- the extension.
- (svldff1_gather_extend_impl::expand): Likewise.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (SVE_24, SVE_2, SVE_4): New mode
- iterators.
- * config/aarch64/aarch64-sve.md
- (gather_load<SVE_FULL_SD:mode><v_int_equiv>): Extend to...
- (gather_load<SVE_24:mode><v_int_container>): ...this.
- (mask_gather_load<SVE_FULL_S:mode><v_int_equiv>): Extend to...
- (mask_gather_load<SVE_4:mode><v_int_container>): ...this.
- (mask_gather_load<SVE_FULL_D:mode><v_int_equiv>): Extend to...
- (mask_gather_load<SVE_2:mode><v_int_container>): ...this.
- (*mask_gather_load<SVE_2:mode><v_int_container>_<su>xtw_unpacked):
- New pattern.
- (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to...
- (*mask_gather_load<SVE_2:mode><v_int_equiv>_sxtw): ...this.
- Allow the nominal extension predicate to be different from the
- load predicate.
- (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to...
- (*mask_gather_load<SVE_2:mode><v_int_equiv>_uxtw): ...this.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve.md
- (trunc<SVE_HSDI:mode><SVE_PARTIAL_I:mode>2): New pattern.
- * config/aarch64/aarch64.c (aarch64_integer_truncation_p): New
- function.
- (aarch64_sve_adjust_stmt_cost): Call it.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve.md
- (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>):
- (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
- (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>):
- Combine into...
- (@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
- ...this new pattern, handling extension to partial modes as well
- as full modes. Describe the extension as a predicated rather than
- unpredicated extension.
- (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
- (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
- (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>):
- Combine into...
- (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
- ...this new pattern, handling extension to partial modes as well
- as full modes. Describe the extension as a predicated rather than
- unpredicated extension.
- * config/aarch64/aarch64-sve-builtins.cc
- (function_expander::use_contiguous_load_insn): Add an extra
- predicate for extending loads.
- * config/aarch64/aarch64.c (aarch64_extending_load_p): New function.
- (aarch64_sve_adjust_stmt_cost): Likewise.
- (aarch64_add_stmt_cost): Use aarch64_sve_adjust_stmt_cost to adjust
- the cost of SVE vector stmts.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (SVE_HSDI): New mode iterator.
- (narrower_mask): Handle VNx4HI, VNx2HI and VNx2SI.
- * config/aarch64/aarch64-sve.md
- (<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): New pattern.
- (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
- (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Update
- comment. Avoid new narrower_mask ambiguity.
- (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
- (*cond_uxt<mode>_2): Update comment.
- (*cond_uxt<mode>_any): Likewise.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-modes.def: Define partial SVE vector
- float modes.
- * config/aarch64/aarch64-protos.h (aarch64_sve_pred_mode): New
- function.
- * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle the
- new vector float modes.
- (aarch64_sve_container_bits): New function.
- (aarch64_sve_pred_mode): Likewise.
- (aarch64_get_mask_mode): Use it.
- (aarch64_sve_element_int_mode): Handle structure modes and partial
- modes.
- (aarch64_sve_container_int_mode): New function.
- (aarch64_vectorize_related_mode): Return SVE modes when given
- SVE modes. Handle partial modes, taking the preferred number
- of units from the size of the given mode.
- (aarch64_hard_regno_mode_ok): Allow partial modes to be stored
- in registers.
- (aarch64_expand_sve_ld1rq): Use the mode form of aarch64_sve_pred_mode.
- (aarch64_expand_sve_const_vector): Handle partial SVE vectors.
- (aarch64_split_sve_subreg_move): Use the mode form of
- aarch64_sve_pred_mode.
- (aarch64_secondary_reload): Handle partial modes in the same way
- as full big-endian vectors.
- (aarch64_vector_mode_supported_p): Allow partial SVE vectors.
- (aarch64_autovectorize_vector_modes): Try unpacked SVE vectors,
- merging with the Advanced SIMD modes. If two modes have the
- same size, try the Advanced SIMD mode first.
- (aarch64_simd_valid_immediate): Use the container rather than
- the element mode for INDEX constants.
- (aarch64_simd_vector_alignment): Make the alignment of partial
- SVE vector modes the same as their minimum size.
- (aarch64_evpc_sel): Use the mode form of aarch64_sve_pred_mode.
- * config/aarch64/aarch64-sve.md (mov<SVE_FULL:mode>): Extend to...
- (mov<SVE_ALL:mode>): ...this.
- (movmisalign<SVE_FULL:mode>): Extend to...
- (movmisalign<SVE_ALL:mode>): ...this.
- (*aarch64_sve_mov<mode>_le): Rename to...
- (*aarch64_sve_mov<mode>_ldr_str): ...this.
- (*aarch64_sve_mov<SVE_FULL:mode>_be): Rename and extend to...
- (*aarch64_sve_mov<SVE_ALL:mode>_no_ldr_str): ...this. Handle
- partial modes regardless of endianness.
- (aarch64_sve_reload_be): Rename to...
- (aarch64_sve_reload_mem): ...this and enable for little-endian.
- Use aarch64_sve_pred_mode to get the appropriate predicate mode.
- (@aarch64_pred_mov<SVE_FULL:mode>): Extend to...
- (@aarch64_pred_mov<SVE_ALL:mode>): ...this.
- (*aarch64_sve_mov<SVE_FULL:mode>_subreg_be): Extend to...
- (*aarch64_sve_mov<SVE_ALL:mode>_subreg_be): ...this.
- (@aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to...
- (@aarch64_sve_reinterpret<SVE_ALL:mode>): ...this.
- (*aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to...
- (*aarch64_sve_reinterpret<SVE_ALL:mode>): ...this.
- (maskload<SVE_FULL:mode><vpred>): Extend to...
- (maskload<SVE_ALL:mode><vpred>): ...this.
- (maskstore<SVE_FULL:mode><vpred>): Extend to...
- (maskstore<SVE_ALL:mode><vpred>): ...this.
- (vec_duplicate<SVE_FULL:mode>): Extend to...
- (vec_duplicate<SVE_ALL:mode>): ...this.
- (*vec_duplicate<SVE_FULL:mode>_reg): Extend to...
- (*vec_duplicate<SVE_ALL:mode>_reg): ...this.
- (sve_ld1r<SVE_FULL:mode>): Extend to...
- (sve_ld1r<SVE_ALL:mode>): ...this.
- (vec_series<SVE_FULL_I:mode>): Extend to...
- (vec_series<SVE_I:mode>): ...this.
- (*vec_series<SVE_FULL_I:mode>_plus): Extend to...
- (*vec_series<SVE_I:mode>_plus): ...this.
- (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Avoid
- new VPRED ambiguity.
- (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
- (add<SVE_FULL_I:mode>3): Extend to...
- (add<SVE_I:mode>3): ...this.
- * config/aarch64/iterators.md (SVE_ALL, SVE_I): New mode iterators.
- (Vetype, Vesize, VEL, Vel, vwcore): Handle partial SVE vector modes.
- (VPRED, vpred): Likewise.
- (Vctype): New iterator.
- (vw): Remove SVE modes.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (SVE_PARTIAL): Rename to...
- (SVE_PARTIAL_I): ...this.
- * config/aarch64/aarch64-sve.md: Apply the above renaming throughout.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (SVE_ALL): Rename to...
- (SVE_FULL): ...this.
- (SVE_I): Rename to...
- (SVE_FULL_I): ...this.
- (SVE_F): Rename to...
- (SVE_FULL_F): ...this.
- (SVE_BHSI): Rename to...
- (SVE_FULL_BHSI): ...this.
- (SVE_HSD): Rename to...
- (SVE_FULL_HSD): ...this.
- (SVE_HSDI): Rename to...
- (SVE_FULL_HSDI): ...this.
- (SVE_HSF): Rename to...
- (SVE_FULL_HSF): ...this.
- (SVE_SD): Rename to...
- (SVE_FULL_SD): ...this.
- (SVE_SDI): Rename to...
- (SVE_FULL_SDI): ...this.
- (SVE_SDF): Rename to...
- (SVE_FULL_SDF): ...this.
- (SVE_S): Rename to...
- (SVE_FULL_S): ...this.
- (SVE_D): Rename to...
- (SVE_FULL_D): ...this.
- * config/aarch64/aarch64-sve.md: Apply the above renaming throughout.
- * config/aarch64/aarch64-sve2.md: Likewise.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.opt (--param=aarch64-sve-compare-costs):
- New option.
- * doc/invoke.texi: Document it.
- * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes):
- By default, return VECT_COMPARE_COSTS for SVE.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.h (VECT_COMPARE_COSTS): New constant.
- * target.def (autovectorize_vector_modes): Return a bitmask of flags.
- * doc/tm.texi: Regenerate.
- * targhooks.h (default_autovectorize_vector_modes): Update accordingly.
- * targhooks.c (default_autovectorize_vector_modes): Likewise.
- * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes):
- Likewise.
- * config/arc/arc.c (arc_autovectorize_vector_modes): Likewise.
- * config/arm/arm.c (arm_autovectorize_vector_modes): Likewise.
- * config/i386/i386.c (ix86_autovectorize_vector_modes): Likewise.
- * config/mips/mips.c (mips_autovectorize_vector_modes): Likewise.
- * tree-vectorizer.h (_loop_vec_info::vec_outside_cost)
- (_loop_vec_info::vec_inside_cost): New member variables.
- * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize them.
- (vect_better_loop_vinfo_p, vect_joust_loop_vinfos): New functions.
- (vect_analyze_loop): When autovectorize_vector_modes returns
- VECT_COMPARE_COSTS, try vectorizing the loop with each available
- vector mode and picking the one with the lowest cost.
- (vect_estimate_min_profitable_iters): Record the computed costs
- in the loop_vec_info.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (can_duplicate_and_interleave_p): Take an
- element type rather than an element mode.
- * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
- Use get_vectype_for_scalar_type to query the natural types
- for a given element type rather than basing everything on
- GET_MODE_SIZE (vinfo->vector_mode). Limit int_mode_for_size
- query to MAX_FIXED_MODE_SIZE.
- (duplicate_and_interleave): Update call accordingly.
- * tree-vect-loop.c (vectorizable_reduction): Likewise.
-
-2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vect_get_vector_types_for_stmt): Take an
- optional maximum nunits.
- (get_vectype_for_scalar_type): Likewise. Also declare a form that
- takes an slp_tree.
- (get_mask_type_for_scalar_type): Take an optional slp_tree.
- (vect_get_mask_type_for_stmt): Likewise.
- * tree-vect-data-refs.c (vect_analyze_data_refs): Don't store
- the vector type in STMT_VINFO_VECTYPE for BB vectorization.
- * tree-vect-patterns.c (vect_recog_bool_pattern): Use
- vect_get_vector_types_for_stmt instead of STMT_VINFO_VECTYPE
- to get an assumed vector type for data references.
- * tree-vect-slp.c (vect_update_shared_vectype): New function.
- (vect_update_all_shared_vectypes): Likewise.
- (vect_build_slp_tree_1): Pass the group size to
- vect_get_vector_types_for_stmt. Use vect_update_shared_vectype
- for BB vectorization.
- (vect_build_slp_tree_2): Call vect_update_all_shared_vectypes
- before building the vectof from scalars.
- (vect_analyze_slp_instance): Pass the group size to
- get_vectype_for_scalar_type.
- (vect_slp_analyze_node_operations_1): Don't recompute the vector
- types for BB vectorization here; just handle the case in which
- we deferred the choice for booleans.
- (vect_get_constant_vectors): Pass the slp_tree to
- get_vectype_for_scalar_type.
- * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise.
- (vectorizable_call): Likewise.
- (vectorizable_simd_clone_call): Likewise.
- (vectorizable_conversion): Likewise.
- (vectorizable_shift): Likewise.
- (vectorizable_operation): Likewise.
- (vectorizable_comparison): Likewise.
- (vect_is_simple_cond): Take the slp_tree as argument and
- pass it to get_vectype_for_scalar_type.
- (vectorizable_condition): Update call accordingly.
- (get_vectype_for_scalar_type): Take a group_size argument.
- For BB vectorization, limit the the vector to that number
- of elements. Also define an overload that takes an slp_tree.
- (get_mask_type_for_scalar_type): Add an slp_tree argument and
- pass it to get_vectype_for_scalar_type.
- (vect_get_vector_types_for_stmt): Add a group_size argument
- and pass it to get_vectype_for_scalar_type. Don't use the
- cached vector type for BB vectorization if a group size is given.
- Handle data references in that case.
- (vect_get_mask_type_for_stmt): Take an slp_tree argument and
- pass it to get_mask_type_for_scalar_type.
-
-2019-11-15 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.h (do_estimate_edge_time): Add nonspec_time
- parameter.
- (estimate_edge_time): Use it.
- * ipa-inline-analysis.c (do_estimate_edge_time): Add
- ret_nonspec_time parameter.
-
-2019-11-15 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * config/m68k/linux.h (MUSL_DYNAMIC_LINKER): Define.
-
-2019-11-15 Nick Clifton <nickc@redhat.com>
- Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- PR target/65649
- * config/microblaze/microblaze.c (print_operand): Print value as long.
-
-2019-11-15 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.c (edge_badness, inline_small_functions): Revert
- accidental commit.
-
-2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * config/gcn/gcn.h (FIXED_REGISTERS): Unfix frame pointer.
- (CALL_USED_REGISTERS): Make frame pointer callee-saved.
-
-2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT, MAX_NORMAL_VGPR_COUNT): New.
- (gcn_conditional_register_usage): Use constants in place of hard-coded
- values.
- (gcn_hsa_declare_function_name): Set lower bound for number of
- SGPRs/VGPRs in non-leaf kernels to MAX_NORMAL_SGPR_COUNT and
- MAX_NORMAL_VGPR_COUNT.
-
-2019-11-15 Martin Jambor <mjambor@suse.cz>
-
- * ipa-utils.h (ipa_remove_useless_jump_functions): Remove stray
- declaration.
-
-2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * config/gcn/gcn.c (default_requested_args): New.
- (gcn_parse_amdgpu_hsa_kernel_attribute): Initialize requested args
- set with default_requested_args.
- (gcn_conditional_register_usage): Limit register usage of non-kernel
- functions. Reassign fixed registers if a non-standard set of args is
- requested.
- * config/gcn/gcn.h (FIXED_REGISTERS): Fix registers according to ABI.
-
-2019-11-15 Feng Xue <fxue@os.amperecomputing.com>
-
- PR ipa/92528
- * ipa-prop.c (update_jump_functions_after_inlining): Invalidate
- aggregate jump function when inlined-to caller has no edge summary.
-
-2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs.
-
-2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_expand_prologue): Remove initialization and
- prologue use of v0.
- (print_operand_address): Use v1 for zero vector offset.
-
-2019-11-15 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/92515
- * tree-vect-stmts.c (vectorizable_shift): Record incompatible op1
- types when converting a vector/scalar shift into a vector/vector one,
- using tree_nop_conversion_p instead of useless_type_conversion_p.
- Move the conversion code to the transform block.
-
-2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * read-rtl-function.c
- (function_reader::add_fixup_source_location): Take additional
- parameter of a column.
- (function_reader::maybe_read_location): Optionally parse column
- information and pass to add_fixup_source_location.
-
-2019-11-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92512
- * tree-vect-loop.c (check_reduction_path): Fix operand index
- computability check. Add check for second use in COND_EXPRs.
-
-2019-11-15 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/92515
- * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Use
- VIEW_CONVERT_EXPR to reinterpret vectors as different types.
-
-2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_regno_reg_class): Return VCC_CONDITIONAL_REG
- register class for VCC_LO and VCC_HI.
- (gcn_spill_class): Use SGPR_REGS to spill registers in
- VCC_CONDITIONAL_REG.
-
-2019-11-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92324
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
- singedness of SLP reduction epilouge operations. Also reduce
- the vector width for SLP reductions before doing elementwise
- operations if possible.
-
-2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * passes.c (skip_pass): Set epilogue_completed if skipping the
- pro_and_epilogue pass.
-
-2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * passes.c (should_skip_pass_p): Always run "dfinish".
-
-2019-11-15 Richard Biener <rguenther@suse.de>
-
- * ipa-inline.c (inline_small_functions): Move assignment
- to next before call destroying edge.
-
-2019-11-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92039
- PR tree-optimization/91975
- * tree-ssa-loop-ivcanon.c (constant_after_peeling): Revert
- previous change, treat invariants consistently as non-constant.
- (tree_estimate_loop_size): Ternary ops with just the first op
- constant are not optimized away.
-
-2019-11-15 Jakub Jelinek <jakub@redhat.com>
-
- * gimplify.c (gimplify_call_expr): Don't call
- omp_resolve_declare_variant after gimplification.
- * omp-general.c (omp_context_selector_matches): For isa that might
- match in some other function, defer if in declare simd function.
- (omp_context_compute_score): Don't look for " score" in construct
- trait set. Set *score to -1 if it can't ever match.
- (omp_resolve_declare_variant): If any variants need to be deferred,
- don't punt immediately, but compute scores of all variants and if
- ther eis a score winner that doesn't need to be deferred, return that.
-
-2019-11-15 Luo Xiong Hu <luoxhu@linux.ibm.com>
-
- * ipa-comdats.c: Fix comments typo.
- * ipa-profile.c: Fix comments typo.
- * tree-profile.c (gimple_gen_ic_profiler): Use the new variable
- __gcov_indirect_call.counters and __gcov_indirect_call.callee.
- (gimple_gen_ic_func_profiler): Likewise.
- (pass_ipa_tree_profile::gate): Fix comments typo.
-
-2019-11-15 Xiong Hu Luo <luoxhu@linux.ibm.com>
-
- * ipa-inline.c (inline_small_functions): Update iterator of next.
-
-2019-11-14 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * lra-spills.c (assign_spill_hard_regs): Check that the spill
- register is suitable for the mode.
-
-2019-11-14 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op.h (range_operator::fold_range): Return a bool.
- * range-op.cc (range_operator::wi_fold): Assert supported type.
- (range_operator::fold_range): Assert supported type and return true.
- (operator_equal::fold_range): Return true.
- (operator_not_equal::fold_range): Same.
- (operator_lt::fold_range): Same.
- (operator_le::fold_range): Same.
- (operator_gt::fold_range): Same.
- (operator_ge::fold_range): Same.
- (operator_plus::op1_range): Adjust call to fold_range.
- (operator_plus::op2_range): Same.
- (operator_minus::op1_range): Same.
- (operator_minus::op2_range): Same.
- (operator_exact_divide::op1_range): Same.
- (operator_lshift::fold_range): Return true and adjust fold_range call.
- (operator_rshift::fold_range): Same.
- (operator_cast::fold_range): Return true.
- (operator_logical_and::fold_range): Same.
- (operator_logical_or::fold_range): Same.
- (operator_logical_not::fold_range): Same.
- (operator_bitwise_not::fold_range): Adjust call to fold_range.
- (operator_bitwise_not::op1_range): Same.
- (operator_cst::fold_range): Return true.
- (operator_identity::fold_range): Return true.
- (operator_negate::fold_range): Return true and adjust fold_range call.
- (operator_addr_expr::fold_range): Return true.
- (operator_addr_expr::op1_range): Adjust call to fold_range.
- (range_cast): Same.
- * tree-vrp.c (range_fold_binary_symbolics_p): Adjust call to fold_range.
- (range_fold_unary_symbolics_p): Same.
-
-2019-11-14 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/92506
- * range-op.cc (range_operator::fold_range): Start with range undefined.
- (operator_abs::wi_fold): Fix wrong line copy... With wrapv, abs with
- overflow is varying.
-
-2019-11-14 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (*operator*::*range): Remove calls to
- range_intersect, range_invert, and range_union in favor of calling
- the in-place API methods.
- (range_tests): Same.
- * range.cc (range_intersect): Remove.
- (range_union): Remove.
- (range_invert): Remove.
- * range.h (range_intersect): Remove.
- (range_union): Remove.
- (range_intersect): Remove.
-
-2019-11-14 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR rtl-optimization/92430
- * cfgcleanup.c (pass_jump_after_combine::gate): New function.
- (pass_jump_after_combine::execute): Perform jump threading
- unconditionally.
-
-2019-11-14 Jerome Lambourg <lambourg@adacore.com>
- Doug Rupp <rupp@adacore.com>
- Olivier Hainque <hainque@adacore.com>
-
- * config.gcc: Collapse the arm-vxworks entries into
- a single arm-wrs-vxworks7* one, bpabi based. Update
- the default cpu from arm8 to armv7-a
- * config/arm/vxworks.h (CC1_SPEC): Simplify, knowing that
- we always use ARM_UNWIND_INFO.
- (DWARF2_UNWIND_INFO): Remove redefinition.
- (ARM_TARGET2_DWARF_FORMAT): Likewise.
- (VXWORKS_PERSONALITY): Define, to "llvm".
- (VXWORKS_EXTRA_LIBS_RTP): Define, to "-lllvm".
-
-2019-11-14 Jerome Lambourg <lambourg@adacore.com>
-
- * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
- _VX_CPU instead of CPU and handle arm_arch8.
-
-2019-11-14 Doug Rupp <rupp@adacore.com>
- Olivier Hainque <hainque@adacore.com>
- Jerome Lambourg <lambourg@adacore.com>
-
- * config.gcc: Handle aarch64*-wrs-vxworks7*.
- * config/aarch64/aarch64-vxworks.h: New file.
- * config/aarch64/t-aarch64-vxworks: New file.
-
-2019-11-06 Jerome Lambourg <lambourg@adacore.com>
- Olivier Hainque <hainque@adacore.com>
-
- * config/vx-common.h (USE_TM_CLONE_REGISTRY): Remove
- definition, pointless with a VxWorks specific version
- of crtstuff.
- (DWARF2_UNWIND_INFO): Conditionalize on !ARM_UNWIND_INFO.
- * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC):
- New local macros, controlling the addition of vxworks specific
- crtstuff objects depending on the EH mechanism and kind of
- module being linked.
- (VXWORKS_STARTFILE_SPEC, VXWORKS_ENDFILE_SPEC): Use them.
-
-2019-11-06 Pat Bernardi <bernardi@adacore.com>
- Jerome Lambourg <lambourg@adacore.com>
- Olivier Hainque <hainque@adacore.com>
-
- * config.gcc: Add comment to introduce the TARGET_VXWORKS
- common macro definitions, conveying VXWORKS7 or 64bit general
- variations. Add a block to set gcc_cv_initfini_array
- unconditionally to "yes" for VxWorks7.
- config/vx-common.h (VXWORKS_CC1_SPEC): New macro, empty string
- by default. Update some comments.
- config/vxworks.h (VXWORKS_EXTRA_LIBS_RTP): New macro, empty by
- default, to be added the end of VXWORKS_LIBS_RTP.
- (VXWORKS_LIBS_RTP): Replace hardcoded part by VXWORKS_BASE_LIBS_RTP
- and append VXWORKS_EXTRA_LIBS_RTP, both of which specific ports may
- redefine.
- (VXWORKS_NET_LIBS_RTP): Account for VxWorks7 specificities.
- (VXWORKS_CC1_SPEC): Common base definition, with VxWorks7 variation
- to account for the now available TLS abilities.
- (TARGET_LIBC_HAS_FUNCTION): Account for VxWorks7 abilities.
- (VXWORKS_HAVE_TLS): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-slp.c (vect_contains_pattern_stmt_p): New function.
- (vect_slp_convert_to_external): Likewise.
- (vect_slp_analyze_node_operations): If analysis fails, try building
- the node from scalars instead.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-cfg.c (verify_gimple_assign_unary): Handle conversions
- between vector types.
- * tree-vect-stmts.c (vectorizable_conversion): Extend the
- non-widening and non-narrowing path to handle standard
- conversion codes, if the target supports them.
- * expr.c (convert_move): Try using the extend and truncate optabs
- for vectors.
- * optabs-tree.c (supportable_convert_operation): Likewise.
- * config/aarch64/iterators.md (Vnarroqw): New iterator.
- * config/aarch64/aarch64-simd.md (<optab><Vnarrowq><mode>2)
- (trunc<mode><Vnarrowq>2): New patterns.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Don't
- require vectype and nunits_vectype to have the same size;
- instead assert that nunits_vectype has at least as many
- elements as vectype. Don't compute a separate nunits_vectype
- if the scalar type is obviously the same as vectype's.
- Tweak dump messages.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_vectorize_related_mode): New
- function.
- (aarch64_autovectorize_vector_modes): Also add V4HImode and V2SImode.
- (TARGET_VECTORIZE_RELATED_MODE): Define.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vec_info::mode_set): New typedef.
- (vec_info::used_vector_mode): New member variable.
- (vect_chooses_same_modes_p): Declare.
- * tree-vect-stmts.c (get_vectype_for_scalar_type): Record each
- chosen vector mode in vec_info::used_vector_mode.
- (vect_chooses_same_modes_p): New function.
- * tree-vect-loop.c (vect_analyze_loop): Use it to avoid trying
- the same vector statements multiple times.
- * tree-vect-slp.c (vect_slp_bb_region): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * machmode.h (opt_machine_mode::operator==): New function.
- (opt_machine_mode::operator!=): Likewise.
- * tree-vectorizer.h (vec_info::vector_mode): Update comment.
- (get_related_vectype_for_scalar_type): Delete.
- (get_vectype_for_scalar_type_and_size): Declare.
- * tree-vect-slp.c (vect_slp_bb_region): Print dump messages to say
- whether analysis passed or failed, and with what vector modes.
- Use related_vector_mode to check whether trying a particular
- vector mode would be redundant with the autodetected mode,
- and print a dump message if we decide to skip it.
- * tree-vect-loop.c (vect_analyze_loop): Likewise.
- (vect_create_epilog_for_reduction): Use
- get_related_vectype_for_scalar_type instead of
- get_vectype_for_scalar_type_and_size.
- * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Replace
- with...
- (get_related_vectype_for_scalar_type): ...this new function.
- Take a starting/"prevailing" vector mode rather than a vector size.
- Take an optional nunits argument, with the same meaning as for
- related_vector_mode. Use related_vector_mode when not
- auto-detecting a mode, falling back to mode_for_vector if no
- target mode exists.
- (get_vectype_for_scalar_type): Update accordingly.
- (get_same_sized_vectype): Likewise.
- * tree-vectorizer.c (get_vec_alignment_for_array_type): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_call): Require the types
- to have the same size.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_call): If an operand is
- constant or external, use get_vectype_for_scalar_type
- rather than get_same_sized_vectype to get its vector type.
- (vectorizable_conversion, vectorizable_shift): Likewise.
- (vectorizable_operation): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vec_info::vector_size): Replace with...
- (vec_info::vector_mode): ...this new field.
- * tree-vect-loop.c (vect_update_vf_for_slp): Update accordingly.
- (vect_analyze_loop, vect_transform_loop): Likewise.
- * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
- * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
- (vect_make_slp_decision, vect_slp_bb_region): Likewise.
- * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
- * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.h (vector_sizes, auto_vector_sizes): Delete.
- (vector_modes, auto_vector_modes): New typedefs.
- * target.def (autovectorize_vector_sizes): Replace with...
- (autovectorize_vector_modes): ...this new hook.
- * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
- Replace with...
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): ...this new hook.
- * doc/tm.texi: Regenerate.
- * targhooks.h (default_autovectorize_vector_sizes): Delete.
- (default_autovectorize_vector_modes): New function.
- * targhooks.c (default_autovectorize_vector_sizes): Delete.
- (default_autovectorize_vector_modes): New function.
- * omp-general.c (omp_max_vf): Use autovectorize_vector_modes instead
- of autovectorize_vector_sizes. Use the number of units in the mode
- to calculate the maximum VF.
- * omp-low.c (omp_clause_aligned_alignment): Use
- autovectorize_vector_modes instead of autovectorize_vector_sizes.
- Use a loop based on related_mode to iterate through all supported
- vector modes for a given scalar mode.
- * optabs-query.c (can_vec_mask_load_store_p): Use
- autovectorize_vector_modes instead of autovectorize_vector_sizes.
- * tree-vect-loop.c (vect_analyze_loop, vect_transform_loop): Likewise.
- * tree-vect-slp.c (vect_slp_bb_region): Likewise.
- * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes):
- Replace with...
- (aarch64_autovectorize_vector_modes): ...this new function.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
- * config/arc/arc.c (arc_autovectorize_vector_sizes): Replace with...
- (arc_autovectorize_vector_modes): ...this new function.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
- * config/arm/arm.c (arm_autovectorize_vector_sizes): Replace with...
- (arm_autovectorize_vector_modes): ...this new function.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
- * config/i386/i386.c (ix86_autovectorize_vector_sizes): Replace with...
- (ix86_autovectorize_vector_modes): ...this new function.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
- * config/mips/mips.c (mips_autovectorize_vector_sizes): Replace with...
- (mips_autovectorize_vector_modes): ...this new function.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_shift): Check the number
- of vector elements as well as the type mode when deciding
- whether an op1_vectype is compatible. Reuse the result of
- this check when generating vector statements.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): If
- targetm.vectorize.preferred_simd_mode returns an integer mode,
- use mode_for_vector to decide what the vector type's mode
- should actually be. Use build_vector_type_for_mode instead
- of build_vector_type.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (get_mask_mode): Take a vector mode itself as argument,
- instead of properties about the vector mode.
- * doc/tm.texi: Regenerate.
- * targhooks.h (default_get_mask_mode): Update to reflect new
- get_mode_mask interface.
- * targhooks.c (default_get_mask_mode): Likewise. Use
- related_int_vector_mode.
- * optabs-query.c (can_vec_mask_load_store_p): Update call
- to get_mask_mode.
- * tree-vect-stmts.c (check_load_store_masking): Likewise, checking
- first that the original mode really is a vector.
- * tree.c (build_truth_vector_type_for): Likewise.
- * config/aarch64/aarch64.c (aarch64_get_mask_mode): Update for new
- get_mode_mask interface.
- (aarch64_expand_sve_vcond): Update call accordingly.
- * config/gcn/gcn.c (gcn_vectorize_get_mask_mode): Update for new
- get_mode_mask interface.
- * config/i386/i386.c (ix86_get_mask_mode): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree.h (build_truth_vector_type): Delete.
- (build_same_sized_truth_vector_type): Likewise.
- * tree.c (build_truth_vector_type): Rename to...
- (build_truth_vector_type_for): ...this. Make static and take
- a vector type as argument.
- (truth_type_for): Update accordingly.
- (build_same_sized_truth_vector_type): Delete.
- * tree-vect-generic.c (expand_vector_divmod): Use truth_type_for
- instead of build_same_sized_truth_vector_type.
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
- (vect_record_loop_mask, vect_get_loop_mask): Likewise.
- * tree-vect-patterns.c (build_mask_conversion): Likeise.
- * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
- * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
- (vect_build_gather_load_calls, vectorizable_call): Likewise.
- (scan_store_can_perm_p, vectorizable_scan_store): Likewise.
- (vectorizable_store, vectorizable_condition): Likewise.
- (get_mask_type_for_scalar_type, get_same_sized_vectype): Likewise.
- (vect_get_mask_type_for_stmt): Use truth_type_for instead of
- build_truth_vector_type.
- * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
- Use truth_type_for instead of build_same_sized_truth_vector_type.
- * config/rs6000/rs6000-call.c (fold_build_vec_cmp): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree.h (build_truth_vector_type_for_mode): Declare.
- * tree.c (build_truth_vector_type_for_mode): New function,
- split out from...
- (build_truth_vector_type): ...here.
- (build_opaque_vector_type): Fix head comment.
- * tree-vectorizer.h (supportable_narrowing_operation): Remove
- vec_info parameter.
- (vect_halve_mask_nunits): Replace vec_info parameter with the
- mode of the new vector.
- (vect_double_mask_nunits): Likewise.
- * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
- (vect_double_mask_nunits): Likewise.
- * tree-vect-loop-manip.c: Include insn-config.h, rtl.h and recog.h.
- (vect_maybe_permute_loop_masks): Remove vinfo parameter. Update call
- to vect_halve_mask_nunits, getting the required mode from the unpack
- patterns.
- (vect_set_loop_condition_masked): Update call accordingly.
- * tree-vect-stmts.c (supportable_narrowing_operation): Remove vec_info
- parameter and update call to vect_double_mask_nunits.
- (vectorizable_conversion): Update call accordingly.
- (simple_integer_narrowing): Likewise. Remove vec_info parameter.
- (vectorizable_call): Update call accordingly.
- (supportable_widening_operation): Update call to
- vect_halve_mask_nunits.
- * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
- Use build_truth_vector_type_mode instead of build_truth_vector_type.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * machmode.h (mode_for_int_vector): Delete.
- (related_int_vector_mode): Declare.
- * stor-layout.c (mode_for_int_vector): Delete.
- (related_int_vector_mode): New function.
- * optabs.c (expand_vec_perm_1): Use related_int_vector_mode
- instead of mode_for_int_vector.
- (expand_vec_perm_const): Likewise.
- * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
- (aarch64_evpc_sve_tbl): Likewise.
- * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
- (s390_expand_vcond): Likewise.
-
-2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (related_mode): New hook.
- * doc/tm.texi.in (TARGET_VECTORIZE_RELATED_MODE): New hook.
- * doc/tm.texi: Regenerate.
- * targhooks.h (default_vectorize_related_mode): Declare.
- * targhooks.c (default_vectorize_related_mode): New function.
- * machmode.h (related_vector_mode): Declare.
- * stor-layout.c (related_vector_mode): New function.
- * expmed.c (extract_bit_field_1): Use it instead of mode_for_vector.
- * optabs-query.c (qimode_for_vec_perm): Likewise.
- * tree-vect-stmts.c (get_group_load_store_type): Likewise.
- (vectorizable_store, vectorizable_load): Likewise
-
-2019-11-14 Richard Henderson <richard.henderson@linaro.org>
-
- * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Declare.
- * config/arm/aarch-common.c (arm_md_asm_adjust): New.
- * config/arm/arm-c.c (arm_cpu_builtins): Define
- __GCC_ASM_FLAG_OUTPUTS__.
- * config/arm/arm.c (TARGET_MD_ASM_ADJUST): New.
- * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros):
- Define __GCC_ASM_FLAG_OUTPUTS__.
- * config/aarch64/aarch64.c (TARGET_MD_ASM_ADJUST): New.
- * doc/extend.texi (FlagOutputOperands): Add documentation
- for ARM and AArch64.
-
- * config/arm/arm-modes.def (CC_NZ): Rename from CC_NOOV.
- * config/arm/predicates.md (nz_comparison_operator): Rename
- from noov_comparison_operator.
- * config/arm/arm.c (arm_select_cc_mode): Use CC_NZmode name.
- (arm_gen_dicompare_reg): Likewise.
- (maybe_get_arm_condition_code): Likewise.
- (thumb1_final_prescan_insn): Likewise.
- (arm_emit_coreregs_64bit_shift): Likewise.
- * config/arm/arm.md (addsi3_compare0): Likewise.
- (*addsi3_compare0_scratch, subsi3_compare0): Likewise.
- (*mulsi3_compare0, *mulsi3_compare0_v6): Likewise.
- (*mulsi3_compare0_scratch, *mulsi3_compare0_scratch_v6): Likewise.
- (*mulsi3addsi_compare0, *mulsi3addsi_compare0_v6): Likewise.
- (*mulsi3addsi_compare0_scratch): Likewise.
- (*mulsi3addsi_compare0_scratch_v6): Likewise.
- (*andsi3_compare0, *andsi3_compare0_scratch): Likewise.
- (*zeroextractsi_compare0_scratch): Likewise.
- (*ne_zeroextractsi, *ne_zeroextractsi_shifted): Likewise.
- (*ite_ne_zeroextractsi, *ite_ne_zeroextractsi_shifted): Likewise.
- (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
- (andsi_not_shiftsi_si_scc): Likewise.
- (*andsi_notsi_si_compare0, *andsi_notsi_si_compare0_scratch): Likewise.
- (*iorsi3_compare0, *iorsi3_compare0_scratch): Likewise.
- (*xorsi3_compare0, *xorsi3_compare0_scratch): Likewise.
- (*shiftsi3_compare0, *shiftsi3_compare0_scratch): Likewise.
- (*not_shiftsi_compare0, *not_shiftsi_compare0_scratch): Likewise.
- (*notsi_compare0, *notsi_compare0_scratch): Likewise.
- (return_addr_mask, *check_arch2): Likewise.
- (*arith_shiftsi_compare0, *arith_shiftsi_compare0_scratch): Likewise.
- (*sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch): Likewise.
- (compare_scc splitters): Likewise.
- (movcond_addsi): Likewise.
- * config/arm/thumb2.md (thumb2_addsi3_compare0): Likewise.
- (*thumb2_addsi3_compare0_scratch): Likewise.
- (*thumb2_mulsi_short_compare0): Likewise.
- (*thumb2_mulsi_short_compare0_scratch): Likewise.
- (compare peephole2s): Likewise.
- * config/arm/thumb1.md (thumb1_cbz): Use CC_NZmode and
- nz_comparison_operator names.
- (cbranchsi4_insn): Likewise.
-
- * config/arm/constraints.md (c): Use cc_register predicate.
-
- * config/aarch64/constraints.md (c): New constraint.
-
-2019-11-14 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time,
- ipa_merge_fn_summary_after_inlining): Micro optimize.
-
-2019-11-14 Jan Hubicka <hubicka@ucw.cz>
-
- * params.opt (max-inline-insns-single-O2): Set to 70 (instead of 30).
-
-2019-11-14 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-cp.c (ipa_vr_operation_and_type_effects): Move up in file.
- (ipa_value_range_from_jfunc): New function.
- * ipa-fnsummary.c (evaluate_conditions_for_known_args): Add
- known_value_ranges parameter; use it to evalulate conditions.
- (evaluate_properties_for_edge): Compute known value ranges.
- (ipa_fn_summary_t::duplicate): Update use of
- evaluate_conditions_for_known_args.
- (estimate_ipcp_clone_size_and_time): Likewise.
- (ipa_merge_fn_summary_after_inlining): Likewise.
- * ipa-prop.h (ipa_value_range_from_jfunc): Declare.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- * ipa-inline.c (want_inline_small_function_p): Use
- CIF_MAX_INLINE_INSNS_AUTO_LIMIT instead
- of CIF_MAX_INLINE_INSNS_SINGLE_O2_LIMIT.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- * ipa-cp.c (devirtualization_time_bonus): Use opt_for_fn
- of a callee to get value of the param.
- * ipa-inline.c (inline_insns_auto): Use proper
- opt_for_fn.
- * opts.c (maybe_default_option): Do not overwrite param
- value if optimization level does not match. Note that
- params usually have default value set via Init() keyword.
- * params.opt: Remove -param=max-inline-insns-auto-O2.
- * cif-code.def (MAX_INLINE_INSNS_AUTO_O2_LIMIT): Remove.
- * doc/invoke.texi: Remove documentation of
- max-inline-insns-auto-O2.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- * tree-switch-conversion.c (switch_conversion::switch_conversion):
- Do not initialize m_other_count.
- (switch_conversion::collect): Do not count m_default_count and
- m_other_count as we use frequencies for edges.
- * tree-switch-conversion.h: Remove m_default_count and m_other_count.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- PR other/92329
- * doc/invoke.texi: Document -fallocation-dce.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- PR target/92389
- * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
- PTA_ICELAKE_CLIENT which is later interited by
- PTA_ICELAKE_SERVER and PTA_TIGERLAKE.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- * ipa-icf.c (sem_item_optimizer::execute): Save
- loaded_symbols.
- (sem_item_optimizer::parse_nonsingleton_classes):
- Return number of loaded symbols.
- (sem_item_optimizer::merge_classes): Print
- statistics about totally needed symbols.
- * ipa-icf.h (parse_nonsingleton_classes): Change return
- type.
- (merge_classes): Add one argument.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::hash_operand): Improve
- func_checker::hash_operand by handling of FIELD_DECLs.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.h (func_checker::func_checker): Add
- default constructor.
- * ipa-icf.c (sem_function::init): Make operand_equal_p
- and hash_operand public.
- (sem_item::add_expr): Remove.
- (sem_item::add_type): Remove.
- (sem_function::hash_stmt): Use m_checker for hashing
- of GIMPLE statements.
- (sem_function::parse): Init with checker.
- (sem_variable::parse): Pass NULL as checker.
- (sem_item_optimizer::parse_funcs_and_vars):
- Pass checker to ::parse function.
- (sem_item_optimizer::parse_nonsingleton_classes): Likewise.
- (sem_variable::parse): New function.
- (sem_variable::get_hash): Only return computed hash value.
- (sem_variable::init): Initialize hash of a variable.
- * ipa-icf.h: Remove add_expr, add_type and add func_checker
- to couple of functions as a new argument.
-
-2019-11-14 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::compare_gimple_call): Update
- bail out reason.
- (func_checker::compare_gimple_assign): Likewise.
-
-2019-11-14 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa): Don't
- change sse4.2 to sse4_2 and sse4.1 to sse4.1.
- * config/i386/t-omp-device (omp-device-properties-i386): Likewise.
-
- * omp-general.c (omp_context_name_list_prop): New function.
- (omp_context_selector_matches): Use it. Return 0 if it returns
- NULL.
- (omp_context_selector_props_compare): Allow equivalency of an
- identifier and a string literal containing no embedded zeros.
-
-2019-11-14 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (RANGE3): Remove.
- (range_tests): Remove all selftest that check for multi-ranges.
- Put tests in namespace selftest.
- * selftest.h: Move range_tests into namespace selftest.
- * value-range.h (class value_range): Unfriend range_tests.
-
-2019-11-14 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (range_fold_binary_symbolics_p): Adapt for
- normalize_symbolics and normalize_addresses working in place.
- (range_fold_unary_symbolics_p): Same.
- (range_fold_unary_symbolics_p): Same.
- * value-range.cc (num_pairs): Same.
- (lower_bound): Same.
- (upper_bound): Same.
- (contains_p): Same.
- (normalize_addresses): Same.
- (normalize_symbolics): Same.
- * value-range.h (normalize_symbolics): Same.
- (normalize_addresses): Same.
-
-2019-11-14 Feng Xue <fxue@os.amperecomputing.com>
-
- PR ipa/91682
- * ipa-prop.h (jump_func_type): New value IPA_JF_LOAD_AGG.
- (ipa_load_agg_data, ipa_agg_value, ipa_agg_value_set): New structs.
- (ipa_agg_jf_item): Add new field jftype and type, redefine field value.
- (ipa_agg_jump_function): Remove member function equal_to.
- (ipa_agg_jump_function_p): Remove typedef.
- (ipa_copy_agg_values, ipa_release_agg_values): New functions.
- * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump
- information for aggregate jump function.
- (get_ssa_def_if_simple_copy): Add new parameter rhs_stmt to
- record last definition statement.
- (load_from_unmodified_param_or_agg): New function.
- (ipa_known_agg_contents_list): Add new field type and value, remove
- field constant.
- (build_agg_jump_func_from_list): Rename parameter const_count to
- value_count, build aggregate jump function from ipa_load_agg_data.
- (analyze_agg_content_value): New function.
- (extract_mem_content): Analyze memory store assignment to prepare
- information for aggregate jump function generation.
- (determine_known_aggregate_parts): Add new parameter fbi, remove
- parameter aa_walk_budeget_p.
- (update_jump_functions_after_inlining): Update aggregate jump function.
- (ipa_find_agg_cst_for_param): Change type of parameter agg.
- (try_make_edge_direct_simple_call): Add new parameter new_root.
- (try_make_edge_direct_virtual_call): Add new parameter new_root and
- new_root_info.
- (update_indirect_edges_after_inlining): Pass new argument to
- try_make_edge_direct_simple_call and try_make_edge_direct_virtual_call.
- (ipa_write_jump_function): Write aggregate jump function to file.
- (ipa_read_jump_function): Read aggregate jump function from file.
- (ipa_agg_value::equal_to): Migrate from ipa_agg_jf_item::equal_to.
- * ipa-cp.c (ipa_get_jf_arith_result): New function.
- (ipa_agg_value_from_node): Likewise.
- (ipa_agg_value_set_from_jfunc): Likewise.
- (propagate_vals_across_arith_jfunc): Likewise.
- (propagate_aggregate_lattice): Likewise.
- (ipa_get_jf_pass_through_result): Call ipa_get_jf_arith_result.
- (propagate_vals_across_pass_through): Call
- propagate_vals_across_arith_jfunc.
- (get_clone_agg_value): Move forward.
- (propagate_aggs_across_jump_function): Handle value propagation for
- aggregate jump function.
- (agg_jmp_p_vec_for_t_vec): Remove.
- (context_independent_aggregate_values): Replace vec<ipa_agg_jf_item>
- with vec<ipa_agg_value>.
- (copy_plats_to_inter, intersect_with_plats): Likewise.
- (agg_replacements_to_vector, intersect_with_agg_replacements): Likewise.
- (intersect_aggregate_with_edge): Likewise.
- (find_aggregate_values_for_callers_subset): Likewise.
- (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
- (estimate_local_effects): Replace vec<ipa_agg_jump_function> and
- vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
- (gather_context_independent_values): Likewise.
- (perform_estimation_of_a_value, decide_whether_version_node): Likewise.
- * ipa-fnsummary.c (evaluate_conditions_for_known_args): Replace
- vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
- (evaluate_properties_for_edge): Likewise.
- (estimate_edge_devirt_benefit): Likewise.
- (estimate_edge_size_and_time): Likewise.
- (estimate_calls_size_and_time): Likewise.
- (ipa_call_context::ipa_call_context): Likewise.
- (estimate_ipcp_clone_size_and_time): Likewise.
- * ipa-fnsummary.h (ipa_call_context): Replace
- vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
- * ipa-inline-analysis.c (do_estimate_edge_time): Replace
- vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
- (do_estimate_edge_size): Likewise.
- (do_estimate_edge_hints): Likewise.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-cp.c (propagate_vr_across_jump_function): Propagate also across
- binary operations.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-profile.c (check_argument_count): Check properly that e_info
- is non-NULL; do not check descriptors.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline-analysis.c (do_estimate_edge_time): Relax
- check for ipa profiles.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- PR c++/92421
- * ipa-prop.c (update_indirect_edges_after_inlining):
- Mark parameter as used.
- * ipa-inline.c (recursive_inlining): Reset node cache
- after inlining.
- (inline_small_functions): Remove checking ifdef.
- * ipa-inline-analysis.c (do_estimate_edge_time): Verify
- cache consistency.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- PR ipa/92498
- * ipa-profile.c (check_argument_count): Do not ICE when descriptors
- is NULL.
- (ipa_profile): Fix reversed test.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-cp.c (ignore_edge_p): Do not check caller flags.
- (propagate_constants_topo): Fix typo.
-
-2019-11-13 Aldy Hernandez <aldyh@redhat.com>
-
- * Makefile.in (OBJS): Add value-range.o.
- (GTFILES): Add value-range.h.
- * gengtype.c (open_base_files): Add value-range.h to list of
- header files.
- * tree-vrp.c: Move the following value_range related functions:
- ranges_from_anti_range, value_range, check, equal_p, symbolic_p,
- constant_p, set_undefined, set_varying, may_contain_p,
- singleton_p, type, dump, dump_value_range, debug, vrp_val_max,
- vrp_val_min, vrp_val_is_min, vrp_val_is_max, set, set_nonzero,
- set_zero, vrp_operand_equal_p, range_has_numeric_bounds_p,
- value_inside_range, ranges_from_anti_range, union_ranges,
- intersect_ranges, intersect_helper, union_helper, union_,
- normalize_addresses, normalize_symbolics, num_pairs, lower_bound,
- upper_bound, contains_p, invert, intersect...
- * value-range.cc: ...to here.
- * tree-vrp.h: Move class value_range, enum_value_range_kind, and
- associated inline methods from here...
- * value-range.h: ...to here.
-
-2019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
-
- * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
- instead of asserting its value.
-
-(2019-11-13 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-fold.c (size_must_be_zero_p): Rewrite use of value_range
- constructors and set methods so value_range_kind is the last
- argument and defaults to VR_RANGE.
- * gimple-ssa-evrp-analyze.c (record_ranges_from_stmt): Same.
- * ipa-cp.c (propagate_vr_across_jump_function): Same.
- * ipa-prop.c (ipa_get_value_range): Same.
- (ipa_compute_jump_functions_for_edge): Same.
- * range-op.cc (value_range_from_overflowed_bounds): Same.
- (operator_cast::op1_range): Same.
- (range_tests): Same.
- * range.cc (range_nonzero): Same.
- * tree-ssanames.c (get_range_info): Same.
- * tree-vrp.c (value_range_equiv::set): Same.
- (value_range::value_range): Same.
- (value_range_equiv::value_range_equiv): Same.
- (value_range_equiv::update): Same.
- (value_range_equiv::deep_copy): Same.
- (value_range_equiv::move): Same.
- (value_range_equiv::set_undefined): Same.
- (value_range::set): Same.
- (value_range::set_nonzero): Same.
- (ranges_from_anti_range): Same.
- (extract_range_from_plus_minus_expr): Same.
- (value_range::intersect_helper): Same.
- (value_range_equiv::intersect): Same.
- (value_range::union_helper): Same.
- (value_range_equiv::union_): Same.
- (value_range::normalize_symbolics): Same.
- (value_range::invert): Same.
- (determine_value_range_1): Same.
- * tree-vrp.h (class value_range): Same.
- (class value_range_equiv): Same.
- * vr-values.c (set_value_range_to_nonnegative): Same.
- (set_value_range_to_truthvalue): Same.
- (vr_values::update_value_range): Same.
- (vr_values::extract_range_for_var_from_comparison_expr): Same.
- (vr_values::extract_range_from_binary_expr): Same.
- (vr_values::extract_range_from_comparison): Same.
- (vr_values::extract_range_basic): Same.
- (vr_values::adjust_range_with_scev): Same.
- (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
- (vr_values::extract_range_from_phi_node): Same.
-
-2019-11-13 Ulrich Drepper <drepper@redhat.com>
-
- * tree-dump.c (dequeue_and_dump): Print first tree operand
- for VIEW_CONVERT_EXPR.
-
-2019-11-13 Joseph Myers <joseph@codesourcery.com>
-
- * ginclude/float.c [__STDC_VERSION__ > 201710L] (FLT_NORM_MAX,
- DBL_NORM_MAX, LDBL_NORM_MAX): Define.
- * real.c (get_max_float): Add norm_max argument.
- * real.h (get_max_float): Update prototype.
- * builtins.c (fold_builtin_interclass_mathfn): Update calls to
- get_max_float.
-
-2019-11-13 Martin Liska <mliska@suse.cz>
-
- * dbgcnt.c (test_sorted_dbg_counters): New.
- (dbgcnt_c_tests): Likewise.
- * selftest-run-tests.c (selftest::run_tests): Likewise.
- * selftest.h (dbgcnt_c_tests): Likewise.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
- Martin Jambor <mjambor@suse.cz>
-
- PR ipa/92454
- * ipa-cp.c (spread_undeadness): Check that IPA_NODE_REF exists.
- (identify_dead_nodes): Likewise.
-
-2019-11-13 Martin Liska <mliska@suse.cz>
-
- * ipa-icf.c (sem_function::equals_private): Do not overuse
- push/pop_cfun functions.
-
-2019-11-13 Martin Liska <mliska@suse.cz>
-
- * common.opt: Document change of -fdbg-cnt option.
- * dbgcnt.c (DEBUG_COUNTER): Remove.
- (dbg_cnt_is_enabled): Remove.
- (dbg_cnt): Work with new intervals.
- (dbg_cnt_set_limit_by_index): Set to new
- list of intervals.
- (dbg_cnt_set_limit_by_name): Likewise.
- (dbg_cnt_process_single_pair): Process new format.
- (dbg_cnt_process_opt): Likewise.
- (dbg_cnt_list_all_counters): Likewise.
- * doc/invoke.texi: Document change of -fdbg-cnt option.
- (cmp_tuples): New.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.c (ipa_inline): Check that function is defined before
- flattening.
-
-2019-11-13 Andrew Stubbs <ams@codesourcery.com>
- Julian Brown <julian@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure
- flag_worker_partitioning is not set.
- (TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition.
- * config/gcn/gcn.opt (macc-experimental-workers): Default to off.
-
-2019-11-13 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-run.c (heap_region): New global variable.
- (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn.
- (init_hsa_runtime_functions): Initialize hsa_memory_assign_agent.
- (get_kernarg_region): Move contents to ....
- (get_memory_region): .... here.
- (get_heap_region): New function.
- (init_device): Initialize the heap_region.
- (device_malloc): Add region parameter.
- (struct kernargs): Move heap ....
- (heap): ... to global scope.
- (main): Allocate heap separate to kernargs.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-prop.c (ipa_print_node_jump_functions,
- ipa_print_node_params): Print info about missing summaries.
-
-2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vect_estimate_min_profitable_iters): Include
- the cost of generating loop masks.
-
-2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vect_apply_runtime_profitability_check_p):
- New function.
- * tree-vect-loop-manip.c (vect_loop_versioning): Use it.
- * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
- (vect_transform_loop): Likewise.
- (vect_analyze_loop_costing): Don't take the cost of versioning
- into account for the static profitability threshold if it turns
- out that no versioning is needed.
-
-2019-11-13 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node
- and target_option_default_node to get -fprofile-generate ctors working
- right with LTO.
-
-2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vect_nop_conversion_p): Declare.
- * tree-vect-stmts.c (vect_nop_conversion_p): New function.
- (vectorizable_assignment): Don't add a cost for nop conversions.
- * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
- Likewise.
- * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
-
-2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the
- number of ncopies as an additional argument.
- (vectorizable_conversion): Update call accordingly. Use "modifier"
- to check whether a conversion is between vectors with the same
- numbers of units.
-
-2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve-builtins-functions.h
- (unary_count::expand): Use aarch64_sve_int_mode instead of
- mode_for_int_vector.
-
-2019-11-13 Martin Liska <mliska@suse.cz>
-
- * opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY.
-
-2019-11-13 Martin Liska <mliska@suse.cz>
-
- * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
- Remove call to finalize_options_struct.
-
-2019-11-13 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/92055
- * config/avr/t-avr (avr-mcus): Do not depend on
- $(srcdir)/config/avr/t-multilib.
-
-2019-11-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92473
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform
- direct optab reduction in the correct type.
-
-2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
- hexadecimal literal.
-
-2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle
- UNORDERED if !HONOR_NANS (DFmode).
- (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED
- if !HONOR_NANS (<MODE>mode).
-
-2019-11-12 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-cp.c (ignore_edge_p): Also look for optimize flag.
- (ipcp_verify_propagated_values): Likewise.
- (propagate_constants_across_call): Likewise.
- (propagate_constants_topo): Likewise.
- (ipcp_propagate_stage): Likewise.
-
-2019-11-12 Jan Hubicka <hubicka@ucw.cz>
-
- PR ipa/92471
- * ipa-profile.c (check_argument_count): Break out from ...;
- watch for missing summaries.
- (ipa_profile): Here.
-
-2019-11-12 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92412
- * targhooks.c (default_ref_may_alias_errno): Errono can only alias
- extern variables.
-
-2019-11-12 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/83688
- * gimple-ssa-sprintf.c (format_result::alias_info): New struct.
- (directive::argno): New member.
- (format_result::aliases, format_result::alias_count): New data members.
- (format_result::append_alias): New member function.
- (fmtresult::dst_offset): New data member.
- (pass_sprintf_length::call_info::dst_origin): New data member.
- (pass_sprintf_length::call_info::dst_field, dst_offset): Same.
- (char_type_p, array_elt_at_offset, field_at_offset): New functions.
- (get_origin_and_offset): Same.
- (format_string): Call it.
- (format_directive): Call append_alias and set directive argument
- number.
- (maybe_warn_overlap): New function.
- (pass_sprintf_length::compute_format_length): Call it.
- (pass_sprintf_length::handle_gimple_call): Initialize new members.
- * tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
-
-2019-11-12 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR rtl-optimization/92430
- * cfgcleanup.c (pass_jump_after_combine::execute): Free
- dominance info at the beginning.
-
-2019-11-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92460
- * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare
- expression before gimplifying.
-
-2019-11-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92461
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Update
- stmt after propagation.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
- Use SET_OPTION_IF_UNSET.
- (ix86_option_override_internal): Likewise.
- * opts.c (default_options_optimization): Likewise.
- (finish_options): Likewise.
- (enable_fdo_optimizations): Likewise.
- (common_handle_option): Likewise.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * common/common-target.def: Remove option_validate_param and
- option_default_params.
- * common/common-targhooks.c (default_option_validate_param):
- Remove.
- * common/common-targhooks.h (default_option_validate_param):
- Remove.
- * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS):
- Remove usage of this.
- (TARGET_OPTION_VALIDATE_PARAM): Likewise.
- (aarch64_option_validate_param): Likewise.
- (aarch64_option_default_params): Likewise
- * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise.
- (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
- * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
- (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
- * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
- (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
- * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
- (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
- * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
- (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
- * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate
- guard_size here.
- * doc/tm.texi: Remove option_default_params and option_validate_param.
- * doc/tm.texi.in: Likewise.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * common/common-target.def:
- Do not mention set_default_param_value
- and set_param_value.
- * doc/tm.texi: Likewise.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * common.opt: Remove param_values.
- * config/i386/i386-options.c (ix86_valid_target_attribute_p):
- Remove finalize_options_struct.
- * gcc.c (driver::decode_argv): Do not call global_init_params
- and finish_params.
- (driver::finalize): Do not call params_c_finalize
- and finalize_options_struct.
- * opt-suggestions.c (option_proposer::get_completions): Remove
- special casing of params.
- (option_proposer::find_param_completions): Remove.
- (test_completion_partial_match): Update expected output.
- * opt-suggestions.h: Remove find_param_completions.
- * opts-common.c (add_misspelling_candidates): Add
- --param with a space.
- * opts.c (handle_param): Remove.
- (init_options_struct):. Remove init_options_struct and
- similar calls.
- (finalize_options_struct): Remove.
- (common_handle_option): Use SET_OPTION_IF_UNSET.
- * opts.h (finalize_options_struct): Remove.
- * toplev.c (general_init): Do not call global_init_params.
- (toplev::finalize): Do not call params_c_finalize and
- finalize_options_struct.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * Makefile.in: Remove PARAMS_H and params.list
- and params.options.
- * params-enum.h: Remove.
- * params-list.h: Remove.
- * params-options.h: Remove.
- * params.c: Remove.
- * params.def: Remove.
- * params.h: Remove.
- * asan.c: Do not include params.h.
- * auto-profile.c: Likewise.
- * bb-reorder.c: Likewise.
- * builtins.c: Likewise.
- * cfgcleanup.c: Likewise.
- * cfgexpand.c: Likewise.
- * cfgloopanal.c: Likewise.
- * cgraph.c: Likewise.
- * combine.c: Likewise.
- * common/config/aarch64/aarch64-common.c: Likewise.
- * common/config/gcn/gcn-common.c: Likewise.
- * common/config/ia64/ia64-common.c: Likewise.
- * common/config/powerpcspe/powerpcspe-common.c: Likewise.
- * common/config/rs6000/rs6000-common.c: Likewise.
- * common/config/sh/sh-common.c: Likewise.
- * config/aarch64/aarch64.c: Likewise.
- * config/alpha/alpha.c: Likewise.
- * config/arm/arm.c: Likewise.
- * config/avr/avr.c: Likewise.
- * config/csky/csky.c: Likewise.
- * config/i386/i386-builtins.c: Likewise.
- * config/i386/i386-expand.c: Likewise.
- * config/i386/i386-features.c: Likewise.
- * config/i386/i386-options.c: Likewise.
- * config/i386/i386.c: Likewise.
- * config/ia64/ia64.c: Likewise.
- * config/rs6000/rs6000-logue.c: Likewise.
- * config/rs6000/rs6000.c: Likewise.
- * config/s390/s390.c: Likewise.
- * config/sparc/sparc.c: Likewise.
- * config/visium/visium.c: Likewise.
- * coverage.c: Likewise.
- * cprop.c: Likewise.
- * cse.c: Likewise.
- * cselib.c: Likewise.
- * dse.c: Likewise.
- * emit-rtl.c: Likewise.
- * explow.c: Likewise.
- * final.c: Likewise.
- * fold-const.c: Likewise.
- * gcc.c: Likewise.
- * gcse.c: Likewise.
- * ggc-common.c: Likewise.
- * ggc-page.c: Likewise.
- * gimple-loop-interchange.cc: Likewise.
- * gimple-loop-jam.c: Likewise.
- * gimple-loop-versioning.cc: Likewise.
- * gimple-ssa-split-paths.c: Likewise.
- * gimple-ssa-sprintf.c: Likewise.
- * gimple-ssa-store-merging.c: Likewise.
- * gimple-ssa-strength-reduction.c: Likewise.
- * gimple-ssa-warn-alloca.c: Likewise.
- * gimple-ssa-warn-restrict.c: Likewise.
- * graphite-isl-ast-to-gimple.c: Likewise.
- * graphite-optimize-isl.c: Likewise.
- * graphite-scop-detection.c: Likewise.
- * graphite-sese-to-poly.c: Likewise.
- * graphite.c: Likewise.
- * haifa-sched.c: Likewise.
- * hsa-gen.c: Likewise.
- * ifcvt.c: Likewise.
- * ipa-cp.c: Likewise.
- * ipa-fnsummary.c: Likewise.
- * ipa-inline-analysis.c: Likewise.
- * ipa-inline.c: Likewise.
- * ipa-polymorphic-call.c: Likewise.
- * ipa-profile.c: Likewise.
- * ipa-prop.c: Likewise.
- * ipa-split.c: Likewise.
- * ipa-sra.c: Likewise.
- * ira-build.c: Likewise.
- * ira-conflicts.c: Likewise.
- * loop-doloop.c: Likewise.
- * loop-invariant.c: Likewise.
- * loop-unroll.c: Likewise.
- * lra-assigns.c: Likewise.
- * lra-constraints.c: Likewise.
- * modulo-sched.c: Likewise.
- * opt-suggestions.c: Likewise.
- * opts.c: Likewise.
- * postreload-gcse.c: Likewise.
- * predict.c: Likewise.
- * reload.c: Likewise.
- * reorg.c: Likewise.
- * resource.c: Likewise.
- * sanopt.c: Likewise.
- * sched-deps.c: Likewise.
- * sched-ebb.c: Likewise.
- * sched-rgn.c: Likewise.
- * sel-sched-ir.c: Likewise.
- * sel-sched.c: Likewise.
- * shrink-wrap.c: Likewise.
- * stmt.c: Likewise.
- * targhooks.c: Likewise.
- * toplev.c: Likewise.
- * tracer.c: Likewise.
- * trans-mem.c: Likewise.
- * tree-chrec.c: Likewise.
- * tree-data-ref.c: Likewise.
- * tree-if-conv.c: Likewise.
- * tree-inline.c: Likewise.
- * tree-loop-distribution.c: Likewise.
- * tree-parloops.c: Likewise.
- * tree-predcom.c: Likewise.
- * tree-profile.c: Likewise.
- * tree-scalar-evolution.c: Likewise.
- * tree-sra.c: Likewise.
- * tree-ssa-ccp.c: Likewise.
- * tree-ssa-dom.c: Likewise.
- * tree-ssa-dse.c: Likewise.
- * tree-ssa-ifcombine.c: Likewise.
- * tree-ssa-loop-ch.c: Likewise.
- * tree-ssa-loop-im.c: Likewise.
- * tree-ssa-loop-ivcanon.c: Likewise.
- * tree-ssa-loop-ivopts.c: Likewise.
- * tree-ssa-loop-manip.c: Likewise.
- * tree-ssa-loop-niter.c: Likewise.
- * tree-ssa-loop-prefetch.c: Likewise.
- * tree-ssa-loop-unswitch.c: Likewise.
- * tree-ssa-math-opts.c: Likewise.
- * tree-ssa-phiopt.c: Likewise.
- * tree-ssa-pre.c: Likewise.
- * tree-ssa-reassoc.c: Likewise.
- * tree-ssa-sccvn.c: Likewise.
- * tree-ssa-scopedtables.c: Likewise.
- * tree-ssa-sink.c: Likewise.
- * tree-ssa-strlen.c: Likewise.
- * tree-ssa-structalias.c: Likewise.
- * tree-ssa-tail-merge.c: Likewise.
- * tree-ssa-threadbackward.c: Likewise.
- * tree-ssa-threadedge.c: Likewise.
- * tree-ssa-uninit.c: Likewise.
- * tree-switch-conversion.c: Likewise.
- * tree-vect-data-refs.c: Likewise.
- * tree-vect-loop.c: Likewise.
- * tree-vect-slp.c: Likewise.
- * tree-vrp.c: Likewise.
- * tree.c: Likewise.
- * value-prof.c: Likewise.
- * var-tracking.c: Likewise.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * asan.c (asan_sanitize_stack_p): Replace old parameter syntax
- with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET
- macro.
- (asan_sanitize_allocas_p): Likewise.
- (asan_emit_stack_protection): Likewise.
- (asan_protect_global): Likewise.
- (instrument_derefs): Likewise.
- (instrument_builtin_call): Likewise.
- (asan_expand_mark_ifn): Likewise.
- * auto-profile.c (auto_profile): Likewise.
- * bb-reorder.c (copy_bb_p): Likewise.
- (duplicate_computed_gotos): Likewise.
- * builtins.c (inline_expand_builtin_string_cmp): Likewise.
- * cfgcleanup.c (try_crossjump_to_edge): Likewise.
- (try_crossjump_bb): Likewise.
- * cfgexpand.c (defer_stack_allocation): Likewise.
- (stack_protect_classify_type): Likewise.
- (pass_expand::execute): Likewise.
- * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
- (estimate_reg_pressure_cost): Likewise.
- * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.
- * combine.c (combine_instructions): Likewise.
- (record_value_for_reg): Likewise.
- * common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise.
- (aarch64_option_default_params): Likewise.
- * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
- * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
- * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
- * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
- * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise.
- (aarch64_allocate_and_probe_stack_space): Likewise.
- (aarch64_expand_epilogue): Likewise.
- (aarch64_override_options_internal): Likewise.
- * config/alpha/alpha.c (alpha_option_override): Likewise.
- * config/arm/arm.c (arm_option_override): Likewise.
- (arm_valid_target_attribute_p): Likewise.
- * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
- * config/i386/i386.c (get_probe_interval): Likewise.
- (ix86_adjust_stack_and_probe_stack_clash): Likewise.
- (ix86_max_noce_ifcvt_seq_cost): Likewise.
- * config/ia64/ia64.c (ia64_adjust_cost): Likewise.
- * config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise.
- (get_stack_clash_protection_guard_size): Likewise.
- * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
- * config/s390/s390.c (allocate_stack_space): Likewise.
- (s390_emit_prologue): Likewise.
- (s390_option_override_internal): Likewise.
- * config/sparc/sparc.c (sparc_option_override): Likewise.
- * config/visium/visium.c (visium_option_override): Likewise.
- * coverage.c (get_coverage_counts): Likewise.
- (coverage_compute_profile_id): Likewise.
- (coverage_begin_function): Likewise.
- (coverage_end_function): Likewise.
- * cse.c (cse_find_path): Likewise.
- (cse_extended_basic_block): Likewise.
- (cse_main): Likewise.
- * cselib.c (cselib_invalidate_mem): Likewise.
- * dse.c (dse_step1): Likewise.
- * emit-rtl.c (set_new_first_and_last_insn): Likewise.
- (get_max_insn_count): Likewise.
- (make_debug_insn_raw): Likewise.
- (init_emit): Likewise.
- * explow.c (compute_stack_clash_protection_loop_data): Likewise.
- * final.c (compute_alignments): Likewise.
- * fold-const.c (fold_range_test): Likewise.
- (fold_truth_andor): Likewise.
- (tree_single_nonnegative_warnv_p): Likewise.
- (integer_valued_real_single_p): Likewise.
- * gcse.c (want_to_gcse_p): Likewise.
- (prune_insertions_deletions): Likewise.
- (hoist_code): Likewise.
- (gcse_or_cprop_is_too_expensive): Likewise.
- * ggc-common.c: Likewise.
- * ggc-page.c (ggc_collect): Likewise.
- * gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise.
- (MAX_DATAREFS): Likewise.
- (OUTER_STRIDE_RATIO): Likewise.
- * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
- * gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise.
- * gimple-ssa-split-paths.c (is_feasible_trace): Likewise.
- * gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise.
- (imm_store_chain_info::coalesce_immediate_stores): Likewise.
- (imm_store_chain_info::output_merged_store): Likewise.
- (pass_store_merging::process_store): Likewise.
- * gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise.
- * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise.
- (scop_to_isl_ast): Likewise.
- * graphite-optimize-isl.c (get_schedule_for_node_st): Likewise.
- (optimize_isl): Likewise.
- * graphite-scop-detection.c (build_scops): Likewise.
- * haifa-sched.c (set_modulo_params): Likewise.
- (rank_for_schedule): Likewise.
- (model_add_to_worklist): Likewise.
- (model_promote_insn): Likewise.
- (model_choose_insn): Likewise.
- (queue_to_ready): Likewise.
- (autopref_multipass_dfa_lookahead_guard): Likewise.
- (schedule_block): Likewise.
- (sched_init): Likewise.
- * hsa-gen.c (init_prologue): Likewise.
- * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise.
- (cond_move_process_if_block): Likewise.
- * ipa-cp.c (ipcp_lattice::add_value): Likewise.
- (merge_agg_lats_step): Likewise.
- (devirtualization_time_bonus): Likewise.
- (hint_time_bonus): Likewise.
- (incorporate_penalties): Likewise.
- (good_cloning_opportunity_p): Likewise.
- (ipcp_propagate_stage): Likewise.
- * ipa-fnsummary.c (decompose_param_expr): Likewise.
- (set_switch_stmt_execution_predicate): Likewise.
- (analyze_function_body): Likewise.
- (compute_fn_summary): Likewise.
- * ipa-inline-analysis.c (estimate_growth): Likewise.
- * ipa-inline.c (caller_growth_limits): Likewise.
- (inline_insns_single): Likewise.
- (inline_insns_auto): Likewise.
- (can_inline_edge_by_limits_p): Likewise.
- (want_early_inline_function_p): Likewise.
- (big_speedup_p): Likewise.
- (want_inline_small_function_p): Likewise.
- (want_inline_self_recursive_call_p): Likewise.
- (edge_badness): Likewise.
- (recursive_inlining): Likewise.
- (compute_max_insns): Likewise.
- (early_inliner): Likewise.
- * ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise.
- * ipa-profile.c (ipa_profile): Likewise.
- * ipa-prop.c (determine_known_aggregate_parts): Likewise.
- (ipa_analyze_node): Likewise.
- (ipcp_transform_function): Likewise.
- * ipa-split.c (consider_split): Likewise.
- * ipa-sra.c (allocate_access): Likewise.
- (process_scan_results): Likewise.
- (ipa_sra_summarize_function): Likewise.
- (pull_accesses_from_callee): Likewise.
- * ira-build.c (loop_compare_func): Likewise.
- (mark_loops_for_removal): Likewise.
- * ira-conflicts.c (build_conflict_bit_table): Likewise.
- * loop-doloop.c (doloop_optimize): Likewise.
- * loop-invariant.c (gain_for_invariant): Likewise.
- (move_loop_invariants): Likewise.
- * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
- (decide_unroll_runtime_iterations): Likewise.
- (decide_unroll_stupid): Likewise.
- (expand_var_during_unrolling): Likewise.
- * lra-assigns.c (spill_for): Likewise.
- * lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise.
- * modulo-sched.c (sms_schedule): Likewise.
- (DFA_HISTORY): Likewise.
- * opts.c (default_options_optimization): Likewise.
- (finish_options): Likewise.
- (common_handle_option): Likewise.
- * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
- (if): Likewise.
- * predict.c (get_hot_bb_threshold): Likewise.
- (maybe_hot_count_p): Likewise.
- (probably_never_executed): Likewise.
- (predictable_edge_p): Likewise.
- (predict_loops): Likewise.
- (expr_expected_value_1): Likewise.
- (tree_predict_by_opcode): Likewise.
- (handle_missing_profiles): Likewise.
- * reload.c (find_equiv_reg): Likewise.
- * reorg.c (redundant_insn): Likewise.
- * resource.c (mark_target_live_regs): Likewise.
- (incr_ticks_for_insn): Likewise.
- * sanopt.c (pass_sanopt::execute): Likewise.
- * sched-deps.c (sched_analyze_1): Likewise.
- (sched_analyze_2): Likewise.
- (sched_analyze_insn): Likewise.
- (deps_analyze_insn): Likewise.
- * sched-ebb.c (schedule_ebbs): Likewise.
- * sched-rgn.c (find_single_block_region): Likewise.
- (too_large): Likewise.
- (haifa_find_rgns): Likewise.
- (extend_rgns): Likewise.
- (new_ready): Likewise.
- (schedule_region): Likewise.
- (sched_rgn_init): Likewise.
- * sel-sched-ir.c (make_region_from_loop): Likewise.
- * sel-sched-ir.h (MAX_WS): Likewise.
- * sel-sched.c (process_pipelined_exprs): Likewise.
- (sel_setup_region_sched_flags): Likewise.
- * shrink-wrap.c (try_shrink_wrapping): Likewise.
- * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise.
- * toplev.c (print_version): Likewise.
- (process_options): Likewise.
- * tracer.c (tail_duplicate): Likewise.
- * trans-mem.c (tm_log_add): Likewise.
- * tree-chrec.c (chrec_fold_plus_1): Likewise.
- * tree-data-ref.c (split_constant_offset): Likewise.
- (compute_all_dependences): Likewise.
- * tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise.
- * tree-inline.c (remap_gimple_stmt): Likewise.
- * tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise.
- * tree-parloops.c (MIN_PER_THREAD): Likewise.
- (create_parallel_loop): Likewise.
- * tree-predcom.c (determine_unroll_factor): Likewise.
- * tree-scalar-evolution.c (instantiate_scev_r): Likewise.
- * tree-sra.c (analyze_all_variable_accesses): Likewise.
- * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
- * tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise.
- (dse_optimize_redundant_stores): Likewise.
- (dse_classify_store): Likewise.
- * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
- * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
- * tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise.
- * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
- (try_peel_loop): Likewise.
- (tree_unroll_loops_completely): Likewise.
- * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
- (CONSIDER_ALL_CANDIDATES_BOUND): Likewise.
- (MAX_CONSIDERED_GROUPS): Likewise.
- (ALWAYS_PRUNE_CAND_SET_BOUND): Likewise.
- * tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise.
- * tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise.
- * tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise.
- (L1_CACHE_SIZE_BYTES): Likewise.
- (L2_CACHE_SIZE_BYTES): Likewise.
- (should_issue_prefetch_p): Likewise.
- (schedule_prefetches): Likewise.
- (determine_unroll_factor): Likewise.
- (volume_of_references): Likewise.
- (add_subscript_strides): Likewise.
- (self_reuse_distance): Likewise.
- (mem_ref_count_reasonable_p): Likewise.
- (insn_to_prefetch_ratio_too_small_p): Likewise.
- (loop_prefetch_arrays): Likewise.
- (tree_ssa_prefetch_arrays): Likewise.
- * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
- * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
- (convert_mult_to_fma): Likewise.
- (math_opts_dom_walker::after_dom_children): Likewise.
- * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
- (hoist_adjacent_loads): Likewise.
- (gate_hoist_loads): Likewise.
- * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
- (compute_partial_antic_aux): Likewise.
- * tree-ssa-reassoc.c (get_reassociation_width): Likewise.
- * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise.
- (vn_reference_lookup): Likewise.
- (do_rpo_vn): Likewise.
- * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
- * tree-ssa-sink.c (select_best_block): Likewise.
- * tree-ssa-strlen.c (new_stridx): Likewise.
- (new_addr_stridx): Likewise.
- (get_range_strlen_dynamic): Likewise.
- (class ssa_name_limit_t): Likewise.
- * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
- (create_variable_info_for_1): Likewise.
- (init_alias_vars): Likewise.
- * tree-ssa-tail-merge.c (find_clusters_1): Likewise.
- (tail_merge_optimize): Likewise.
- * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise.
- (thread_jumps::fsm_find_control_statement_thread_paths): Likewise.
- (thread_jumps::find_jump_threads_backwards): Likewise.
- * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise.
- * tree-ssa-uninit.c (compute_control_dep_chain): Likewise.
- * tree-switch-conversion.c (switch_conversion::check_range): Likewise.
- (jump_table_cluster::can_be_handled): Likewise.
- * tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise.
- (SWITCH_CONVERSION_BRANCH_RATIO): Likewise.
- (param_switch_conversion_branch_ratio): Likewise.
- * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise.
- (vect_enhance_data_refs_alignment): Likewise.
- (vect_prune_runtime_alias_test_list): Likewise.
- * tree-vect-loop.c (vect_analyze_loop_costing): Likewise.
- (vect_get_datarefs_in_loop): Likewise.
- (vect_analyze_loop): Likewise.
- * tree-vect-slp.c (vect_slp_bb): Likewise.
- * tree-vectorizer.h: Likewise.
- * tree-vrp.c (find_switch_asserts): Likewise.
- (vrp_prop::check_mem_ref): Likewise.
- * tree.c (wide_int_to_tree_1): Likewise.
- (cache_integer_cst): Likewise.
- * var-tracking.c (EXPR_USE_DEPTH): Likewise.
- (reverse_op): Likewise.
- (vt_find_locations): Likewise.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * Makefile.in: Include params.opt.
- * flag-types.h (enum parloops_schedule_type): Add
- parloops_schedule_type used in params.opt.
- * params.opt: New file.
-
-2019-11-12 Martin Liska <mliska@suse.cz>
-
- * common.opt: Remove --param and --param= options.
- * opt-functions.awk: Mark CL_PARAMS for options
- that have Param keyword.
- * opts-common.c (decode_cmdline_options_to_array):
- Replace --param key=value with --param=key=value.
- * opts.c (print_filtered_help): Remove special
- printing of params.
- (print_specific_help): Update title for params.
- (common_handle_option): Do not handle OPT__param.
- opts.h (SET_OPTION_IF_UNSET): New macro.
- * doc/options.texi: Document Param keyword.
-
-2019-11-12 Maciej W. Rozycki <macro@codesourcery.com>
- Frederik Harwath <frederik@codesourcery.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL
- enumeration constant.
- (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
- (is_gimple_omp_offloaded): Likewise.
- * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration
- constant. Adjust the value of ORT_NONE accordingly.
- (is_gimple_stmt): Handle OACC_SERIAL.
- (oacc_default_clause): Handle ORT_ACC_SERIAL.
- (gomp_needs_data_present): Likewise.
- (gimplify_adjust_omp_clauses): Likewise.
- (gimplify_omp_workshare): Handle OACC_SERIAL.
- (gimplify_expr): Likewise.
- * omp-expand.c (expand_omp_target):
- Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
- (build_omp_regions_1, omp_make_gimple_edges): Likewise.
- * omp-low.c (is_oacc_parallel): Rename function to...
- (is_oacc_parallel_or_serial): ... this.
- Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
- (scan_sharing_clauses): Adjust accordingly.
- (scan_omp_for): Likewise.
- (lower_oacc_head_mark): Likewise.
- (convert_from_firstprivate_int): Likewise.
- (lower_omp_target): Likewise.
- (check_omp_nesting_restrictions): Handle
- GF_OMP_TARGET_KIND_OACC_SERIAL.
- (lower_oacc_reductions): Likewise.
- (lower_omp_target): Likewise.
- * tree.def (OACC_SERIAL): New tree code.
- * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL.
-
- * doc/generic.texi (OpenACC): Document OACC_SERIAL.
-
-2019-11-12 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92449
- * tree-complex.c (expand_complex_multiplication): If !HONOR_NANS,
- don't emit UNORDERED_EXPR guarded libcall. Formatting fixes.
-
- PR tree-optimization/92452
- * tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds
- into NULL_TREE, set up_bound to NULL_TREE instead of computing
- MINUS_EXPR on it.
-
-2019-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues
- safelen with 0.
-
-2019-11-12 Alan Modra <amodra@gmail.com>
-
- * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got
- element of unspec vec.
- * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support
- PC-relative TLS.
- * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec.
- (tls_gd_pcrel, tls_ld_pcrel): New insns.
- (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16.
- (tls_got_tprel_pcrel, tls_tls_pcrel): New insns.
-
-2019-11-12 Alan Modra <amodra@gmail.com>
-
- * config/rs6000/rs6000.opt (mtls-markers): Delete.
- * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define.
- (IS_NOMARK_TLSGETADDR): Likewise.
- * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete.
- * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete.
- (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code.
- (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and
- allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD.
- (rs6000_indirect_call_template_1): Likewise.
- (rs6000_pltseq_template): Likewise.
- (rs6000_opt_vars): Remove "tls-markers" entry.
- * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS
- with TARGET_ELF.
- (tls_gd_high<bits>, tls_gd_low<bits>): Likewise.
- (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise.
- (pltseq_plt_pcrel<mode>): Likewise.
- (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test.
- (call_value_local64): Likewise.
- (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR
- output and length attribute sub-expression.
- (call_value_nonlocal_sysv<mode>),
- (call_value_nonlocal_sysv_secure<mode>),
- (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>),
- (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>),
- (call_value_indirect_pcrel<mode>): Likewise.
- * doc/install.texi (powerpc-*-*): Require binutils-2.20.
- * configure.ac (HAVE_AS_TLS_MARKERS): Delete test.
- * configure: Regenerate.
- * config.in: Regenerate.
-
-2019-11-11 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/predicates.md (prefixed_memory): New predicate.
- * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either
- address being a prefixed load/store.
- (stack_protect_testdi): Deal with either address being a prefixed
- load.
-
-2019-11-11 Jakub Jelinek <jakub@redhat.com>
-
- PR bootstrap/92433
- * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
- ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check. Use
- std::swap.
-
-2019-11-11 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/92420
- * tree-vect-stmts.c (get_negative_load_store_type): Move further
- up file.
- (get_group_load_store_type): Use it for reversed SLP accesses.
-
-2019-11-11 Jan Hubicka <hubcika@ucw.cz>
-
- * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp
- summary.
- (ipcp_transformation_t::duplicate): Break out from ...
- (ipa_node_params_t::duplicate): ... here; add copying of agg
- replacements.
- * ipa-prop.h (ipcp_transformation): Add constructor and destructor.
- (ipcp_transformation_t): Add duplicate.
-
-2019-11-11 Janne Blomqvist <jb@gcc.gnu.org>
-
- PR fortran/91828
- * doc/install.texi: Document that the minimum MPFR version is
- 3.1.0.
-
-2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc.md (movsi_ne): Reorder instruction variants and
- use new register constraint letters.
-
-2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
- as well, if interesting recover the symbol and re-legitimize the
- pic address.
-
-2019-11-11 Martin Liska <mliska@suse.cz>
-
- * dbgcnt.def (DEBUG_COUNTER): Sort counters
- alphabetically.
-
-2019-11-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into
- account when checking if there are enough iterations to vectorize
- epilogue.
-
-2019-11-11 Tobias Burnus <tobias@codesourcery.com>
- Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
- Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define.
- (LANG_HOOKS_DECLS): Rename also here.
- * langhooks.h (lang_hooks_for_decls): Rename
- omp_is_optional_argument to omp_check_optional_argument; take
- additional bool argument.
- * omp-general.h (omp_check_optional_argument): Likewise.
- * omp-general.h (omp_check_optional_argument): Likewise.
- * omp-low.c (lower_omp_target): Update calls; handle absent
- Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR.
-
-2019-11-11 H.J. Lu <hjl.tools@gmail.com>
-
- PR target/87833
- * config/i386/intelmic-mkoffload.c (prepare_target_image): Put
- -fPIC and -shared the last to create offload image.
-
-2019-11-11 Thomas Schwinge <thomas@codesourcery.com>
-
- * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
- of 'offset'.
-
- * Makefile.in (LANG_CONFIGUREFRAGS): Define.
- (config.status): Use/depend on it.
- * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
- * configure: Regenerate.
-
-2019-11-11 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR tree-optimization/88760
- * config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
- * common/config/rs6000/rs6000-common.c
- (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
- Turn on -funroll-loops and -munroll-only-small-loops.
- [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
- * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
- set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
- Turn off -munroll-only-small-loops for explicit -funroll-loops.
- (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
- (rs6000_loop_unroll_adjust): Define it. Use -munroll-only-small-loops.
-
-2019-11-11 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
- Make scalar_load, vector_load, unaligned_load and
- vector_gather_load cost more to conform hardware latency and
- insn cost settings.
-
-2019-11-10 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New.
- (MACHO_SYMBOL_LINKER_VIS_P): New.
-
-2019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * lra-spills.c (assign_spill_hard_regs): Do not spill into
- registers in eliminable_regset.
-
-2019-11-10 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.c (compute_uninlined_call_time,
- compute_inlined_call_time): Take edge frequency as
- parameter rather than computing it by itself.
- (big_speedup_p, edge_badness): Manually CSE sreal
- frequency calculations.
-
-2019-11-10 Jan Hubicka <hubicka@ucw.cz>
-
- * profile-count.c (profile_count::to_sreal_scale): Short circuit
- case where profiles are same.
-
-2019-11-10 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency.
-
-2019-11-10 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge
- args summaries of inlined edge unless it holds info about
- described reference.
-
-2019-11-10 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/rs6000.md (CC_any): New mode iterator.
- (*movcc_internal1): Rename to...
- (*movcc_<mode> for CC_any): ... this. Support moves of all CC modes.
-
-2019-11-09 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraph.h (struct cgraph_node): Add ipcp_clone flag.
- (cgraph_node::create_virtual_clone): Copy it.
- * ipa-cp.c (ipcp_versionable_function_p): Watch for missing
- summaries.
- (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too.
- (ipcp_verify_propagated_values): Do not verify nodes where ipcp
- is disabled.
- (propagate_constants_across_call): If callee is not analyzed, give up.
- (propagate_constants_topo): Lower to bottom latties of all callees of
- functions with ipa-cp disabled.
- (ipcp_propagate_stage): Skip functions with ipa-cp disabled.
- (cgraph_edge_brings_value_p): Check for availability first.
- (create_specialized_node): Set ipcp_clone.
- (ipcp_store_bits_results): Check that info is present.
- * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze
- thunks.
- (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be
- conservative when callee summary is missing.
- (remap_edge_summaries): Lookup call summary only when needed.
- * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary.
- * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params):
- Use get_create.
- (ipa_analyze_node): Use get_create.
- (propagate_controlled_uses): Do not propagate when function is not
- analyzed.
- (ipa_propagate_indirect_call_infos): Remove summary of inline clone.
- (ipa_read_node_info): Use get_create.
- * ipa-prop.h (IPA_NODE_REF): Use get.
- (IPA_NODE_REF_GET_CREATE): New.
-
-2019-11-09 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF
- on function symbol.
-
-2019-11-09 Jan Hubicka <hubicka@ucw.cz>
-
- * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P,
- ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
- (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO
- (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
-
-2019-11-09 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline-analysis.c (do_estimate_growth_1): Add support for
- capping the growth cumulated.
- (offline_size): Break out from ...
- (estimate_growth): ... here.
- (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE
- parameters.
- (growth_likely_positive): Turn to ...
- (growth_positive_p): Re-implement.
- * ipa-inline.h (growth_likely_positive): Remove.
- (growth_positive_p): Declare.
- * ipa-inline.c (want_inline_small_function_p): Use
- growth_positive_p.
- (want_inline_function_to_all_callers_p): Likewise.
-
-2019-11-09 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix
- calculation of min_size.
- (ipa_update_overall_fn_summary): Likewise.
-
-2019-11-09 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call
- estimate_edge_devirt_benefit when not computing hints;
- do not compute time when not asked for.
- (estimate_calls_size_and_time): Pass NULL hints and time when
- these are not computed; do not evaluate hint predicates when these are
- not computed.
- (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge
- frequency.
-
-2019-11-09 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92401
- * gimple-match-head.c (gimple_resimplify1): Call const_unop only
- if res_op->code is an expression with code length 1.
- * gimple-match-head.c (gimple_resimplify2): Call const_binop only
- if res_op->code is an expression with code length 2.
- * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only
- if res_op->code is an expression with code length 3.
-
-2019-11-09 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_mcount_stub_name): Validate the
- symbol stub name when it is created.
- * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol
- stub validation.
-
-2019-11-09 Jakub Jelinek <jakub@redhat.com>
-
- * symtab.c: Fix comment typos.
- * cgraphunit.c: Likewise.
- * cgraph.h: Likewise.
- * cgraphclones.c: Likewise.
- * cgraph.c: Likewise.
- * varpool.c: Likewise.
- * tree-ssa-strlen.c: Likewise.
- * ipa-sra.c: Likewise.
- (scan_expr_access, check_all_callers_for_issues): Fix typo
- in a dump message.
-
-2019-11-08 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin-protos.h: Add include quard.
-
-2019-11-08 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op.h (range_operator::fold_range): Return result in a
- reference parameter instead of by value.
- (range_operator::wi_fold): Same.
- * range-op.cc (range_operator::wi_fold): Return result in a reference
- parameter instead of by value.
- (range_operator::fold_range): Same.
- (value_range_from_overflowed_bounds): Same.
- (value_range_with_overflow): Same
- (create_possibly_reversed_range): Same.
- (operator_equal::fold_range): Same.
- (operator_not_equal::fold_range): Same.
- (operator_lt::fold_range): Same.
- (operator_le::fold_range): Same.
- (operator_gt::fold_range): Same.
- (operator_ge::fold_range): Same.
- (operator_plus::wi_fold): Same.
- (operator_plus::op1_range): Change call to fold_range.
- (operator_plus::op2_range): Change call to fold_range.
- (operator_minus::wi_fold): Return result via reference parameter.
- (operator_minus::op1_range): Change call to fold_range.
- (operator_minus::op2_range): Change call to fold_range.
- (operator_min::wi_fold): Return result via reference parameter.
- (operator_max::wi_fold): Same.
- (cross_product_operator::wi_cross_product): Same.
- (operator_mult::wi_fold): Same.
- (operator_div::wi_fold): Same.
- (operator_div op_floor_div): Fix whitespace.
- (operator_exact_divide::op1_range): Change call to fold_range.
- (operator_lshift::fold_range): Return result via reference parameter.
- (operator_lshift::wi_fold): Same.
- (operator_rshift::fold_range): Same.
- (operator_rshift::wi_fold): Same.
- (operator_cast::fold_range): Same.
- (operator_cast::op1_range): Change calls to fold_range.
- (operator_logical_and::fold_range): Return result via reference.
- (wi_optimize_and_or): Adjust call to value_range_with_overflow.
- (operator_bitwise_and::wi_fold): Return result via reference.
- (operator_logical_or::fold_range): Same.
- (operator_bitwise_or::wi_fold): Same.
- (operator_bitwise_xor::wi_fold): Same.
- (operator_trunc_mod::wi_fold): Same.
- (operator_logical_not::fold_range): Same.
- (operator_bitwise_not::fold_range): Same.
- (operator_bitwise_not::op1_range): Change call to fold_range.
- (operator_cst::fold_range): Return result via reference.
- (operator_identity::fold_range): Same.
- (operator_abs::wi_fold): Same.
- (operator_absu::wi_fold): Same.
- (operator_negate::fold_range): Same.
- (operator_negate::op1_range): Change call to fold_range.
- (operator_addr_expr::fold_range): Return result via reference.
- (operator_addr_expr::op1_range): Change call to fold_range.
- (operator_pointer_plus::wi_fold): Return result via reference.
- (operator_pointer_min_max::wi_fold): Same.
- (operator_pointer_and::wi_fold): Same.
- (operator_pointer_or::wi_fold): Same.
- (range_op_handler): Change call to fold_range.
- (range_cast): Same.
- * tree-vrp.c (range_fold_binary_symbolics_p): Change call to
- fold_range.
- (range_fold_unary_symbolics_p): Same.
- (range_fold_binary_expr): Same.
- (range_fold_unary_expr): Same.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the
- vector type as an argument rather than reading it from the
- stmt_vec_info.
- (vect_create_epilog_for_reduction): Update accordingly.
- (vectorizable_reduction): Likewise.
- (vect_transform_cycle_phi): Likewise.
-
-2019-11-08 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/predicates.md (branch_comparison_operator): Allow only
- the comparison codes that make sense for the mode used, and only the
- codes that can be done with a single branch instruction.
-
-2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR tree-optimization/92351
- * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are
- peeling the main loop for alignment, make sure to set the misalignment
- of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN.
-
-2019-11-08 Richard Biener <rguenther@suse.de>
-
- * dbgcnt.def (ivopts_loop): Add.
- * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check
- ivopts_loop before optimizing a loop.
-
-2019-11-08 Richard Biener <rguenther@suse.de>
-
- PR ipa/92409
- * tree-inline.c (declare_return_variable): Properly handle
- type mismatches for the return slot.
-
-2019-11-08 Eric Botcazou <ebotcazou@adacore.com>
-
- PR target/92095
- * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
- * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
- change.
- (got_helper_needed): New static variable.
- (output_load_pcrel_sym): New function.
- (get_pc_thunk_name): Remove after inlining...
- (load_got_register): ...here. Rework the initialization of the GOT
- register and of the GOT helper.
- (save_local_or_in_reg_p): Test the REGNO of the GOT register.
- (sparc_file_end): Test got_helper_needed to decide whether the GOT
- helper must be emitted. Use output_asm_insn instead of fprintf.
- (sparc_init_pic_reg): In PIC mode, always initialize the PIC register
- if optimization is enabled.
- * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
- by calling output_load_pcrel_sym.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-sra.c (create_access): Delay disqualifying the base
- for poly_int values until we know we have a base.
-
-2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization
- for loops with SIMDUID set. Enable epilogue vectorization for loops
- with SIMDLEN set after finding a main loop with a VF that matches it.
-
-2019-11-08 Jakub Jelinek <jakub@redhat.com>
-
- PR target/92038
- * gimple-ssa-store-merging.c (find_constituent_stores): For return
- value only, return non-NULL if there is a single non-clobber
- constituent store even if there are constituent clobbers and return
- one of clobber constituent stores if all constituent stores are
- clobbers.
- (split_group): Handle clobbers.
- (imm_store_chain_info::output_merged_store): When computing
- bzero_first, look after all clobbers at the start. Don't count
- clobber stmts in orig_num_stmts, except if the first orig store is
- a clobber covering the whole area and split_stores cover the whole
- area, consider equal number of stmts ok. Punt if split_stores
- contains only ->orig stores and their number plus number of original
- clobbers is equal to original number of stmts. For ->orig, look past
- clobbers in the constituent stores.
- (imm_store_chain_info::output_merged_stores): Don't remove clobber
- stmts.
- (rhs_valid_for_store_merging_p): Don't return false for clobber stmt
- rhs.
- (store_valid_for_store_merging_p): Allow clobber stmts.
- (verify_clear_bit_region_be): Fix up a thinko in function comment.
-
- PR c++/92384
- * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
- copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
- slot.
- (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
- force creation of a unique data.stack_parm slot.
-
-2019-11-08 Richard Biener <rguenther@suse.de>
-
- * genmatch.c (expr::gen_transform): Use the resimplify
- member function instead of hard-coding the gimple_resimplifyN variant.
- (dt_simplify::gen_1): Likewise.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
- POLY_INT_CST.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-inline.c (declare_return_variable): Check for poly_int_tree_p
- instead of INTEGER_CST.
-
-2019-11-08 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92324
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
- STMT_VINFO_REDUC_VECTYPE for all computations, inserting
- sign-conversions as necessary.
- (vectorizable_reduction): Reject conversions in the chain
- that are not sign-conversions, base analysis on a non-converting
- stmt and its operation sign. Set STMT_VINFO_REDUC_VECTYPE.
- * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything
- for debug stmts.
- * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New.
- (STMT_VINFO_REDUC_VECTYPE): Likewise.
-
-2019-11-08 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/92055
- * config/avr/avr.opt (-mdouble=, -mlong-double=):
- Fix a missing '-' when displaying these options in the
- help screen.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-builtins.c
- (aarch64_builtin_vectorized_function): Remove bswap handling.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-core.h (tree_type_common::indivisible_p): New member variable.
- * tree.h (TYPE_INDIVISIBLE_P): New macro.
- * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
- Treat the vector types as indivisible.
-
-2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
-
- * optabs.def (gather_load_optab, mask_gather_load_optab)
- (scatter_store_optab, mask_scatter_store_optab): Turn into
- conversion optabs, with the offset mode given explicitly.
- * doc/md.texi: Update accordingly.
- * config/aarch64/aarch64-sve-builtins-base.cc
- (svld1_gather_impl::expand): Likewise.
- (svst1_scatter_impl::expand): Likewise.
- * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise.
- (expand_scatter_store_optab_fn): Likewise.
- (direct_gather_load_optab_supported_p): Likewise.
- (direct_scatter_store_optab_supported_p): Likewise.
- (expand_gather_load_optab_fn): Likewise. Expect the mask argument
- to be argument 4.
- (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD.
- (internal_gather_scatter_fn_supported_p): Replace the offset sign
- argument with the offset vector type. Require the two vector
- types to have the same number of elements but allow their element
- sizes to be different. Treat the optabs as conversion optabs.
- * internal-fn.h (internal_gather_scatter_fn_supported_p): Update
- prototype accordingly.
- * optabs-query.c (supports_at_least_one_mode_p): Replace with...
- (supports_vec_convert_optab_p): ...this new function.
- (supports_vec_gather_load_p): Update accordingly.
- (supports_vec_scatter_store_p): Likewise.
- * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info.
- Replace the offset sign and bits parameters with a scalar type tree.
- * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
- Pass back the offset vector type instead of the scalar element type.
- Allow the offset to be wider than the memory elements. Search for
- an offset type that the target supports, stopping once we've
- reached the maximum of the element size and pointer size.
- Update call to internal_gather_scatter_fn_supported_p.
- (vect_check_gather_scatter): Update calls accordingly.
- When testing a new scale before knowing the final offset type,
- check whether the scale is supported for any signed or unsigned
- offset type. Check whether the target supports the source and
- target types of a conversion before deciding whether to look
- through the conversion. Record the chosen offset_vectype.
- * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete.
- (vect_recog_gather_scatter_pattern): Get the scalar offset type
- directly from the gs_info's offset_vectype instead. Pass a zero
- of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD.
- * tree-vect-stmts.c (check_load_store_masking): Update call to
- internal_gather_scatter_fn_supported_p, passing the offset vector
- type recorded in the gs_info.
- (vect_truncate_gather_scatter_offset): Update call to
- vect_check_gather_scatter, leaving it to search for a valid
- offset vector type.
- (vect_use_strided_gather_scatters_p): Convert the offset to the
- element type of the gs_info's offset_vectype.
- (vect_get_gather_scatter_ops): Get the offset vector type directly
- from the gs_info.
- (vect_get_strided_load_store_ops): Likewise.
- (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD
- and IFN_MASK_GATHER_LOAD.
- * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to...
- (gather_load<mode><v_int_equiv>): ...this.
- (mask_gather_load<mode>): Rename to...
- (mask_gather_load<mode><v_int_equiv>): ...this.
- (scatter_store<mode>): Rename to...
- (scatter_store<mode><v_int_equiv>): ...this.
- (mask_scatter_store<mode>): Rename to...
- (mask_scatter_store<mode><v_int_equiv>): ...this.
-
-2019-11-08 Kewen Lin <linkw@gcc.gnu.org>
-
- PR target/92132
- * config/rs6000/predicates.md
- (signed_or_equality_comparison_operator): New predicate.
- (unsigned_or_equality_comparison_operator): Likewise.
- * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
- (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
- * config/rs6000/vector.md
- (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
- (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
- (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
- (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float
- vector modes and same-size integer vector modes.
- (vec_cmp<mode><VEC_int> for VEC_F): Likewise.
- (vector_lt<mode> for VEC_F): New expand.
- (vector_le<mode> for VEC_F): Likewise.
- (vector_ne<mode> for VEC_F): Likewise.
- (vector_unge<mode> for VEC_F): Likewise.
- (vector_ungt<mode> for VEC_F): Likewise.
- (vector_unle<mode> for VEC_F): Likewise.
- (vector_unlt<mode> for VEC_F): Likewise.
- (vector_uneq<mode>): Expose name.
- (vector_ltgt<mode>): Likewise.
- (vector_unordered<mode>): Likewise.
- (vector_ordered<mode>): Likewise.
-
-2019-11-08 Hongtao Liu <Hongtao.liu@intel.com>
-
- PR target/92295
- * config/i386/i386-expand.c (ix86_expand_vector_init_concat)
- Enhance ix86_expand_vector_init_concat.
-
-2019-11-08 Joseph Myers <joseph@codesourcery.com>
-
- * doc/invoke.texi (-Wold-style-definition): Document () not being
- considered an old-style definition for C2x.
-
-2019-11-07 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
- Enhance comment.
- (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
- insn patterns using ldcw instruction.
- (memory_barrier): Remove insn pattern using sync instruction.
- * config/pa/pa.opt (coherent-ldcw): New option.
- (ordered): New option.
-
-2019-11-07 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for
- valid conditions.
-
-2019-11-07 Jakub Jelinek <jakub@redhat.com>
-
- * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string
- typo - mistmatch -> mismatch.
- * ipa-profile.c (ipa_profile): Likewise.
- * ipa-devirt.c (compare_virtual_tables): Fix a comment typo
- - mistmatch -> mismatch.
-
-2018-11-07 Segher Boessenkool <segher@kernel.crashing.org>
-
- * simplify-rtx.c (comparison_to_mask): New function.
- (mask_to_comparison): New function.
- (simplify_logical_relational_operation): New function.
- (simplify_binary_operation_1): Call
- simplify_logical_relational_operation.
-
-2019-11-07 Peter Bergner <bergner@linux.ibm.com>
-
- PR other/92090
- * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
- modes for integer constants.
-
-2019-11-07 Jan Hubicka <jh@suse.cz>
-
- PR ipa/92406
- * ipa-fnsummary.c (analyze_function_body): Use get_create to copy
- summary.
-
-2019-11-07 Jan Hubicka <jh@suse.cz>
-
- * optc-save-gen.awk: Generate cl_target_option_free
- and cl_optimization_option_free.
- * opth-en.awk: Declare cl_target_option_free
- and cl_optimization_option_free.
- * tree.c (free_node): Use it.
-
-2019-11-06 Jan Hubicka <jh@suse.cz>
-
- * lto-streamer-in.c: Include alloc-pool.h.
- (freeing_string_slot_hasher): Remove.
- (string_slot_allocator): New object allocator.
- (file_name_hash_table): Turn to hash_table<string_slot_hasher>.
- (file_name_obstack): New obstack.
- (canon_file_name): Allocate in obstack and allocator.
- (lto_reader_init): Initialize obstack and allocator.
- (lto_free_file_name_hash): New function.
- * lto-streamer.h (lto_free_file_name_hash): New.
-
-2019-11-07 Feng Xue <fxue@os.amperecomputing.com>
-
- PR tree-optimization/89134
- * doc/invoke.texi (min-loop-cond-split-prob): Document new --params.
- * params.def: Add min-loop-cond-split-prob.
- * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some
- outside checks on loop into the function.
- (split_info): New class.
- (find_vdef_in_loop, get_control_equiv_head_block): New functions.
- (find_control_dep_blocks, vuse_semi_invariant_p): Likewise.
- (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise.
- (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise.
- (stmt_semi_invariant_p, branch_removable_p): Likewise.
- (get_cond_invariant_branch, compute_added_num_insns): Likewise.
- (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise.
- (split_loop_on_cond): Likewise.
- (tree_ssa_split_loops): Add loop split on conditional statement.
-
-2019-11-07 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split
- pattern.
-
-2019-11-07 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92405
- * tree-vect-loop.c (vectorizable_reduction): Appropriately
- restrict lane-reducing ops to single stmt chains.
-
-2019-11-07 Martin Jambor <mjambor@suse.cz>
-
- PR lto/70929
- * cif-code.def (MISMATCHED_ARGUMENTS): Removed.
- * cgraph.h (gimple_check_call_matching_types): Remove
- * cgraph.c (gimple_check_call_args): Likewise.
- (gimple_check_call_matching_types): Likewise.
- (symbol_table::create_edge): Do not call
- gimple_check_call_matching_types.
- (cgraph_edge::make_direct): Likewise.
- (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
- * value-prof.h (check_ic_target): Remove.
- * value-prof.c (check_ic_target): Remove.
- (gimple_ic_transform): Do nat call check_ic_target.
- * auto-profile.c (function_instance::find_icall_target_map): Likewise.
- (afdo_indirect_call): Likewise.
- * ipa-prop.c (update_indirect_edges_after_inlining): Do not call
- gimple_check_call_matching_types.
- * ipa-inline.c (early_inliner): Likewise.
-
-2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/arm/arm.md (arm_<simd32_op>): New define_expand.
- (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn.
- * config/arm/arm_acle.h (__ssat16, __usat16): Define.
- * config/arm/arm_acle_builtins.def: Define builtins for the above.
- * config/arm/iterators.md (USSAT16): New int_iterator.
- (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16.
- (sup): Likewise.
- * config/arm/predicates.md (ssat16_imm): New predicate.
- (usat16_imm): Likewise.
- * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define.
-
-2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn):
- New define_insns.
- (arm_<simd32_op>): New define_expands.
- * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx,
- __smuad, __smuadx): Define.
- * config/arm/arm_acle_builtins.def: Define builtins for the above.
- * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator.
- (SIMD32_BINOP_Q): Likewise.
- (simd32_op): Handle the above.
- * config/arm/unspecs.md: Define unspecs for the above.
-
-2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/arm/aout.h (REGISTER_NAMES): Add apsrge.
- * config/arm/arm.md (APSRGE_REGNUM): Define.
- (arm_<simd32_op>): New define_insn.
- (arm_sel): Likewise.
- * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge.
- (CALL_USED_REGISTERS): Likewise.
- (REG_ALLOC_ORDER): Likewise.
- (FIRST_PSEUDO_REGISTER): Update value.
- (ARM_GE_BITS_READ): Define.
- * config/arm/arm.c (arm_conditional_register_usage): Clear
- APSRGE_REGNUM from operand_reg_set.
- (arm_ge_bits_access): Define.
- * config/arm/arm-builtins.c (arm_check_builtin_call): Handle
- ARM_BUIILTIN_sel.
- * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype.
- * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand.
- FAIL if ARM_GE_BITS_READ.
- (*arm_add<mode>3): New define_insn.
- (sub<mode>3): Convert to define_expand. FAIL if ARM_GE_BITS_READ.
- (*arm_sub<mode>3): New define_insn.
- * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8,
- __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax,
- __usub16): Define.
- * config/arm/arm_acle_builtins.def: Define builtins for the above.
- * config/arm/iterators.md (SIMD32_GE): New int_iterator.
- (simd32_op): Handle the above.
- * config/arm/unspecs.md (UNSPEC_GE_SET): Define.
- (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8,
- UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16,
- UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define.
-
-2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/arm/arm.md (arm_smlabb_setq): New define_insn.
- (arm_smlabb): New define_expand.
- (*maddhisi4tb): Rename to...
- (maddhisi4tb): ... This.
- (*maddhisi4tt): Rename to...
- (maddhisi4tt): ... This.
- (arm_smlatb_setq): New define_insn.
- (arm_smlatb): New define_expand.
- (arm_smlatt_setq): New define_insn.
- (arm_smlatt): New define_expand.
- (arm_<smlaw_op><add_clobber_name>_insn): New define_insn.
- (arm_<smlaw_op>): New define_expand.
- * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt,
- __smlawb, __smlawt): Define.
- * config/arm_acle_builtins.def: Define builtins for the above.
- * config/arm/iterators.md (SMLAWBT): New int_iterator.
- (slaw_op): New int_attribute.
- * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define.
-
-2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/arm/arm.md (arm_<ss_op>): New define_expand.
- (arm_<ss_op><add_clobber_q_name>_insn): New define_insn.
- * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define.
- * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub.
- * config/arm/iterators.md (SSPLUSMINUS): New code iterator.
- (ss_op): New code_attr.
-
-2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/arm/aout.h (REGISTER_NAMES): Add apsrq.
- * config/arm/arm.md (APSRQ_REGNUM): Define.
- (add_setq): New define_subst.
- (add_clobber_q_name): New define_subst_attr.
- (add_clobber_q_pred): Likewise.
- (maddhisi4): Change to define_expand. Split into mult and add if
- ARM_Q_BIT_READ.
- (arm_maddhisi4): New define_insn.
- (*maddhisi4tb): Disable for ARM_Q_BIT_READ.
- (*maddhisi4tt): Likewise.
- (arm_ssat): New define_expand.
- (arm_usat): Likewise.
- (arm_get_apsr): New define_insn.
- (arm_set_apsr): Likewise.
- (arm_saturation_occurred): New define_expand.
- (arm_set_saturation): Likewise.
- (*satsi_<SAT:code>): Rename to...
- (satsi_<SAT:code><add_clobber_q_name>): ... This.
- (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ.
- * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed.
- (CALL_USED_REGISTERS): Mark apsrq.
- (FIRST_PSEUDO_REGISTER): Update value.
- (REG_ALLOC_ORDER): Add APSRQ_REGNUM.
- (machine_function): Add q_bit_access.
- (ARM_Q_BIT_READ): Define.
- * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define.
- (arm_conditional_register_usage): Clear APSRQ_REGNUM from
- operand_reg_set.
- (arm_q_bit_access): Define.
- * config/arm/arm-builtins.c: Include stringpool.h.
- (arm_sat_binop_imm_qualifiers,
- arm_unsigned_sat_binop_unsigned_imm_qualifiers,
- arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define.
- (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS,
- UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS,
- SET_SAT_QUALIFIERS): Likewise.
- (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK.
- (arm_init_acle_builtins): Initialize __builtin_sat_imm_check.
- Handle 0 argument expander.
- (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK.
- (arm_check_builtin_call): Define.
- * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3,
- arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ.
- * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype.
- (arm_q_bit_access): Likewise.
- * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation,
- __saturation_occurred, __set_saturation_occurred): Define.
- * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat,
- saturation_occurred, set_saturation_occurred.
- * config/arm/unspecs.md (UNSPEC_Q_SET): Define.
- (UNSPEC_APSR_READ): Likewise.
- (VUNSPEC_APSR_WRITE): Likewise.
- * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand.
- (*arm_ssadd<mode>3): New define_insn.
- (sssub<mode>3): Convert to define_expand.
- (*arm_sssub<mode>3): New define_insn.
- (ssmulsa3): Convert to define_expand.
- (*arm_ssmulsa3): New define_insn.
- (usmulusa3): Convert to define_expand.
- (*arm_usmulusa3): New define_insn.
- (ssmulha3): FAIL if ARM_Q_BIT_READ.
- (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ.
- * config/arm/iterators.md (qaddsub_clob_q): New mode attribute.
-
-2019-11-07 Martin Liska <mliska@suse.cz>
-
- PR c++/92354
- * cgraph.c (delete_function_version): Clear global
- variable version_info_node if equal to deleted
- function.
-
-2019-11-07 Martin Liska <mliska@suse.cz>
-
- * fold-const.c (operand_compare::operand_equal_p): Add comparison
- of CONSTRUCTOR_NO_CLEARING.
- (operand_compare::hash_operand): Likewise.
-
-2019-11-07 Georg-Johann Lay <avr@gjlay.de>
-
- Support 64-bit double and 64-bit long double configurations.
-
- PR target/92055
- * config.gcc (tm_defines) [avr]: Set from --with-double=,
- --with-long-double=.
- * config/avr/t-multilib: Remove.
- * config/avr/t-avr: Output of genmultilib.awk is now fully
- dynamically generated and no more part of the repo.
- (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables.
- Pass them down to...
- * config/avr/genmultilib.awk: ...here and handle them.
- * config/avr/avr.opt (-mdouble=, avr_double). New option and var.
- (-mlong-double=, avr_long_double). New option and var.
- * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include.
- (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>:
- Set default as requested by --with-double=
- (TARGET_HANDLE_OPTION): Define to this...
- (avr_handle_option): ...new hook worker.
- * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double.
- (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double.
- (avr_double_lib): New proto for spec function.
- (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add.
- (DRIVER_SELF_SPECS): Call %:double-lib.
- * config/avr/avr.c (avr_option_override): Assert
- sizeof(long double) >= sizeof(double) for the target.
- * config/avr/avr-c.c (avr_cpu_cpp_builtins)
- [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__]
- [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=]
- [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__]
- [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]:
- New built-in define depending on --with-double=, --with-long-double=.
- * config/avr/driver-avr.c (avr_double_lib): New spec function.
- * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc.
- * doc/install.texi (Cross-Compiler-Specific Options)
- <--with-double=, --with-long-double=>: Doc.
-
-2019-11-07 Richard Biener <rguenther@suse.de>
-
- * dbgcnt.def (gimple_unroll): New.
- * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check
- gimple_unroll debug counter before applying transform.
- (try_peel_loop): Likewise.
-
-2019-11-07 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for
- frame pointer in multiple registers.
- (ira_setup_eliminable_regset): Setup eliminable_regset,
- ira_no_alloc_regs and regs_ever_live for frame pointer in
- multiple registers.
-
-2019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
-
- * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and
- V2DI modes.
-
-2019-11-06 Jan Hubicka <jh@suse.cz>
-
- * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
- allocations.
- * mem-stats.h (mem_alloc_description<T>::release_object_overhead):
- Do not silently ignore summary corruptions.
-
-2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
- the epilogue if there are peeled iterations for it to handle.
-
-2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
-
- * config/arc/arc.c (arc_split_ior): Add asserts.
- (arc_split_mov_const): Likewise.
- (arc_check_ior_const): Do not match known short immediate values.
- * config/arc/arc.md (movsi): Don't split predicated instructions
- (iorsi): Likewise.
-
-2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
-
- * config/arc/arc.opt (mea): Update help string.
- * doc/invoke.texi(ARC): Update mea option info.
-
-2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
-
- * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern.
- (zero_extendqisi2_ac): Likewise.
- (zero_extendhisi2_i): Likewise.
- (extendqihi2_i): Likewise.
- (extendqisi2_ac): Likewise.
- (extendhisi2_i): Likewise.
-
-2019-11-06 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (vectorizable_reduction): Remember reduction
- PHI. Use STMT_VINFO_REDUC_IDX to skip the reduction operand.
- Simplify single_defuse_cycle condition.
-
-2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an
- epilogue loop, make sure that the VF is small enough or that
- the epilogue loop can be fully-masked.
-
-2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vect_analyze_loop): Break out of the main
- loop when we've finished, rather than returning directly from
- the loop. Use a local variable to track whether we're still
- searching for the preferred simdlen. Make vect_epilogues
- record whether the next iteration should try to treat the
- loop as an epilogue.
-
-2019-11-06 Vineet Gupta <vgupta@synopsys.com>
-
- * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add
- __arc_hard_float__, __ARC_HARD_FLOAT__,
- __arc_soft_float__, __ARC_SOFT_FLOAT__
-
-2019-11-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR tree-optimization/92317
- * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also
- update phi's with constant phi arguments.
-
-2019-11-06 Eric Botcazou <ebotcazou@adacore.com>
- Alexandre Oliva <oliva@adacore.com>
-
- * common.opt (-fcallgraph-info[=]): New option.
- * doc/invoke.texi (Developer options): Document it.
- * opts.c (common_handle_option): Handle it.
- * builtins.c (expand_builtin_alloca): Record allocation if
- -fcallgraph-info=da.
- * calls.c (expand_call): If -fcallgraph-info, record the call.
- (emit_library_call_value_1): Likewise.
- * flag-types.h (enum callgraph_info_type): New type.
- * explow.c: Include stringpool.h.
- (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol.
- * function.c (allocate_stack_usage_info): New.
- (allocate_struct_function): Call it for -fcallgraph-info.
- (prepare_function_start): Call it otherwise.
- (record_final_call, record_dynamic_alloc): New.
- * function.h (struct callinfo_callee): New.
- (CALLEE_FROM_CGRAPH_P): New.
- (struct callinfo_dalloc): New.
- (struct stack_usage): Add callees and dallocs.
- (record_final_call, record_dynamic_alloc): Declare.
- * gimplify.c (gimplify_decl_expr): Record dynamically-allocated
- object if -fcallgraph-info=da.
- * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL.
- * print-tree.h (print_decl_identifier): Declare.
- (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New.
- * print-tree.c: Include print-tree.h.
- (print_decl_identifier): New function.
- * toplev.c: Include print-tree.h.
- (callgraph_info_file): New global variable.
- (callgraph_info_external_printed): Likewise.
- (output_stack_usage): Rename to...
- (output_stack_usage_1): ... this. Make it static, add cf
- parameter. If -fcallgraph-info=su, print stack usage to cf.
- If -fstack-usage, use print_decl_identifier for
- pretty-printing.
- (INDIRECT_CALL_NAME): New.
- (dump_final_node_vcg_start): New.
- (dump_final_callee_vcg, dump_final_node_vcg): New.
- (output_stack_usage): New.
- (lang_dependent_init): Open and start file if
- -fcallgraph-info. Allocated callgraph_info_external_printed.
- (finalize): If callgraph_info_file is not null, finish it,
- close it, and release callgraph_info_external_printed.
-
-2019-11-06 Gergö Barany <gergo@codesourcery.com>
- Frederik Harwath <frederik@codesourcery.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * omp-low.c (struct omp_context): New fields
- local_reduction_clauses, outer_reduction_clauses.
- (new_omp_context): Initialize these.
- (scan_sharing_clauses): Record reduction clauses on OpenACC constructs.
- (scan_omp_for): Check reduction clauses for incorrect nesting.
-
-2019-11-06 Jakub Jelinek <jakub@redhat.com>
-
- PR inline-asm/92352
- * gimplify.c (gimplify_asm_expr): Reject VLA in output or input
- operands with non-memory constraints.
-
-2019-11-05 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92373
- * tree.c (component_ref_size): Only consider initializers of objects
- of matching struct types.
- Return null for instances of interior zero-length arrays.
-
-2019-11-05 Segher Boessenkool <segher@kernel.crashing.org>
-
- * doc/md.texi (Insn Splitting): Fix combiner documentation.
-
-2019-11-05 Jason Merrill <jason@redhat.com>
-
- PR tree-optimization/91825
- * expmed.c: Reduce -Wmaybe-uninitialized to warning.
-
-2019-11-05 Jim Wilson <jimw@sifive.com>
-
- PR middle-end/92263
- * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when
- optimize_insn_for_speed_p is true.
-
-2019-11-05 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/92333
- PR middle-end/82608
- * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant
- size.
- * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful
- name and location for a temporary variable.
-
-2019-11-05 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range::value_range): Fix whitespace.
- (defined_ranges_p): Same.
- (range_fold_binary_symbolics_p): Same.
- (value_range::intersect_helper): Same.
- (value_range::union_helper): Same.
- * tree-vrp.h (range_fold_binary_expr): Same.
-
-2019-11-04 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/92341
- PR middle-end/82612
- * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets.
- * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text
- of message printed in a warning for empty arrays.
- (vrp_prop::check_mem_ref): Also handle function parameters and
- empty arrays.
-
-2019-11-05 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92371
- * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF
- on the original stmt of live stmts in the chain.
- (vectorizable_live_operation): Look at the original stmt when
- checking STMT_VINFO_REDUC_DEF.
-
-2019-11-05 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-fold.c, gimple-loop-versioning.cc,
- gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c,
- gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h,
- range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c,
- tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc],
- tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to
- value_range_equiv, and value_range_base to value_range.
-
-2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * expr.c (build_personality_function): Fix generated type to
- match actual personality functions.
-
-2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate
- enough bytes for the NULL character.
-
-2019-11-05 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92280
- * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR
- had a single use do not create a new CTOR.
- * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold
- BIT_FIELD_REF of a CTOR via GENERIC.
-
-2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config/s390/s390.c (s390_vector_alignment): Check if the value
- fits into uhwi before using it.
-
-2019-11-05 Martin Liska <mliska@suse.cz>
-
- * symbol-summary.h: Use ggc_delete.
-
-2019-11-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
-
- * config/aarch64/aarch64.c (thunderx2t99_vector_cost):
- Change vec_perm field to 10.
-
-2019-11-05 Arnaud Charlet <charlet@adacore.com>
-
- * doc/install.texi: Further fix syntax for html generation.
-
-2019-11-05 Martin Liska <mliska@suse.cz>
-
- * symbol-summary.h: Rename allocator to m_allocator and
- add comment.
-
-2019-11-05 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92324
- * tree-vect-loop.c (check_reduction_path): For MIN/MAX require
- all signed or unsigned operations.
-
-2019-11-05 Jan Hubicka <jh@suse.cz>
-
- * hsa-brig.c: Include alloc-pool.h
- * hsa-dump.c: Likewise.
- * hsa-gen.c: Likewise.
- * hse-regalloc.c: Likewise.
- * ipa-hsa.c: Likewise.
- * ipa-predicate.c: Likewise.
- * ipa-reference.c: Likewise.
- * ipa-sra.c: Likewise.
- * omp-expand.c: Likewise.
- * omp-general.c: Likewise.
- * omp-low.c: Likewise.
- * sumbol-summary.h (function_summary_base): Add allocator.
- (function_summary<T *>::function_summary): Update construction.
- (fast_function_summary<T *, V>::fast_function_summary): Likewise.
- (call_summary_base): Add allcator.
- (call_summary<T *>::call_summary): Update construction.
- (fast_call_summary<T *, V>::fast_call_summary): Likewise.
-
-2019-11-05 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/91945
- * builtins.c (compute_objsize): For ARRAY_REF, only multiply off
- by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt.
- Formatting fix.
-
-2019-11-05 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier.
- * range-op.h (wi_set_zero_nonzero_bits): New prototype.
- * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove.
- * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove.
- (vrp_set_zero_nonzero_bits): Move to...
- * vr-values.c (vr_set_zero_nonzero_bits): ...here.
- (vr_values::simplify_bit_ops_using_ranges): Rename
- vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits.
-
-2019-11-05 Martin Liska <mliska@suse.cz>
-
- PR c++/92339
- * fold-const.c (operand_compare::hash_operand): Remove
- FIELD_DECL handling.
-
-2019-11-05 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.h (vrp_bitmap_equal_p): Remove.
- * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make
- static.
-
-2019-11-05 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range_base::operator==): Use equal_p to
- properly handle symbolics.
- (range_compatible_p): Remove.
-
-2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com>
-
- * common.opt (-fabi-version): Document =14.
- * doc/invoke.texi (C++ Dialect Options): Likewise.
-
-2019-11-04 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range_base::set): Do not special case pointers.
-
-2019-11-04 Tobias Burnus <tobias@codesourcery.com>
-
- * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function.
- (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
- gcn_omp_device_kind_arch_isa.
- * config/gcn/t-omp-device: New file.
- * configure.ac: Support gcn for omp_device_property.
- * configure: Regenerate.
-
-2019-11-04 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.h (vrp_val_min): Remove handle_pointers argument.
- (vrp_val_max): Same.
- (vrp_val_is_min): Same.
- (vrp_val_is_max): Same.
- (value_range_base::nonzero_p): Remove last argument to
- vrp_val_is_max.
- * tree-vrp.c (vrp_val_min): Remove handle_pointers argument.
- (vrp_val_max): Same.
- (vrp_val_is_min): Same.
- (vrp_val_is_max): Same.
- (value_range_base::set_varying): Remove last argument to vrp_val*.
- (value_range_base::dump): Same.
- (value_range_base::set): Same.
- (value_range_base::normalize_symbolics): Same.
- (value_range_base::num_pairs): Same.
- (value_range_base::lower_bound): Same.
- (value_range_base::upper_bound): Same.
- (ranges_from_anti_range): Remove handle_pointers argument.
- (value_range_base::singleton_p): Remove last argument to
- ranges_from_anti_range.
-
-2019-11-04 Jan Hubicka <jh@suse.cz>
-
- * ipa-reference.c (init_function_info): Initialize
- info->global.statics_read.
-
-2019-11-04 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range_base::invert): Use constructors to build
- range.
-
-2019-11-04 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (range_int_cst_singleton_p): Remove.
- * tree-vrp.h (range_int_cst_singleton_p): Remove.
-
-2019-11-04 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range_base::normalize_addresses): Handle
- VR_UNDEFINED.
-
-2019-11-04 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (dump_assert_info): New.
- (dump_asserts_info): New.
-
-2019-11-04 Jan Hubicka <jh@suse.cz>
-
- * ipa-inline-transform.c: Include ipa-utils.h
- (inline_call): Set thunk_expansion flag.
- * ipa-utils.h (thunk_expansion): Declare.
- * ipa-devirt.c (thunk_expansion): New global var.
- (devirt_node_removal_hook): Do not invalidate cache while
- doing thunk expansion.
-
-2019-11-04 Tamar Christina <tamar.christina@arm.com>
-
- * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt.
-
-2019-11-04 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92349
- * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct
- memebers have constant sizes.
-
-2019-11-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
- parameter.
- * tree-vectorizer.h (vect_analyze_loop): Update declaration.
- * tree-vectorizer.c (try_vectorize_loop_1): Update calls to
- vect_analyze_loop.
-
-2019-11-04 Joel Hutton <Joel.Hutton@arm.com>
-
- * expr.c (store_constructor): Modify to handle single element vectors.
- * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector
- constructors.
- (vect_slp_check_for_constructors): New function.
- (vect_slp_analyze_bb_1): Call new function to check for vector
- constructors.
- (vectorize_slp_instance_root_stmt): New function.
- (vect_schedule_slp): Call new function to vectorize root stmt of vector
- constructors.
- * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field.
-
-2019-11-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92345
- * tree-vect-loop.c (vect_is_simple_reduction): Return whether
- we produced a reduction chain.
- (vect_analyze_scalar_cycles_1): Do not add reduction chains to
- LOOP_VINFO_REDUCTIONS.
-
-2019-11-04 Jan Hubicka <jh@suse.cz>
-
- * cgraphclones.c (cgraph_node::create_version_clone): Do not
- duplicate summaries.
- * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary
- first.
- (ipa_fn_summary_t::duplicate): Use get instead of get_create to
- access call summaries.
- (dump_ipa_call_summary): Be ready for missing edge summaries.
- (analyze_function_body): Use get instead of get_create to access
- edge summary.
- (estimate_calls_size_and_time): Do not access summaries of
- inlined edges; sanity check they are missing.
- (ipa_call_context::estimate_size_and_time): Use get instead
- of get_create to access node summary.
- (inline_update_callee_summaries): Do not update depth of
- inlined edge.
- (ipa_merge_fn_summary_after_inlining): Remove inline edge from
- growth caches.
- (ipa_merge_fn_summary_after_inlining): Use get instead
- of get_create.
- * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare.
- * ipa-inline-analyssi.c (edge_growth_cache): Turn to
- fast summary.
- (initialize_growth_caches): Update.
- (do_estimate_edge_time): Remove redundant copy of context.
- (ipa_remove_from_growth_caches): New function.
- * ipa-inline.c (flatten_function): Update overall summary
- only when optimizing.
- (inline_to_all_callers): Update overall summary of function
- inlined to.
- * ipa-inline.h (edge_growth_cache): Turn to fast summary.
- * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning
- to false.
-
-2019-11-04 Richard Biener <rguenther@suse.de>
-
- * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO.
- * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H.
-
-2019-11-04 David Edelsohn <dje.gcc@gmail.com>
-
- * ggc-common.c: Include system.h before malloc.h.
-
-2019-11-04 Alexandre Oliva <oliva@adacore.com>
-
- * configure.ac: Pass --enable-obsolete=* and
- --enable-option-checking=* down to build configure, and fail
- if it fails. AC_SUBST HAVE_AUTO_BUILD.
- * configure: Rebuild.
- * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule.
- [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h.
-
-2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config.in: Regenerate.
- * config/msp430/msp430.c (msp430_option_override): Emit an error if
- -mtiny-printf is used without GCC being configured with
- --enable-newlib-nano-formatted-io.
- * config/msp430/msp430.h (LINK_SPEC): Pass
- "--wrap puts --wrap printf" when -mtiny-printf is used.
- * config/msp430/msp430.opt: Document -mtiny-printf.
- * configure: Regenerate.
- * configure.ac: Enable --enable-newlib-nano-formatted-io flag.
- Define HAVE_NEWLIB_NANO_FORMATTED_IO if
- --enable-newlib-nano-formatted-io is passed.
- * doc/invoke.texi: Document -mtiny-printf.
-
-2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * configure: Regenerate.
-
-2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/driver-msp430.c
- (msp430_get_linker_devices_include_path): New spec function.
- * config/msp430/msp430-devices.c (msp430_dirname): New function.
- (extract_devices_dir_from_exec_prefix): New function.
- (extract_devices_dir_from_collect_gcc): New function.
- (msp430_check_env_var_for_devices): New function.
- (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP.
- (parse_devices_csv): Call msp430_check_env_var_for_devices if
- devices.csv was not found using other methods.
- * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices):
- New prototype.
- (msp430_dirname): Likewise.
- * config/msp430/msp430.c (msp430_register_pre_includes): New function.
- * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add
- msp430_get_linker_devices_include_path.
- (TARGET_EXTRA_PRE_INCLUDES): Define.
- * doc/invoke.texi: Document new ways of searching for support files.
-
-2019-11-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92301
- * tree-vect-stmts.c (process_use): Force reduction PHI defs live
- as required by epilogue generation
-
-2019-11-04 Martin Liska <mliska@suse.cz>
-
- PR ipa/92304
- * fold-const.c (operand_compare::hash_operand): Fix field
- hashing of CONSTRUCTOR.
-
-2019-11-04 Martin Liska <mliska@suse.cz>
-
- * ggc.h (ggc_delete): New function.
- * ipa-fnsummary.c (ipa_free_fn_summary): Use it.
- * ipa-prop.c (ipa_free_all_edge_args): Likewise.
- (ipa_free_all_node_params): Likewise.
- * ipa-sra.c (ipa_sra_analysis): Likewise.
-
-2019-11-02 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (set_cond_stmt_execution_predicate,
- set_switch_stmt_execution_predicate, compute_bb_predicates,
- will_be_nonconstant_expr_predicate,
- phi_result_unknown_predicate,
- analyze_function_body): Pass arround params summary.
- (ipa_call_context::duplicate_from): New comment;
- only duplicate useful values.
- (ipa_call_context::equal_to): Only compare useful values.
- (remap_edge_summaries): Pass params_summary.
- (remap_hint_predicate): Likewise.
- (ipa_merge_fn_summary_after_inlining): Likewise.
- (inline_read_section): Initialize params summary used flags.
- * ipa-predicate.c (predicate::remap_after_inlining): Pass
- around param_summary.
- (add_condition): Initialized used params summary flags.
- * ipa-predicate.h (inline_param_summary::equals_to): Make const.
- (inline_param_summary::useless_p): New predicate.
- (remap_after_inlining, add_condition): Update prototype
- * ipa-prop.c (ipa_populate_param_decls): Watch overflow in
- move_cost.
- (ipa_note_param_call): Add parameter POLYMORPHIC; update params
- summaries.
- (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call.
- (ipa_analyze_virtual_call_uses): Likewise.
- (update_indirect_edges_after_inlining): Update param summaries.
- (ipa_print_node_params): Print used flags.
- (ipa_read_indirect_edge_info): Update param summareis.
- * ipa-prop.h (ipa_param_descriptor): Add
- used_by_ipa_predicates, used_by_indirect_call
- and used_by_polymorphic_call.
- (ipa_set_param_used_by_ipa_predicates,
- ipa_set_param_used_by_indirect_call,
- ipa_set_param_used_by_polymorphic_call,
- ipa_is_param_used_by_ipa_predicates,
- ipa_is_param_used_by_indirect_call,
- ipa_is_param_used_by_polymorphic_call): New inline functions.
-
-2019-11-02 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (ipa_call_context::duplicate_from): New
- member function.
- (ipa_call_context::release): Add ALL parameter.
- (ipa_call_context::equal_to): New member function.
- * ipa-fnsummary.h (ipa_call_context): Add empty constructor;
- duplicate_form, release, equal_to and exists_p member functoins.
- * ipa-inline-analysis.c (node_context_cache_entry): New
- class.
- (node_context_summary): Likewise.
- (node_context_cache, node_context_cache_hit, node_context_cache_miss,
- node_context_clear): New static vars.
- (initialize_growth_caches): New function.
- (free_growth_caches): Also delete node_context_cache; output stats.
- (do_estimate_edge_time): Cache contexts.
- (reset_node_cache): New function.
- * ipa-inline.c (reset_edge_caches): Reset also node cache.
- (inline_small_functions): Initialize growth caches.
- * ipa-inline.h (reset_node_cache, initialize_growth_caches):
- Declare.
- * ipa-predicate.h (inline_param_summary::equal_to): New.
- * ipa-prop.c (ipa_agg_jf_item::equal_to): New.
- * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function.
- (ipa_agg_jump_function): Implement equal_to member function.
-
-2019-11-02 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (inline_read_section): Set vector size
- ahead of time.
-
-2019-11-02 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-fnsummary.c (ipa_call_context): New constructor.
- (estimate_node_size_and_time): Turn to ...
- (ipa_call_context::estimate_size_and_time): ... this one.
- (ipa_call_context::release): New.
- * ipa-fnsummary.h (ipa_call_context): New class.
- (estimate_node_size_and_time): Remove.
- * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size,
- do_estimate_edge_hints): Update.
-
-2019-11-02 Jan Hubicka <hubicka@ucw.cz>
-
- * config.in: Regenerate.
- * configure: Regenerate.
- * configure.ac: Check for mallinfo.
- * ggc-common.c: Include malloc.h if available;
- include options.h
- (report_heap_memory_use): New functoin.
- * ggc-page.c (ggc_grow): Do not print "start".
- * ggc.h (report_heap_memory_use): Declare.
- * pases.c (execute_one_pass): Report memory after IPA passes.
- (ipa_read_summaries_1): Likewise.
- (ipa_read_optimization_summaries_1): Likewise.
-
-2019-11-02 Jakub Jelinek <jakub@redhat.com>
-
- * gimplify.h (omp_construct_selector_matches): Change return
- type to int, add a new SCORES argument.
- * gimplify.c (omp_construct_selector_matches): Likewise. If
- SCORES is non-NULL, compute scores of each construct.
- * omp-general.h (omp_get_context_selector): Declare.
- * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches):
- Adjust omp_construct_selector_matches callers.
- (omp_get_context_selector): New function, moved from c-family/c-omp.c.
- (omp_context_compute_score): New function.
- (omp_resolve_declare_variant): Compute scores and decide based on
- that.
-
- PR bootstrap/92314
- * configure.ac: Don't look for omp-device-properties files from
- installed offloading compilers. Instead add tmake_file snippets
- for configured offloading targets and use files they generate.
- * Makefile.in (install): Don't depend on
- install-omp-device-properties.
- (install-omp-device-properties): Remove goal.
- * config/i386/t-omp-device: New file.
- * config/i386/t-intelmic (omp-device-properties): Remove goal.
- * config/nvptx/t-omp-device: New file.
- * config/nvptx/t-nvptx (omp-device-properties): Remove goal.
- * configure: Regenerated.
-
- * omp-general.h (omp_context_selector_set_compare): Declare.
- * omp-general.c (omp_construct_simd_compare,
- omp_context_selector_props_compare, omp_context_selector_set_compare,
- omp_context_selector_compare): New functions.
- (omp_resolve_declare_variant): Prune variants that are strict subset
- of another variant.
-
-2019-11-01 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/91679
- PR middle-end/91647
- PR middle-end/91463
- PR middle-end/92312
- * doc/invoke.texi (-Wzero-length-bounds): Document.
- * gimple-match-head.c (try_conditional_simplification): Use memcpy
- instead of a hand-rolled loop to avoid PR 92323.
- * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays
- with initializers.
- (vrp_prop::check_mem_ref): Handle declared struct objects.
- * tree.c (last_field): New function.
- (array_at_struct_end_p): Handle MEM_REF.
- (get_initializer_for): New helper.
- (component_ref_size): Add argument. Rename locals. Call
- get_initializer_for instead of fold_ctor_reference. Correct handling
- of flexible array members.
- * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant.
-
-2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes.
- * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS,
- UNSPEC_VSX_CVSPUXDS): Remove.
- (vsx_xvcvspdp): New define_expand, old define_insn split to...
- (vsx_xvcvspdp_be): ... this. New. And...
- (vsx_xvcvspdp_le): ... this. New.
- (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to...
- (vsx_xvcv<su>xwdp_be): ... this. New. And...
- (vsx_xvcv<su>xwdp_le): ... this. New.
- (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to...
- (vsx_xvcvsp<su>xds_be): ... this. New. And...
- (vsx_xvcvsp<su>xds_le): ... this. New.
-
-2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP,
- UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP,
- UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS,
- UNSPEC_VSX_XVCVSPSXWS): Remove.
- (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws,
- vsx_xvcv<su>xwsp): Update define_insn RTL patterns.
-
-2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn.
- (UNSPEC_VSX_XVCDPSP): Remove.
- * config/rs6000/rs6000.c (rs6000_generate_float2_double_code):
- Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp.
-
-2019-11-01 Tobias Burnus <tobias@codesourcery.com>
-
- * hooks.c (hook_tree_tree_bool_null): New.
- * hooks.h (hook_tree_tree_bool_null): Declare.
- * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define.
- (LANG_HOOKS_DECLS): Add it.
- * langhooks.h (lang_hooks_for_decls): Add omp_array_data.
- * omp-low.c (install_var_field): New mode for Fortran descriptor arrays.
- (lower_omp_target): Handle Fortran array with descriptor in
- OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR.
-
-2019-10-31 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
- Assert that the type we store in abi_vector_types is its own
- main variant.
- (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
-
-2019-10-31 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets
- from a CONST_INT address when TARGET_THUMB2.
-
-2019-10-31 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (add_not_cin): New insn.
- (add_not_shift_cin): Likewise.
-
-2019-10-31 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove.
- * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label
- and compare_memory_operand.
-
-2019-10-31 Jakub Jelinek <jakub@redhat.com>
-
- * configure.ac: Compute and substitute omp_device_properties and
- omp_device_property_deps.
- * Makefile.in (generated_files): Add omp-device-properties.h.
- (omp-general.o): Depend on omp-device-properties.h.
- (omp_device_properties): New make variable.
- (omp-device-properties.h, s-omp-device-properties-h,
- install-omp-device-properties): New goals.
- (install): Depend on install-omp-device-properties for accelerators.
- * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
- * target.h (enum omp_device_kind_arch_isa): New enum.
- * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
- documentation.
- * omp-general.c: Include omp-device-properties.h.
- (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
- colon instead of comma.
- (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
- functions.
- (omp_context_selector_matches): Implement device set arch/isa
- selectors, improve device set kind selector handling.
- * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
- * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
- TARGET_SIMD_CLONE_USABLE): Formatting fix.
- (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
- ix86_omp_device_kind_arch_isa.
- * config/i386/i386-options.c (struct ix86_target_opts): Move type
- definition from ix86_target_string to file scope.
- (isa2_opts, isa_opts): Moved arrays from ix86_target_string function
- to file scope.
- (ix86_omp_device_kind_arch_isa): New function.
- (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
- isa_opts definitions to file scope.
- * config/i386/t-intelmic (omp-device-properties): New goal.
- * config/nvptx/t-nvptx (omp-device-properties): Likewise.
- * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
- (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
- nvptx_omp_device_kind_arch_isa.
- * configure: Regenerate.
- * doc/tm.texi: Regenerate.
-
- PR middle-end/92231
- * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
- DECL_BUILT_IN in comment. Remove redundant ()s around return
- argument.
- * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
- before calling fndecl_built_in_p.
- * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
- TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
- fndecl_built_in_p on it.
-
-2019-10-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.
-
-2019-10-31 Martin Liska <mliska@suse.cz>
-
- * config/arm/arm.c (arm_get_pcs_model): Remove usage
- of cgraph_local_info and use local_info_node instead.
- * config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
- (bfin_function_ok_for_sibcall): Likewise.
- * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
- (must_reload_pic_reg_p): Likewise.
-
-2019-10-31 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/90947
- * tree.h (type_initializer_zero_p): Remove.
- * tree.c (type_initializer_zero_p): Remove.
-
-2019-10-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * doc/invoke.texi (-Wshadow, -Wshadow=global
- -Wshadow=local, -Wshadow=compatible-local): Update documentation.
-
-2019-10-30 Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated
- GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update'
- and 'target exit data'.
-
-2019-10-30 Martin Jambor <mjambor@suse.cz>
-
- ipa/92278
- * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix
- availability comparison.
-
-2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.c (msp430_expand_helper): Support expansion of
- calls to __mspabi_mpy* functions.
- * config/msp430/msp430.md (mulhisi3): New define_expand.
- (umulhisi3): New define_expand.
- (*mulhisi3_inline): Use old mulhisi3 define_insn.
- (*umulhisi3_inline): Use old umulhisi3 define_insn.
-
-2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.c (msp430_check_index_not_high_mem): New.
- (msp430_check_plus_not_high_mem): New.
- (msp430_op_not_in_high_mem): Use new functions to check if the operand
- might be in low memory.
- Indicate that a 16-bit absolute address is in lower memory.
-
-2019-10-30 Martin Jambor <mjambor@suse.cz>
-
- * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to
- ultimate_alias_target.
-
-2019-10-30 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92275
- * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops):
- Copy all loop-closed PHIs.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use
- const_tree as function argument.
- (func_checker::compare_decl): Likewise.
- (func_checker::operand_equal_p): Likewise.
- (func_checker::compare_variable_decl): Likewise.
- (func_checker::parse_labels): Likewise.
- * ipa-icf-gimple.h: Likewise.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::compatible_types_p):
- Do not compare alias sets. It's handled by operand_equal_p.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::func_checker): Do not
- initialize m_compare_polymorphic.
- (func_checker::compare_decl): Do not compare polymorphic types.
- * ipa-icf-gimple.h (m_compare_polymorphic): Remove.
- * ipa-icf.c (sem_function::equals_private): Do not call
- compare_polymorphic_p.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call
- compare_operand.
- (func_checker::compare_memory_operand): Remove.
- (func_checker::compare_cst_or_decl): Remove.
- (func_checker::operand_equal_valueize): Do not handle
- FIELD_DECL.
- (func_checker::compare_gimple_call): Call compare_operand.
- (func_checker::compare_gimple_assign): Likewise.
- * ipa-icf-gimple.h: Remove compare_cst_or_decl.
- * ipa-icf.c (sem_function::icf_handled_component_p): Remove.
- * ipa-icf.h (icf_handled_component_p): Remove.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * ipa-icf-gimple.c (func_checker::hash_operand): New.
- (func_checker::compare_cst_or_decl): Remove handling
- of FIELD_DECL.
- (func_checker::compare_operand): Transform to ...
- (func_checker::operand_equal_p): ... this.
- * ipa-icf-gimple.h (class func_checker): Add
- operand_equal_p and hash_operand.
- * ipa-icf.c (sem_function::equals_private): Fix
- pushing and popping of cfun.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * fold-const.c (operand_equal_p): Move to ...
- (operand_compare::operand_equal_p): ... here.
- (operand_compare::verify_hash_value): New.
- (add_expr): Move to ...
- (operand_compare::hash_operand): ... here.
- * fold-const.h (operand_equal_p): Move to the class.
- (class operand_compare): New.
- * tree.c (add_expr): Remove.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF.
- * tree.c (add_expr): Hash parts of OBJ_TYPE_REF.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- PR lto/91393
- PR lto/88220
- * cgraph.c (cgraph_node::get_create): Overwrite node->order
- from a first_clone in order to get proper LTO section
- in LTO stream.
- (cgraph_node::get_untransformed_body):
- Use lto_get_section_data where symtab_node::order
- must be provided.
- * cgraphclones.c (cgraph_node::find_replacement):
- Update also symbol order.
- * ipa-fnsummary.c (ipa_fn_summary_read):
- Use new function lto_get_summary_section_data.
- * ipa-hsa.c (ipa_hsa_read_summary): Likewise.
- * ipa-icf.c (sem_item_optimizer::read_summary):
- Likewise.
- * ipa-prop.c (ipa_prop_read_jump_functions):
- Likewise.
- (ipcp_read_transformation_summaries): Likewise.
- * ipa-sra.c (ipa_sra_read_summary): Likewise.
- * lto-cgraph.c (input_node): Add also order_base.
- (input_varpool_node): Likewise.
- (input_cgraph_1): Assign the order_base.
- (input_cgraph_opt_summary): Use new lto_get_summary_section_data.
- * lto-opts.c (lto_write_options): Pass new argument.
- * lto-section-in.c (lto_get_section_data): Add new argumente order.
- (lto_get_summary_section_data): New.
- (lto_get_raw_section_data): Add order argument.
- (lto_create_simple_input_block): Likewise.
- * lto-section-out.c (lto_destroy_simple_output_block):
- Likewise.
- * lto-streamer-in.c (lto_input_toplevel_asms):
- Use lto_get_summary_section_data.
- (lto_input_mode_table): Likewise.
- * lto-streamer-out.c (produce_asm): Pass symtab_node::order.
- (lto_output_toplevel_asms): Pass new argument.
- (copy_function_or_variable): Likewise.
- (produce_lto_section):Likewise.
- (produce_symtab): Likewise.
- (lto_write_mode_table): Likewise.
- (produce_asm_for_decls): Likewise.
- * lto-streamer.c (lto_get_section_name): Concat symbol name
- and symbol order.
- * lto-streamer.h (lto_get_section_data): Add order argument.
- (lto_get_summary_section_data): New.
- (lto_get_raw_section_data): Add order argument.
- (lto_get_section_name): Likewise.
- * varpool.c (varpool_node::get_constructor): Pass order argument.
-
-2019-10-30 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92262
- * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare
- ubase or cbase here.
- (remove_unused_ivs): Unshare comp before using it.
-
-2019-10-30 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-prop.c (update_jump_functions_after_inlining):
- Watch for missing summaries.
-
-2019-10-30 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/65930
- * tree-vect-loop.c (vect_is_simple_reduction): For reduction
- chains also allow a leading and trailing conversion.
- * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
- intermediate reduction chains.
- (vect_analyze_slp_instance): Likewise. Build a SLP
- node for a trailing conversion manually.
-
-2019-10-30 Martin Liska <mliska@suse.cz>
-
- * cgraph.c (cgraph_node::local_info): Transform to ...
- (cgraph_node::local_info_node): ... this.
- (cgraph_node::dump): Remove cgraph_local_info and
- put its fields directly into cgraph_node.
- (cgraph_node::get_availability): Likewise.
- (cgraph_node::make_local): Likewise.
- (cgraph_node::verify_node): Likewise.
- * cgraph.h (struct GTY): Likewise.
- * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise.
- (duplicate_thunk_for_node): Likewise.
- (cgraph_node::create_clone): Likewise.
- (cgraph_node::create_virtual_clone): Likewise.
- (cgraph_node::create_version_clone): Likewise.
- * cgraphunit.c (cgraph_node::reset): Likewise.
- (cgraph_node::finalize_function): Likewise.
- (cgraph_node::add_new_function): Likewise.
- (analyze_functions): Likewise.
- * combine.c (setup_incoming_promotions): Likewise.
- * config/i386/i386.c (ix86_function_regparm): Likewise.
- (ix86_function_sseregparm): Likewise.
- (init_cumulative_args): Likewise.
- * ipa-cp.c (determine_versionability): Likewise.
- (count_callers): Likewise.
- (set_single_call_flag): Likewise.
- (initialize_node_lattices): Likewise.
- (estimate_local_effects): Likewise.
- (create_specialized_node): Likewise.
- (identify_dead_nodes): Likewise.
- * ipa-fnsummary.c (compute_fn_summary): Likewise.
- (ipa_fn_summary_generate): Likewise.
- * ipa-hsa.c (check_warn_node_versionable): Likewise.
- (process_hsa_functions): Likewise.
- * ipa-icf.c (set_local): Likewise.
- * ipa-inline-analysis.c (initialize_inline_failed): Likewise.
- * ipa-inline.c (speculation_useful_p): Likewise.
- * ipa-profile.c (ipa_propagate_frequency): Likewise.
- (ipa_profile): Likewise.
- * ipa-split.c (split_function): Likewise.
- (execute_split_functions): Likewise.
- * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise.
- (ipa_sra_ipa_function_checks): Likewise.
- * ipa-visibility.c (function_and_variable_visibility): Likewise.
- * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
- * lto-cgraph.c (lto_output_node): Likewise.
- (input_overwrite_node): Likewise.
- * multiple_target.c (expand_target_clones): Likewise.
- * omp-simd-clone.c (simd_clone_create): Likewise.
- * trans-mem.c (expand_call_tm): Likewise.
- (ipa_tm_mayenterirr_function): Likewise.
- (ipa_tm_diagnose_tm_safe): Likewise.
- (ipa_tm_diagnose_transaction): Likewise.
- (ipa_tm_create_version): Likewise.
- (ipa_tm_transform_calls_redirect): Likewise.
- (ipa_tm_execute): Likewise.
- * tree-inline.c (expand_call_inline): Likewise.
-
-2019-10-29 Martin Liska <mliska@suse.cz>
-
- * symbol-summary.h (function_summary): Pass memory location
- to underlaying hash_map (or vec).
- (V>::fast_function_summary): Likewise.
-
-2019-10-29 Martin Liska <mliska@suse.cz>
-
- * ggc.h (ggc_alloc_no_dtor): New function.
- * ipa-fnsummary.c (ipa_free_fn_summary): Call
- destructor and ggc_free.
- (ipa_free_size_summary): Call delete instead
- of release.
- * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor.
- * ipa-prop.c (ipa_check_create_edge_args): Likewise.
- (ipa_free_all_edge_args): Call destructor and ggc_free.
- (ipa_free_all_node_params): Likewise.
- (ipcp_free_transformation_sum): Likewise.
- * ipa-prop.h (ipa_check_create_node_params):
- Call new ggc_alloc_no_dtor.
- * ipa-sra.c (ipa_sra_generate_summary): Likewise.
- (ipa_sra_analysis): Call destructor and ggc_free.
- Replace release with delete operator.
- * symbol-summary.h (release): Remove ..
- (V>::~fast_function_summary): and move logic here.
- Likewise for other classes.
-
-2019-10-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92260
- * tree-vect-slp.c (vect_get_constant_vectors): Special-case
- lane-reducing ops.
-
-2019-10-29 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR tree-optimization/88915
- * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration.
- * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter
- and make the valueize function pointer also take a void pointer.
- * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap
- around vn_valueize, to call it without a context.
- (process_bb): Use vn_valueize_wrapper instead of vn_valueize.
- * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos.
- (~_loop_vec_info): Release epilogue_vinfos.
- (vect_analyze_loop_costing): Use knowledge of main VF to estimate
- number of iterations of epilogue.
- (vect_analyze_loop_2): Adapt to analyse main loop for all supported
- vector sizes when vect-epilogues-nomask=1. Also keep track of lowest
- versioning threshold needed for main loop.
- (vect_analyze_loop): Likewise.
- (find_in_mapping): New helper function.
- (update_epilogue_loop_vinfo): New function.
- (vect_transform_loop): When vectorizing epilogues re-use analysis done
- on main loop and call update_epilogue_loop_vinfo to update it.
- * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert
- stmts on loop preheader edge.
- (vect_do_peeling): Enable skip-vectors when doing loop versioning if
- we decided to vectorize epilogues. Update epilogues NITERS and
- construct ADVANCE to update epilogues data references where needed.
- * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos.
- (vect_do_peeling, vect_update_inits_of_drs,
- determine_peel_for_niter, vect_analyze_loop): Add or update
- declarations.
- * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already
- created loop_vec_info's for epilogues when available. Otherwise analyse
- epilogue separately.
-
-2019-10-29 Richard Biener <rguenther@suse.de>
-
- * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT
- example.
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (vectorizable_condition): Get the reduction
- index for the COND_EXPR from stmt_info rather than reduc_info.
-
-2019-10-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/65930
- * tree-vect-loop.c (check_reduction_path): Relax single-use
- check allowing out-of-loop uses.
- (vect_is_simple_reduction): SLP reduction chains cannot have
- intermediate stmts used outside of the loop.
- (vect_create_epilog_for_reduction): The adjustment might need
- to be converted.
- (vectorizable_reduction): Annotate live stmts of the reduction
- chain with STMT_VINFO_REDUC_DEF.
- * tree-vect-stms.c (process_use): Remove no longer true asserts.
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * calls.c (pass_by_reference): Leave the target to decide whether
- POLY_INT_CST-sized arguments should be passed by value or reference,
- rather than forcing them to be passed by reference.
- (must_pass_in_stack_var_size): Likewise.
- * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from
- V31_REGNUM to P15_REGNUM.
- * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args):
- Take an extra "silent_p" parameter, defaulting to false.
- (aarch64_sve::svbool_type_p): Declare.
- (aarch64_sve::nvectors_if_data_type): Likewise.
- * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro.
- (aarch64_frame::reg_offset): Turn into poly_int64s.
- (aarch64_frame::save_regs_size): Likewise.
- (aarch64_frame::below_hard_fp_saved_regs_size): New field.
- (aarch64_frame::sve_callee_adjust): Likewise.
- (aarch64_frame::spare_reg_reg): Likewise.
- (ARM_PCS_SVE): New arm_pcs value.
- (CUMULATIVE_ARGS::aapcs_nprn): New field.
- (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise.
- (CUMULATIVE_ARGS::silent_p): Likewise.
- (BITS_PER_SVE_PRED): New macro.
- * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New
- function. Reject aarch64_vector_pcs attributes on SVE functions.
- (aarch64_attribute_table): Use the above handler.
- (aarch64_sve_abi): New function.
- (aarch64_sve_argument_p): Likewise.
- (aarch64_returns_value_in_sve_regs_p): Likewise.
- (aarch64_takes_arguments_in_sve_regs_p): Likewise.
- (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS
- descriptor for them.
- (aarch64_simd_decl_p): Delete.
- (aarch64_emit_cfi_for_reg_p): New function.
- (aarch64_reg_save_mode): Remove the fndecl argument and instead use
- crtl->abi to choose the mode for FP registers. Handle the SVE PCS.
- (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers
- as partly clobbered for the SVE PCS.
- (aarch64_function_ok_for_sibcall): Check whether the two functions
- use the same ABI, rather than checking specifically for whether
- they're aarch64_vector_pcs functions.
- (aarch64_pass_by_reference): Raise an error for attempts to pass
- SVE arguments when SVE is disabled. Pass SVE arguments by reference
- if there are not enough free registers left, or if the argument is
- variadic.
- (aarch64_function_value): Handle SVE predicates, vectors and tuples.
- (aarch64_return_in_memory): Do not return SVE predicates, vectors and
- tuples in memory.
- (aarch64_layout_arg): Take a function_arg_info rather than
- individual properties. Handle SVE predicates, vectors and tuples.
- Raise an error if they are passed to unprototyped functions.
- (aarch64_function_arg): If the silent_p flag is set, suppress the
- usual error about using float registers without TARGET_FLOAT.
- (aarch64_init_cumulative_args): Take a silent_p parameter and store
- it in the cumulative_args structure. Initialize aapcs_nprn and
- aapcs_nextnprn. If the silent_p flag is set, suppress the usual
- error about using float registers without TARGET_FLOAT.
- If the silent_p flag is not set, also raise an error about
- using SVE functions when SVE is disabled.
- (aarch64_function_arg_advance): Update the call to aarch64_layout_arg,
- and call it for SVE functions too. Update aapcs_nprn similarly
- to the other register counts.
- (aarch64_layout_frame): If a big-endian function needs to save
- and restore Z8-Z15, search for a spare predicate that it can use.
- Store SVE predicates at the bottom of the register save area,
- followed by SVE vectors, then followed by the normal slots.
- Keep pointing the hard frame pointer at the base of the normal slots,
- above the SVE vectors. Update the various frame creation and
- tear-down strategies for the new layout, initializing the new
- sve_callee_adjust field. Add an additional layout for frames
- whose saved registers are all SVE registers.
- (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets.
- (aarch64_return_address_signing_enabled): Likewise.
- (aarch64_push_regs, aarch64_pop_regs): Update calls to
- aarch64_reg_save_mode.
- (aarch64_adjust_sve_callee_save_base): New function.
- (aarch64_add_cfa_expression): Move earlier in file. Take the
- saved register as an rtx rather than a register number and use
- its mode for the MEM slot.
- (aarch64_save_callee_saves): Remove the mode argument and instead
- use aarch64_reg_save_mode to get the mode of each save slot.
- Add a hard_fp_valid_p parameter. Cope with poly_int64 register
- offsets. Allow GP offsets to be saved at a VL-based offset from
- the stack, handling this case using the frame pointer if available
- or a temporary register otherwise. Use ST1D to save Z8-Z15 for
- big-endian SVE functions; use normal moves for other SVE saves.
- Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p
- returns true. Add explicit CFA notes when not storing via the
- stack pointer. Do not try to pair SVE saves.
- (aarch64_restore_callee_saves): Cope with poly_int64 register
- offsets. Use LD1D to restore Z8-Z15 for big-endian SVE functions;
- use normal moves for other SVE restores. Only add CFA restore notes
- if aarch64_emit_cfi_for_reg_p returns true. Do not try to pair
- SVE restores.
- (aarch64_get_separate_components): Always keep the first SVE save
- in the prologue if we need to use it as a stack probe. Don't allow
- Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets.
- Likewise the spare predicate register that they need. Update the
- offset calculation to account for the SVE save area. Use the
- appropriate range check for SVE LDR and STR instructions.
- (aarch64_components_for_bb): Cope with poly_int64 reg_offsets.
- (aarch64_process_components): Likewise. Update the offset
- calculation to account for the SVE save area. Only mark the
- save as frame-related if aarch64_emit_cfi_for_reg_p returns true.
- Do not try to pair SVE saves.
- (aarch64_allocate_and_probe_stack_space): Cope with poly_int64
- reg_offsets. When handling the final allocation, expect the
- first SVE register save to be part of the initial allocation
- and for it to act as a probe at SP. Account for the SVE callee
- save area in the dump information.
- (aarch64_expand_prologue): Update the frame diagram. Fold the
- SVE callee allocation into the initial allocation if stack clash
- protection is enabled. Use new variables to track the offset
- of the frame chain (and hard frame pointer) from the current
- stack pointer, and likewise the offset of the bottom of the
- register save area. Update calls to aarch64_save_callee_saves
- and aarch64_add_cfa_expression. Apply sve_callee_adjust before
- saving the FP&SIMD registers. Save the predicate registers.
- (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size
- into account when setting the stack pointer from the frame pointer,
- and when deciding whether we can inherit the initial adjustment
- amount from the prologue. Restore the predicate registers after
- the vector registers, then apply sve_callee_adjust, then restore
- the general registers.
- (aarch64_secondary_reload): Don't use secondary SVE reloads
- for VNx16BImode.
- (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type.
- (aarch64_short_vector_p): Return false for SVE types.
- (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha
- at the start of the function. Return false for SVE types.
- (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE
- functions too.
- (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming.
- * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend
- to big-endian targets for bytewise moves.
- (*aarch64_sve_mov<mode>_be): Exclude the bytewise case.
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
- Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
- Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers.
- Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and
- aarch64-sve-builtins-base.o to extra_objs. Add
- aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles.
- * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule.
- (aarch64-sve-builtins-shapes.o): Likewise.
- (aarch64-sve-builtins-base.o): New rules.
- * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function.
- (aarch64_resolve_overloaded_builtin): Likewise.
- (aarch64_check_builtin_call): Likewise.
- (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin
- and aarch64_check_builtin_call in targetm. Register the GCC aarch64
- pragma.
- * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro.
- (aarch64_svprfop): New enum.
- (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value.
- (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare.
- (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise.
- (aarch64_output_sve_cnt_pat_immediate): Likewise.
- (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise.
- (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p)
- (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p)
- (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise.
- (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise.
- (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise.
- (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise.
- (aarch64_sve::mangle_builtin_type): Likewise.
- (aarch64_sve::resolve_overloaded_builtin): Likewise.
- (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin)
- (aarch64_sve::expand_builtin): Likewise.
- * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public.
- (aarch64_sve_int_mode): Likewise.
- (aarch64_ptrue_all_mode): New function.
- (aarch64_convert_sve_data_to_pred): Make public.
- (svprfop_token): New function.
- (aarch64_output_sve_prefetch): Likewise.
- (aarch64_fold_sve_cnt_pat): Likewise.
- (aarch64_output_sve_cnt_pat_immediate): Likewise.
- (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO
- instead of gen_while_ult.
- (aarch64_replace_reg_mode): Make public.
- (aarch64_init_builtins): Call aarch64_sve::init_builtins.
- (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE.
- (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise.
- (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise.
- (aarch64_mangle_type): Call aarch64_sve::mangle_type.
- (aarch64_sve_sqadd_sqsub_immediate_p): New function.
- (aarch64_sve_ptrue_svpattern_p): Likewise.
- (aarch64_sve_pred_valid_immediate): Check
- aarch64_sve_ptrue_svpattern_p.
- (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p)
- (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New
- functions.
- * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE)
- (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS)
- (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR)
- (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR)
- (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH)
- (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE):
- New unspecs.
- * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY)
- (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW)
- (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators.
- (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA)
- (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV)
- (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD)
- (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs.
- (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise.
- (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise.
- (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise.
- (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise.
- (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270)
- (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180)
- (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise.
- (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise.
- (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise.
- (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise.
- (Vesize): Handle partial vector modes.
- (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New
- mode attributes.
- (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code
- iterators.
- (s, paired_extend, inc_dec): New code attributes.
- (SVE_INT_ADDV, CLAST, LAST): New int iterators.
- (SVE_INT_UNARY): Add UNSPEC_RBIT.
- (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators.
- (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise.
- (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX.
- (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
- UNSPEC_COND_FMULX.
- (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators.
- (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise.
- (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
- (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX.
- (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA)
- (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE)
- (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY)
- (SVE_BRK_BINARY, SVE_PITER): New int iterators.
- (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE,
- UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT,
- UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS,
- UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270,
- UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90,
- UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90,
- UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX,
- UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and
- UNSPEC_COND_FSCALE.
- (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
- (binqops_op, binqops_op_rev, last_op): New int attributes.
- (su): Handle UNSPEC_SADDV and UNSPEC_UADDV.
- (fn, ab): New int attributes.
- (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*.
- (while_optab_cmp, brk_op, sve_pred_op): New int attributes.
- (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART,
- UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and
- UNSPEC_RBIT.
- (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE,
- UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL,
- UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX,
- UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE.
- (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
- UNSPEC_COND_FMULX.
- (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*.
- (brk_reg_con, brk_reg_opno): New int attributes.
- (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle
- UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX.
- (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and
- UNSPEC_COND_FMIN.
- (max_elem_bits): New int attribute.
- (min_elem_bits): Handle UNSPEC_RBIT.
- * config/aarch64/predicates.md (subreg_lowpart_operator): Handle
- TRUNCATE as well as SUBREG.
- (ascending_int_parallel, aarch64_simd_reg_or_minus_one)
- (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand)
- (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate)
- (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate)
- (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h)
- (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d)
- (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b)
- (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w)
- (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b)
- (aarch64_gather_scale_operand_h): New predicates.
- * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb)
- (vgd, vgh, vgw, vsQ, vsS): New constraints.
- * config/aarch64/aarch64-sve.md: Add a note on the FFR handling.
- (*aarch64_sve_reinterpret<mode>): Allow any source register
- instead of requiring an exact match.
- (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc)
- (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest)
- (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt)
- (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest)
- (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc)
- (aarch64_update_ffrt): New patterns.
- (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
- (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
- (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
- (@aarch64_ld<fn>f1<mode>): New patterns.
- (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
- (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
- (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
- (@aarch64_ldnt1<mode>): New patterns.
- (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for
- the scalar part of the address.
- (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the
- scalar part of the addresse and add an alternative for handling
- nonzero offsets.
- (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
- (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw)
- (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
- (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
- (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
- (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
- (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>)
- (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw)
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
- (@aarch64_sve_prefetch<mode>): New patterns.
- (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>)
- (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>)
- (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw)
- (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw)
- (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>)
- (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
- (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
- (@aarch64_stnt1<mode>): New patterns.
- (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for
- the scalar part of the address.
- (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for
- the scalar part of the addresse and add an alternative for handling
- nonzero offsets.
- (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
- (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw)
- (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
- (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
- (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
- (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw):
- New patterns.
- (vec_duplicate<mode>): Use QI as the mode of the input operand.
- (extract_last_<mode>): Generalize to...
- (@extract_<LAST:last_op>_<mode>): ...this.
- (*<SVE_INT_UNARY:optab><mode>2): Rename to...
- (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this.
- (@cond_<SVE_INT_UNARY:optab><mode>): New expander.
- (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern.
- (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise.
- (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders.
- (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern.
- (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise.
- (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to...
- (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this.
- (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander.
- (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to...
- (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this.
- (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns.
- (*aarch64_adr_uxtw_unspec): Likewise.
- (*aarch64_adr_uxtw): Rename to...
- (*aarch64_adr_uxtw_and): ...this.
- (@aarch64_adr<mode>_shift): New expander.
- (*aarch64_adr_shift_sxtw): New pattern.
- (aarch64_<su>abd<mode>_3): Rename to...
- (@aarch64_pred_<su>abd<mode>): ...this.
- (<su>abd<mode>_3): Update accordingly.
- (@aarch64_cond_<su>abd<mode>): New expander.
- (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern.
- (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise.
- (*<su>mul<mode>3_highpart): Rename to...
- (@aarch64_pred_<optab><mode>): ...this.
- (@cond_<MUL_HIGHPART:optab><mode>): New expander.
- (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern.
- (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise.
- (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to...
- (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this.
- (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker.
- (@aarch64_bic<mode>, @cond_bic<mode>): New expanders.
- (*v<ASHIFT:optab><mode>3): Rename to...
- (@aarch64_pred_<ASHIFT:optab><mode>): ...this.
- (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern.
- (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander.
- (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern.
- (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise.
- (@cond_asrd<mode>): New expander.
- (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns.
- (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2.
- (*sdiv_pow2<mode>3): Delete.
- (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander.
- (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern.
- (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise.
- (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern.
- (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise.
- (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to...
- (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this.
- (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern.
- (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker.
- (*add<SVE_F:mode>3): Rename to...
- (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives
- for SVE_STRICT_GP.
- (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern.
- (@cond_<SVE_COND_FCADD:optab><mode>): New expander.
- (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern.
- (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise.
- (*sub<SVE_F:mode>3): Rename to...
- (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives
- for SVE_STRICT_GP.
- (@aarch64_pred_abd<SVE_F:mode>): New expander.
- (*fabd<SVE_F:mode>3): Rename to...
- (*aarch64_pred_abd<SVE_F:mode>): ...this.
- (@aarch64_cond_abd<SVE_F:mode>): New expander.
- (*mul<SVE_F:mode>3): Rename to...
- (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives
- for SVE_STRICT_GP.
- (@aarch64_mul_lane_<SVE_F:mode>): New pattern.
- (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize
- to...
- (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this.
- (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern.
- (*<nlogical><PRED_ALL:mode>3): Rename to...
- (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this.
- (*<nlogical><PRED_ALL:mode>3_cc): New pattern.
- (*<nlogical><PRED_ALL:mode>3_ptest): Likewise.
- (*<logical_nn><PRED_ALL:mode>3): Rename to...
- (aarch64_pred_<logical_nn><mode>_z): ...this.
- (*<logical_nn><PRED_ALL:mode>3_cc): New pattern.
- (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise.
- (*fma<SVE_I:mode>4): Rename to...
- (@aarch64_pred_fma<SVE_I:mode>): ...this.
- (*fnma<SVE_I:mode>4): Rename to...
- (@aarch64_pred_fnma<SVE_I:mode>): ...this.
- (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern.
- (*<SVE_FP_TERNARY:optab><mode>4): Rename to...
- (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this.
- (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker.
- (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern.
- (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise.
- (@cond_<SVE_COND_FCMLA:optab><mode>): New expander.
- (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern.
- (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise.
- (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise.
- (@aarch64_sve_tmad<mode>): Likewise.
- (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker.
- (*aarch64_sel_dup<mode>): Rename to...
- (@aarch64_sel_dup<mode>): ...this.
- (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern.
- (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise.
- (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise.
- (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to...
- (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this.
- (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to.
- (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this.
- (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern.
- (*fcm<cmp_op><mode>): Rename to...
- (@aarch64_pred_fcm<cmp_op><mode>): ...this. Make operand order
- match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
- (*fcmuo<mode>): Rename to...
- (@aarch64_pred_fcmuo<mode>): ...this. Make operand order
- match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
- (@aarch64_pred_fac<cmp_op><mode>): New expander.
- (@vcond_mask_<PRED_ALL:mode><mode>): New pattern.
- (fold_extract_last_<mode>): Generalize to...
- (@fold_extract_<last_op>_<mode>): ...this.
- (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern.
- (*reduc_plus_scal_<SVE_I:mode>): Replace with...
- (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the
- DImode result explicit.
- (reduc_plus_scal_<mode>): Update accordingly.
- (*reduc_<optab>_scal_<SVE_I:mode>): Rename to...
- (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this.
- (*reduc_<optab>_scal_<SVE_F:mode>): Rename to...
- (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this.
- (*aarch64_sve_tbl<mode>): Rename to...
- (@aarch64_sve_tbl<mode>): ...this.
- (@aarch64_sve_compact<mode>): New pattern.
- (*aarch64_sve_dup_lane<mode>): Rename to...
- (@aarch64_sve_dup_lane<mode>): ...this.
- (@aarch64_sve_dupq_lane<mode>): New pattern.
- (@aarch64_sve_splice<mode>): Likewise.
- (aarch64_sve_<perm_insn><mode>): Rename to...
- (@aarch64_sve_<perm_insn><mode>): ...this.
- (*aarch64_sve_ext<mode>): Rename to...
- (@aarch64_sve_ext<mode>): ...this.
- (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker.
- (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename
- to...
- (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this.
- (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
- Rename to...
- (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
- ...this.
- (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander.
- (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise.
- (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern.
- (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename
- to...
- (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this.
- (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add
- a "@" marker.
- (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander.
- (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise.
- (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New
- pattern.
- (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to...
- (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this.
- (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander.
- (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern.
- (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a
- "@" marker.
- (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander.
- (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern.
- (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker.
- (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern.
- (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise.
- (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise.
- (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise.
- (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise.
- (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise.
- (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise.
- (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise.
- (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise.
- (aarch64_sve_cnt_pat): Likewise.
- (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
- (*aarch64_sve_incsi_pat): Likewise.
- (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
- (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
- (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
- (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
- (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
- (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
- (*aarch64_sve_decsi_pat): Likewise.
- (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
- (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
- (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
- (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
- (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
- (@aarch64_pred_cntp<mode>): Likewise.
- (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
- New expander.
- (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
- (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
- (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
- New expander.
- (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
- New pattern.
- (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander.
- (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
- (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander.
- (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
- (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander.
- (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
- (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
- New expander.
- (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
- (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
- (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
- New expander.
- (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
- New pattern.
- (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New
- expander.
- (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
- (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New
- expander.
- (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
- (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New
- expander.
- (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
- * config/aarch64/arm_sve.h: New file.
- * config/aarch64/aarch64-sve-builtins.h: Likewise.
- * config/aarch64/aarch64-sve-builtins.cc: Likewise.
- * config/aarch64/aarch64-sve-builtins.def: Likewise.
- * config/aarch64/aarch64-sve-builtins-base.h: Likewise.
- * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
- * config/aarch64/aarch64-sve-builtins-base.def: Likewise.
- * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
- * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise.
- * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>):
- New pattern.
- * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all
- SVE modes.
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants.
- * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to
- FFRT_REGNUM + 1.
- (FFR_REGS, PR_AND_FFR_REGS): New register classes.
- (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them.
- * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function.
- (aarch64_hard_regno_nregs): Handle the new register classes.
- (aarch64_hard_regno_mode_ok): Likewise.
- (aarch64_regno_regclass): Likewise.
- (aarch64_class_max_nregs): Likewise.
- (aarch64_register_move_cost): Likewise.
- (aarch64_conditional_register_usage): Don't treat FFR and FFRT
- as general register_operands.
-
-2019-10-29 Martin Liska <mliska@suse.cz>
-
- * ggc-common.c: One can't subtract unsigned types
- in compare function.
-
-2019-10-29 Martin Liska <mliska@suse.cz>
-
- * cgraphunit.c (symbol_table::compile): Pass
- title as dump_memory_report argument.
- * toplev.c (dump_memory_report): New argument.
- (finalize): Pass new argument.
- * toplev.h (dump_memory_report): Add argument.
-
-2019-10-29 Martin Liska <mliska@suse.cz>
-
- * ggc-common.c: Move Leak to the first column.
-
-2019-10-29 Martin Liska <mliska@suse.cz>
-
- * cgraphunit.c (symbol_table::compile): Remove argument
- for dump_memory_report.
- * ggc-common.c (dump_ggc_loc_statistics): Likewise.
- (compare_final): Remove in order to make report
- better readable.
- * ggc.h (dump_ggc_loc_statistics): Remove argument.
- * mem-stats.h (mem_alloc_description::get_list):
- Do not pass cmp.
- (mem_alloc_description::dump): Likewise here.
- * toplev.c (dump_memory_report): Remove final
- argument.
- (finalize): Likewise.
- * toplev.h (dump_memory_report): Remove argument.
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p)
- (aarch64_simd_shift_imm_p): Accept scalars as well as vectors.
- * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate)
- (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't
- accept "const".
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * coretypes.h (string_int_pair): New typedef.
- * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define.
- (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it.
- * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook.
-
-2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook.
- (simulate_builtin_function_decl): Declare.
- * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define.
- (LANG_HOOKS_INITIALIZER): Include it.
- * langhooks.c (add_builtin_function_common): Rename to...
- (build_builtin_function): ...this. Add a location parameter and use
- it instead of BUILTINS_LOCATION. Remove the hook parameter and return
- the decl instead.
- (add_builtin_function): Update accordingly, passing the returned
- decl to the lang hook.
- (add_builtin_function_ext_scope): Likewise
- (simulate_builtin_function_decl): New function.
-
-2019-10-29 Jakub Jelinek <jakub@redhat.com>
-
- * doc/install.texi (--enable-offload-targets): Fix up a typo in the
- example, use actual names of supported offload targets.
-
- PR target/92258
- * config/i386/sse.md (iptr): Revert 2019-10-27 change.
-
-2019-10-28 Martin Sebor <msebor@redhat.com>
-
- * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it.
- (handle_store): Pass argument to get_addr_stridx.
-
-2019-10-28 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92226
- * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when
- the offset is in the open range outlined by SI's length.
-
-2019-10-28 Martin Sebor <msebor@redhat.com>
-
- PR c/66970
- * doc/cpp.texi (__has_builtin): Document.
- * doc/extend.texi (__builtin_frob_return_addr): Correct spelling.
-
-2019-10-28 Mihailo Stojanovic <mistojanovic@wavecomp.com>
-
- PR target/82981
- * config/mips/mips.md (<u>mulditi3): Generate patterns for high
- doubleword and low doubleword result of multiplication on
- MIPS64R6.
-
- * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a
- pure qualifier to the built-in.
- (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA
- built-ins.
- (struct mips_builtin_description): Add is_pure flag.
- (mips_init_builtins): Mark built-in as pure if the flag in the
- corresponding mips_builtin_description struct is set.
-
- * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an
- alternative which covers the floating-point input value. Also
- forbid the split of insert.d pattern for floating-point values.
-
-2019-10-28 Andrew Burgess <andrew.burgess@embecosm.com>
-
- * config.gcc: Add riscv-sr.o to extra_objs for riscv.
- * config/riscv/riscv-sr.c: New file.
- * config/riscv/riscv.c (riscv_reorg): New function.
- (TARGET_MACHINE_DEPENDENT_REORG): Define.
- * config/riscv/riscv.h (SIBCALL_REG_P): Define.
- (riscv_remove_unneeded_save_restore_calls): Declare.
- * config/riscv/t-riscv (riscv-sr.o): New build rule.
-
-2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- PR tree-optimization/92163
- * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
- need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
- before calling bitmap_set_bit.
- (dse_optimize_redundant_stores): Pass global need_eh_cleanup to
- delete_dead_or_redundant_assignment.
- (dse_dom_walker::dse_optimize_stmt): Likewise.
- * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.
-
-2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- PR middle-end/91272
- * tree-vect-stmts.c (vectorizable_condition): Support
- EXTRACT_LAST_REDUCTION with fully-masked loops.
-
-2019-10-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92252
- * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust
- STMT_VINFO_REDUC_IDX when swapping operands.
-
-2019-10-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92241
- * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When
- we failed to update the reduction index do not use the pattern
- stmts for the reduction chain.
- (vectorizable_reduction): When the reduction chain is corrupt,
- fail.
- * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we
- fail to update the reduction chain.
-
-2019-10-28 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
- STMT_VINFO_REDUC_IDX from the actual stmt.
- (vect_transform_reduction): Likewise.
- (vectorizable_reduction): Compute the reduction chain length,
- do not recompute the reduction operand index. Remove no longer
- necessary restriction for condition reduction chains.
-
-2019-10-28 UroÃ
¡ Bizjak <ubizjak@gmail.com>
-
- PR target/92225
- * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
- condition for V2DImode.
-
-2019-10-28 UroÃ
¡ Bizjak <ubizjak@gmail.com>
-
- * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2):
- Remove %k operand modifier.
- (*vec_extractv2df_1_sse): Remove %q operand modifier.
-
-2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR rtl-optimization/92007
- * cfgcleanup.c (thread_jump): Add an assertion that we don't
- call it after reload if hot/cold partitioning has been done.
- (class pass_postreload_jump): Rename to
- pass_jump_after_combine.
- (make_pass_postreload_jump): Rename to
- make_pass_jump_after_combine.
- * passes.def(pass_postreload_jump): Move before reload, rename
- to pass_jump_after_combine.
- * tree-pass.h (make_pass_postreload_jump): Rename to
- make_pass_jump_after_combine.
-
-2019-10-25 Jan Hubicka <hubicka@ucw.cz>
-
- PR ipa/92242
- * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
- for missing EDGE_REF
- * ipa-prop.c (update_jump_functions_after_inlining): Likewise.
-
-2019-10-25 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR tree-optimization/88760
- * config/rs6000/rs6000-common.c (rs6000_option_optimization_table):
- Enable -funroll-loops for -O2 and above.
- * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
- PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and
- do not turn on web and rngreg implicitly, if the unroller is not
- explicitly enabled.
-
-2019-10-27 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove
- jump functions.
-
-2019-10-27 Eric Botcazou <ebotcazou@adacore.com>
-
- * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment.
- * cgraph.h (cgraph_node::rtl_info): Likewise.
-
-2019-10-27 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-cp.c (propagate_constants_across_call): If args are not available
- just drop everything to varying.
- (find_aggregate_values_for_callers_subset): Watch for missing
- edge summary.
- (find_more_scalar_values_for_callers_subs): Likewise.
- * ipa-prop.c (ipa_compute_jump_functions_for_edge,
- update_jump_functions_after_inlining, propagate_controlled_uses):
- Watch for missing summaries.
- (ipa_propagate_indirect_call_infos): Remove summary after propagation
- is finished.
- (ipa_write_node_info): Watch for missing summaries.
- (ipa_read_edge_info): Create new ref.
- (ipa_edge_args_sum_t): Add remove.
- (IPA_EDGE_REF_GET_CREATE): New macro.
- * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing
- edge summary.
- (remap_edge_change_prob): Likewise.
-
-2019-10-27 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline-transform.c (inline_call): update function summaries
- after expanidng thunk.
-
-2019-10-27 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-icf.c (sem_function::merge): Update function summaries.
- * ipa-prop.h (ipa_get_param): Do not sanity check for WPA.
-
-2019-10-27 Hongtao Liu <hongtao.liu@intel.com>
-
- * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3,
- <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since
- operand already has scalar mode.
- (iptr): Remove SF/DF.
-
-2019-10-26 Segher Boessenkool <segher@kernel.crashing.org>
-
- PR target/91289
- * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add
- an immediate to r0; use r11 instead. Save and restore r11 to r0 around
- this.
-
-2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
-
- * config/i386/sse.md
- (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
- <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
- <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
- <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
- <sse>_vmmaskcmp<mode>3):
- Change predicates from vector_operand to nonimmediate_operand,
- constraints xBm to xm, since scalar operations don't need
- memory address alignment.
- (avx512f_vmcmp<mode>3<round_saeonly_name>,
- avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
- round_saeonly_nimm_predicate with
- round_saeonly_nimm_scalar_predicate.
- (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
- fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
- *fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
- *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
- avx512f_vmfmadd_<mode>_mask3<round_name>,
- avx512f_vmfmadd_<mode>_maskz_1<round_name>,
- *avx512f_vmfmsub_<mode>_mask<round_name>,
- avx512f_vmfmsub_<mode>_mask3<round_name>,
- *avx512f_vmfmsub_<mode>_maskz_1<round_name>,
- *avx512f_vmfnmadd_<mode>_mask<round_name>,
- *avx512f_vmfnmadd_<mode>_mask3<round_name>,
- *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
- *avx512f_vmfnmsub_<mode>_mask<round_name>,
- *avx512f_vmfnmsub_<mode>_mask3<round_name>,
- *avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
- cvtusi2<ssescalarmodesuffix>32<round_name>,
- cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
- round_nimm_predicate with round_nimm_scalr_predicate.
- (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
- avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
- avx512er_vmrcp28<mode><round_saeonly_name>,
- avx512er_vmrsqrt28<mode><round_saeonly_name>,
- ): Replace round_saeonly_nimm_predicate with
- round_saeonly_nimm_scalar_predicate.
- (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
- vector_operand with nonimmediate_operand.
- * config/i386/subst.md (round_scalar_nimm_predicate,
- round_saeonly_scalar_nimm_predicate): Replace
- vector_operand with nonimmediate_operand.
-
-2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
-
- PR target/89071
- * config/i386/i386.md (*rcpsf2_sse): Add
- avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
- (*rsqrtsf2_sse): Ditto.
- (*sqrt<mode>2_sse): Ditto.
- (sse4_1_round<mode>2): separate constraint vm, add
- avx_partail_xmm_update, prefer m constraint for TARGET_AVX.
- * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used
- by pass rpad.
- (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*):
- Ditto.
- (*sse_vmrsqrtv4sf2): Ditto.
- (*avx512f_rndscale<mode><round_saeonly_name>): Ditto.
- (*sse4_1_round<ssescalarmodesuffix>): Ditto.
- (sse4_1_round<ssescalarmodesuffix>): Add m constraint and
- <iptr> pointer size modifier since vround support memory operand.
-
-2019-10-18 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/85969
- * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused
- static function.
-
-2019-10-25 Cesar Philippidis <cesar@codesourcery.com>
- Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.c (oacc_default_clause): Privatize fortran common blocks.
- (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for
- common block decls.
-
-2019-10-25 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92222
- * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
- (_slp_oprnd_info::second_pattern): Likewise.
- (_slp_oprnd_info::any_pattern): New.
- (vect_create_oprnd_info): Adjust.
- (vect_get_and_check_slp_defs): Compute whether any stmt is
- in a pattern.
- (vect_build_slp_tree_2): Avoid building up a node from scalars
- if any of the operand defs, not just the first, is in a pattern.
-
-2019-10-25 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail
- swapping if we actually have to modify the IL on a shared stmt.
- (vect_build_slp_tree_2): Never fail swapping on shared stmts
- because we no longer modify the IL.
-
-2019-10-25 Martin Liska <mliska@suse.cz>
-
- * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'.
-
-2019-10-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop.c (vectorizable_reduction): Restrict the
- LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be
- handled by vect_transform_reduction. Allow fully-masked loops
- to be used with reduction chains.
- * tree-vect-stmts.c (vectorizable_operation): Handle reduction
- operations in fully-masked loops.
- (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION
- operations in fully-masked loops.
-
-2019-10-25 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (vectorizable_reduction): Verify
- STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up
- correctly.
- * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer
- STMT_VINFO_REDUC_IDX from the original stmts to the pattern
- stmts.
-
-2019-10-24 Jakub Jelinek <jakub@redhat.com>
-
- * gimplify.h (omp_construct_selector_matches): Declare.
- * gimplify.c (struct gimplify_omp_ctx): Add code member.
- (gimplify_call_expr): Call omp_resolve_declare_variant and remap
- called function if needed for flag_openmp.
- (gimplify_scan_omp_clauses): Set ctx->code.
- (omp_construct_selector_matches): New function.
- * omp-general.h (omp_constructor_traits_to_codes,
- omp_context_selector_matches, omp_resolve_declare_variant): Declare.
- * omp-general.c (omp_constructor_traits_to_codes,
- omp_context_selector_matches, omp_resolve_declare_variant): New
- functions.
-
- * config/arc/arc.c (hwloop_optimize): Add missing space in string
- literal.
- * config/rx/rx.c (rx_print_operand): Likewise.
- * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
- * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
- * ipa-sra.c (create_parameter_descriptors, process_scan_results):
- Likewise.
- * genemit.c (emit_c_code): Likewise.
- * plugin.c (try_init_one_plugin): Likewise. Formatting fix.
-
-2019-10-24 Jan Hubicka <hubicka@ucw.cz>
-
- * symbols-summary.h (fast_function_summary<T *, V>::release,
- fast_call_summary<T *, V>::release): Free m_vector.
-
-2019-10-24 Jan Hubicka <hubicka@ucw.cz>
-
- * cgraphunit.c (symbol_table::process_new_functions): Call
- ipa_free_size_summary.
- * ipa-cp.c (ipcp_cloning_candidate_p): Update.
- (devirtualization_time_bonus): Update.
- (ipcp_propagate_stage): Update.
- * ipa-fnsummary.c (ipa_size_summaries): New.
- (ipa_fn_summary_alloc): Alloc size summary.
- (dump_ipa_call_summary): Update.
- (ipa_dump_fn_summary): Update.
- (analyze_function_body): Update.
- (compute_fn_summary): Likewise.
- (ipa_get_stack_frame_offset): New function.
- (inline_update_callee_summaries): Do not update frame offsets.
- (ipa_merge_fn_summary_after_inlining): Update frame offsets here;
- remove call and function summary.
- (ipa_update_overall_fn_summary): Update.
- (inline_read_section): Update.
- (ipa_fn_summary_write): Update.
- (ipa_free_fn_summary): Do not remove summaries.
- (ipa_free_size_summary): New.
- (release summary pass): Also run at WPA.
- * ipa-fnsummary.h (ipa_size_summary): Declare.
- (ipa_fn_summary): Remove size, self_size, stack_frame_offset,
- estimated_self_stack_size.
- (ipa_size_summary_t): New type.
- (ipa_size_summaries): Declare.
- (ipa_free_size_summary): Declare.
- (ipa_get_stack_frame_offset): Declare.
- * ipa-icf.c (sem_function::merge): Update.
- * ipa-inline-analysis.c (estimate_size_after_inlining): Update.
- (estimate_growth): Update.
- (growth_likely_positive): Update.
- (clone_inlined_nodes): Update.
- (inline_call): Update.
- * ipa-inline.c (caller_growth_limits): Update.
- (edge_badness): Update.
- (recursive_inlining): Update.
- (inline_small_functions): Update.
- (inline_to_all_callers_1): Update.
- * ipa-prop.h (ipa_edge_args_sum_t): Update comment.
-
-2019-10-24 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
- (uavg<mode>3_ceil): ... This.
- (altivec_vavgs<VI_char>): Rename to...
- (avg<mode>3_ceil): ... This.
- * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
- VAVGUW, VAVGSW): Adjust.
-
-2019-10-24 Nathan Sidwell <nathan@acm.org>
-
- * dumpfile.c (dump_begin): Reorder decls to use RAII.
-
-2019-10-24 Martin Liska <mliska@suse.cz>
-
- * symbol-summary.h (gt_pch_nx): Mark all functions
- with gcc_unreachable as we do not expect to be called.
-
-2019-10-24 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction
- chains try harder with operand swapping and instead of
- putting a shifted chain into the reduction operands put
- a repetition of the final reduction op there as if we'd
- reassociate the expression.
-
-2019-10-24 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-reference.c (ipa_reference_optimization_summary_d): Rename
- statics_not_read and statics_not_written to statics_read and
- statics_written respectively.
- (no_module_statics): New static var.
- (ipa_reference_get_not_read_global): Rename to ...
- (ipa_reference_get_read_global): ... this.
- (ipa_reference_get_not_written_global): Rename to ...
- (ipa_reference_get_written_global): ... this.
- (dump_static_vars_set_to_file): Dump no_module_statics.
- (copy_static_var_set): Add for propagation parameter.
- (ipa_init): Initialize no_module_statics.
- (ipa_ref_opt_summary_t::duplicate): Update.
- (ipa_ref_opt_summary_t::remove): Update.
- (propagate): Update.
- (write_node_summary_p): Look correctly for bitmap differences.
- (ipa_reference_write_optimization_summary): Update.
- (ipa_reference_read_optimization_summary): Update.
- * ipa-reference.h
- (ipa_reference_get_not_read_global): Rename to ...
- (ipa_reference_get_read_global): ... this.
- (ipa_reference_get_not_written_global): Rename to ...
- (ipa_reference_get_written_global): ... this.
- * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update.
- (call_may_clobber_ref_p_1): Update.
-
-2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove
- and add comment.
- (msp430_hard_regno_nregs_with_padding): Remove.
-
-2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/constraints.md: Allow post_inc for "Ya" constraint.
- * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant
- shift amount is between 1 and 4.
- (430x_arithmetic_shift_right): Use RRAM when the constant shift amount
- is between 1 and 4.
-
-2019-10-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92205
- * tree-vect-loop.c (vectorizable_reduction): Restrict
- search for alternate vectype_in to lane-reducing patterns
- we support.
-
-2019-10-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92203
- * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
- Skip eliminating conversion stmts inserted by insertion.
-
-2019-10-24 Ilya Leoshkevich <iii@linux.ibm.com>
-
- * config/s390/s390.c (s390_get_thread_pointer): Use
- gen_get_thread_pointer.
- (s390_expand_split_stack_prologue): Likewise.
- * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC.
- (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP.
- (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP.
- (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use
- parameterized name.
-
-2019-10-24 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.c (vect_analyze_slp): When reduction group
- SLP discovery fails try to handle the reduction as part
- of SLP reduction discovery.
-
-2019-10-23 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New
- declaration.
- * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn
- attribute if it exists, rather than the insn size. If we use the
- insn size, adjust the size to remove the extra size that prefixed
- instructions take.
- (rs6000_adjust_insn_length): New function.
- * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to
- update the instruction sized if prefixed instructions are used.
- * config/rs6000/rs6000.md (prefixed_length attribute): Delete.
- (non_prefixed_length attribute): Delete.
- (num_insns attribute): New insn attribute to return the number of
- instructions.
- (max_prefixed_insns attribute): New insn attribute to return the
- maximum number of prefixed instructions in an insn.
- (length attribute): Do not adjust for prefix instructions here,
- punt to ADJUST_INSN_LENGTH.
- (mov<mode>_64bit): Set max_prefixed_insns and num_insns.
- (movtd_64bit_nodm): Set max_prefixed_insns and num_insns.
- (mov<mode>_ppc64): Set max_prefixed_insns and num_insns.
- * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set
- max_prefixed_insns and num_insns.
-
- * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat.
- (movtd_64bit_nodm): Reformat.
- (mov<mode>_32bit): Reformat.
- (mov<mode>_softfloat): Reformat.
- (FMOVE128_GPR splitter): Reformat.
- (DIFD splitter): Reformat.
- (TI2 splitter): Reformat.
- * config/rs6000/predicates.md (lwa_operand): If the bottom two
- bits of the offset for the memory address are non-zero, use PLWA
- if prefixed instructions are available.
-
-2019-10-23 Jan Hubicka <hubicka@ucw.cz>
-
- * lto-streamer-out.c (cmp_symbol_files): Watch for overflow.
-
-2019-10-23 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix
- previous patch.
-
-2019-10-23 Jan Hubicka <hubicka@ucw.cz>
-
- * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar.
- (cmp_symbol_files): New.
- (lto_output): Copy sections in file order.
- * lto-streamer.h (lto_file_decl_data): Add field order.
-
-2019-10-23 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-reference.h (ipa_reference_var_uid): Move offline.
- * ipa-reference.c (reference_vars_map_t): new type.
- (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars.
- (ipa_reference_var_uid): Implement.
- (varpool_node_hooks): New static var.
- (varpool_removal_hook): New function.
- (is_improper): Do not check bitmap for id==-1
- (get_static_name): Update.
- (ipa_init): Initialize new datastructures.
- (analyze_function): Do not recompute ids.
- (propagate): Free reference_vars_to_consider.
- (stream_out_bitmap): Update.
- (ipa_reference_read_optimization_summary): Update.
-
-2019-10-23 qing zhao <qing.zhao@oracle.com>
-
- PR gcov-profile/91971
- * coverage.c (coverage_init): Mangle the full path of filename when
- filename is a absolute path.
-
-2019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430-protos.h (msp430_has_hwmult): New.
- * config/msp430/msp430.c (msp430_no_hwmult): Remove.
- (msp430_has_hwmult): New.
- (msp430_output_labelref):
- s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/
- * config/msp430/msp430.md (mulhisi3): Likewise.
- (umulhisi3): Likewise.
- (mulsidi3): Likewise.
- (umulsidi3): Likewise.
-
-2019-10-23 Jan Hubicka <hubicka@ucw.cz>
-
- PR ipa/92074
- * params.def (inline-heuristics-hint-percent): Set to 600.
-
-2019-10-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/65930
- * tree-vect-loop.c (check_reduction_path): Allow conversions
- that only change the sign.
- (vectorizable_reduction): Relax latch def stmts we handle further.
-
-2019-10-23 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/90231
- * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function.
- (remove_unused_ivs): Use it instead of get_computation_at. When
- choosing best candidate, only consider candidates where
- get_debug_computation_at actually returns non-NULL.
-
-2019-10-23 Eric Botcazou <ebotcazou@adacore.com>
-
- PR tree-optimization/92131
- * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
- range would be symbolic, drop to varying for any explicit overflow
- in the constant part or if neither range is a singleton.
-
-2019-10-23 Martin Liska <mliska@suse.cz>
-
- PR middle-end/81669
- * fibonacci_heap.h (fibonacci_node::fibonacci_node):
- Initialize m_data.
-
-2019-10-23 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use
- int_mode_for_mode rather than mode_for_int_vector for scalars.
-
-2019-10-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92179
- * tree-vect-stmts.c (vectorizable_shift): For shift args
- that are all the same remove type restriction in the SLP case.
- Adjust SLP code to handle converting of the shift arg to
- only apply in case the modes are different.
-
-2019-10-23 Martin Liska <mliska@suse.cz>
-
- PR ipa/91969
- * ipa-inline.c (recursive_inlining): Do not print
- when curr->count is not initialized.
-
-2019-10-23 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
- op from scalars in case there's a constant operand in its
- definition.
-
-2019-10-23 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
- against out of range max skip or log values.
-
-2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br>
-
- * cgraph.c (dump_graphviz): Change name to dump_name
-
-2019-10-22 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (rsbsi_carryin_reg): New pattern.
- * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
- subtraction from a carry operation.
-
-2019-10-22 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode.
-
-2019-10-22 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92173
- * tree-vect-loop.c (vectorizable_reduction): If
- vect_transform_reduction cannot handle code-generation try without
- the single-def-use-cycle optimization. Pass optab_vector to
- optab_for_tree_code to get vector shifts as that's what we'd
- generate.
-
-2019-10-22 Michael Matz <matz@suse.de>
-
- PR middle-end/90796
- * gimple-loop-jam.c (any_access_function_variant_p): New function.
- (adjust_unroll_factor): Use it to constrain safety, new parameter.
- (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.
-
-2019-10-22 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92173
- * tree-vect-loop.c (vectorizable_reduction): If
- vect_transform_reduction cannot handle code-generation try without
- the single-def-use-cycle optimization. Pass optab_vector to
- optab_for_tree_code to get vector shifts as that's what we'd
- generate.
-
-2019-10-22 Martin Liska <mliska@suse.cz>
-
- * diagnostic-format-json.cc (json_from_expanded_location):
- Use json::integer_number.
- * gcov.c (output_intermediate_json_line): Use new
- json::integer_number.
- (output_json_intermediate_file): Likewise.
- * json.cc (number::print): Move to ...
- (float_number::print): ... this.
- (integer_number::print): New.
- (test_writing_numbers): Move to ...
- (test_writing_float_numbers): ... this.
- (test_writing_integer_numbers): New.
- (json_cc_tests): Register test_writing_integer_numbers.
- * json.h (class value): Add forward declaration
- for float_number and integer_number.
- (enum kind): Add JSON_INTEGER and JSON_FLOAT.
- (class number): Move to ...
- (class float_number): ... this.
- (class integer_number): New.
- * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json):
- Use json::integer_number.
- (optrecord_json_writer::location_to_json): Likewise.
- (optrecord_json_writer::profile_count_to_json): Likewise.
- (optrecord_json_writer::pass_to_json): Likewise.
-
-2019-10-22 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-slp.c (vect_slp_bb_region): Check whether
- autodetected_vector_size rather than vector_size is zero.
- * tree-vect-loop.c (vect_analyze_loop): Likewise.
- Set autodetected_vector_size immediately after calling
- vect_analyze_loop_2. Check for a fatal error before advancing
- next_size.
-
-2019-10-21 Jason Merrill <jason@redhat.com>
-
- * lock-and-run.sh: Check for process existence rather than timeout.
-
-2019-10-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
- widening multiplication.
-
-2019-10-21 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/iterators.md (t2_binop0): Fix typo in comment.
- * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the
- type attribute.
- (subsi3_carryin_shift): Separate into register and constant controlled
- alternatives. Use shift_amount_operand for operand 4. Set shift
- attribute and simplify type attribute.
- (subsi3_carryin_shift_alt): Likewise.
- (rsbsi3_carryin_shift): Likewise.
- (rsbsi3_carryin_shift_alt): Likewise.
- (andsi_not_shiftsi_si): Enable for TARGET_32BIT. Separate constant
- and register controlled shifts into distinct alternatives.
- (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
- (andsi_not_shiftsi_si_scc): Likewise.
- (arm_cmpsi_negshiftsi_si): Likewise.
- (not_shiftsi): Remove redundant M constraint from alternative 1.
- (not_shiftsi_compare0): Likewise.
- (arm_cmpsi_insn): Remove redundant alternative 2.
- (cmpsi_shift_swp): Likewise.
- (sub_shiftsi): Likewise.
- (sub_shiftsi_compare0_scratch): Likewise.
- * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern.
- (thumb2_cmpsi_neg_shiftsi): Likewise.
-
-2019-10-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92162
- * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup
- STMT_VINFO_REDUC_IDX in reduc_info.
- * tree-vect-stmts.c (vectorizable_condition): Likewise.
-
-2019-10-21 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (_slp_tree::ops): New member.
- (SLP_TREE_SCALAR_OPS): New.
- (vect_get_slp_defs): Adjust prototype.
- * tree-vect-slp.c (vect_free_slp_tree): Release
- SLP_TREE_SCALAR_OPS.
- (vect_create_new_slp_node): Initialize it. New overload for
- initializing by an operands array.
- (_slp_oprnd_info::ops): New member.
- (vect_create_oprnd_info): Initialize it.
- (vect_free_oprnd_info): Release it.
- (vect_get_and_check_slp_defs): Populate the operands array.
- Do not swap operands in the IL when not necessary.
- (vect_build_slp_tree_2): Build SLP nodes for invariant operands.
- Record SLP_TREE_SCALAR_OPS for all invariant nodes. Also
- swap operands in the operands array. Do not swap operands in
- the IL.
- (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well.
- (vect_gather_slp_loads): Fix.
- (vect_detect_hybrid_slp_stmts): Likewise.
- (vect_slp_analyze_node_operations_1): Search for a internal
- def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS.
- (vect_slp_analyze_node_operations): Skip ops-only stmts for
- the def-type push/pop dance.
- (vect_get_constant_vectors): Compute number_of_vectors here.
- Use SLP_TREE_SCALAR_OPS and simplify greatly.
- (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs.
- (vect_get_slp_defs): Simplify greatly.
- * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify.
- (vect_transform_reduction): Likewise.
- * tree-vect-stmts.c (vect_get_vec_defs): Simplify.
- (vectorizable_call): Likewise.
- (vectorizable_operation): Likewise.
- (vectorizable_load): Likewise.
- (vectorizable_condition): Likewise.
- (vectorizable_comparison): Likewise.
-
-2019-10-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92161
- * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type
- for reductions.
-
-2019-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define.
- (aarch64_rndr): New define_insn.
- (aarch64_rndrrs): Likewise.
- * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
- (TARGET_RNG): Likewise.
- * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE
- argument.
- * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin):
- Add fourth argument in prototype.
- * config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
- Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
- (aarch64_init_rng_builtins): Define.
- (aarch64_general_init_builtins): Call aarch64_init_rng_builtins.
- (aarch64_expand_rng_builtin): Define.
- (aarch64_general_expand_builtin): Use IGNORE argument, handle
- RNG builtins.
- * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
- __ARM_FEATURE_RNG when TARGET_RNG.
- * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.
-
-2019-10-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-stmts (ensure_base_align): Only change alignment if new
- alignment is more restrictive.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vec_info::vector_size): New member variable.
- (vect_update_max_nunits): Update comment.
- (current_vector_size): Delete.
- * tree-vect-stmts.c (current_vector_size): Likewise.
- (get_vectype_for_scalar_type): Use vec_info::vector_size instead
- of current_vector_size.
- (get_mask_type_for_scalar_type): Likewise.
- * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
- * tree-vect-loop.c (vect_update_vf_for_slp): Likewise.
- (vect_analyze_loop, vect_halve_mask_nunits): Likewise.
- (vect_double_mask_nunits, vect_transform_loop): Likewise.
- * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
- (vect_make_slp_decision, vect_slp_bb_region): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info.
- * tree-vect-loop.c (vect_double_mask_nunits): Likewise.
- * tree-vect-stmts.c (supportable_narrowing_operation): Update call
- accordingly.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info.
- * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
- * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update
- call accordingly.
- * tree-vect-stmts.c (supportable_widening_operation): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take
- a loop_vec_info.
- (vect_set_loop_condition_masked): Update call accordingly.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info.
- * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
- (simple_integer_narrowing): Update call accordingly.
- (vectorizable_conversion): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info.
- (vectorizable_call): Update call accordingly.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info.
- * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
- (duplicate_and_interleave): Update call accordingly.
- * tree-vect-loop.c (vectorizable_reduction): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info.
- * tree-vect-slp.c (duplicate_and_interleave): Likewise.
- (vect_get_constant_vectors): Update call accordingly.
- * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info.
- * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
- (vect_prologue_cost_for_slp_op): Update call accordingly.
- (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops)
- (vect_get_strided_load_store_ops, vectorizable_simd_clone_call)
- (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison)
- (get_mask_type_for_scalar_type): Likewise.
- (vect_get_vector_types_for_stmt): Likewise.
- * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
- * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
- (get_initial_def_for_reduction, build_vect_cond_expr): Likewise.
- * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise.
- (vect_split_statement, vect_convert_input): Likewise.
- (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise.
- (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise.
- (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
- (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
- (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise.
- (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern)
- (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern)
- (search_type_for_mask_1, vect_recog_bool_pattern): Likewise.
- (vect_recog_mask_conversion_pattern): Likewise.
- (vect_add_conversion_to_pattern): Likewise.
- (vect_recog_gather_scatter_pattern): Likewise.
- * tree-vect-slp.c (vect_build_slp_tree_2): Likewise.
- (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info.
- * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
- (vect_check_load_store_mask): Update call accordingly.
- (vect_get_mask_type_for_stmt): Likewise.
- * tree-vect-patterns.c (check_bool_pattern): Likewise.
- (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise.
- (vect_convert_mask_for_vectype): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take
- a vec_info.
- (vect_recog_dot_prod_pattern): Update call accordingly.
- (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise.
- (vect_recog_widen_sum_pattern): Likewise.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.h (vect_supportable_shift): Take a vec_info.
- * tree-vect-stmts.c (vect_supportable_shift): Likewise.
- * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call
- accordingly.
-
-2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vectorizer.c (get_vec_alignment_for_array_type): Use
- get_vectype_for_scalar_type_and_size instead of
- get_vectype_for_scalar_type.
-
-2019-10-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * common.opt (-fcommon): Fix description.
-
-2019-10-20 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386-protos.h (ix86_pre_reload_split): Declare.
- * config/i386/i386.c (ix86_pre_reload_split): New function.
- * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq,
- *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq,
- *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0,
- *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword,
- *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask,
- *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1,
- *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1,
- *<shift_insn><dwi>3_doubleword_mask,
- *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask,
- *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1,
- *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1,
- *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>,
- *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword):
- Use ix86_pre_reload_split instead of can_create_pseudo_p in condition.
- * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2,
- *avx2_<code>v8qiv8si2<mask_name>_2,
- *sse4_1_<code>v4qiv4si2<mask_name>_2,
- *sse4_1_<code>v4hiv4si2<mask_name>_2,
- *avx512f_<code>v8qiv8di2<mask_name>_2,
- *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2,
- *sse4_1_<code>v2hiv2di2<mask_name>_2,
- *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr,
- sse4_2_pcmpistr): Likewise.
-
-2019-10-20 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info
- now defaults to https.
-
-2019-10-20 Jan Hubicka <hubicka@ucw.cz>
-
- * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not
- skip non-zero array accesses.
-
-2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info
- and return a boolean success value. Move the allocation and
- initialization of the bb_vec_info to...
- (vect_slp_bb_region): ...here. Update call accordingly.
- (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather
- than in vect_slp_analyze_bb_1.
-
-2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs
- when processing the given datarefs for the first time and
- check_datarefs subsequently.
- (vect_slp_bb_region): New function, split out of...
- (vect_slp_bb): ...here. Don't recompute the region bounds and
- dataref sets when retrying with a different vector size.
-
-2019-10-19 Jakub Jelinek <jakub@redhat.com>
- UroÃ
¡ Bizjak <ubizjak@gmail.com>
-
- PR target/92140
- * config/i386/predicates.md (int_nonimmediate_operand): New special
- predicate.
- * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne,
- *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne,
- *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New
- define_insn_and_split patterns.
-
-2019-10-19 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/rs6000/rs6000.md: Delete out--of-date comment about
- special-casing integer loads.
-
-2019-10-19 JeanHeyd Meneide <phdofthehouse@gmail.com>
-
- * escaped_string.h (escaped_string): New header.
- * tree.c (escaped_string): Remove escaped_string class.
-
-2019-10-18 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/92157
- * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for
- compute_string_length to return a negative result.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule.
- (negvsi3, negvdi3): Delete.
- (negdi2_compare): Delete.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit
- operations.
- (subdi3_compare1): Delete pattern.
- (subvsi3_borrow): New insn pattern.
- (subvsi3_borrow_imm): Likewise.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (subv<mode>4): Delete.
- (subvdi4): New expander pattern.
- (subvsi4): Likewise. Handle some immediate values.
- (subvsi3_intmin): New insn pattern.
- (subvsi3): Likewise.
- (subvsi3_imm1): Likewise.
- * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V
- idioms.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (usubvdi4): Allow registers or integers for
- incoming operands. Early split the calculation into SImode
- operations.
- (usubvsi3_borrow): New insn pattern.
- (usubvsi3_borrow_imm): Likewise.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (usubv<mode>4): Delete expansion.
- (usubvsi4): New pattern. Allow some immediate values for inputs.
- (usubvdi4): New pattern.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (arm_select_cc_mode): Allow either the first
- or second operand of the PLUS inside a DImode equality test to be
- sign-extend when selecting CC_Vmode.
- * config/arm/arm.md (addvdi4): Early-split the operation into SImode
- instructions.
- (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New
- expand patterns.
- (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns.
- (addsi3_cin_vout_0): Likewise.
- (adddi3_compareV): Delete.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn.
- (addsi3_compareV_imm_nosum): New insn. Also add peephole2 patterns
- to transform this back into the summation version when that leads
- to smaller code.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (addv<mode>4): Delete.
- (addvsi4): New pattern. Handle immediate values that the architecture
- supports.
- (addvdi4): New pattern.
- (addsi3_compareV): Rename to ...
- (addsi3_compareV_reg): ... this. Add constraints for thumb2 variants
- and use COMPARE rather than NE.
- (addsi3_compareV_imm): New pattern.
- * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for
- a signed-overflow check.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm-modes.def (CC_ADC): New CC mode.
- * config/arm/arm.c (arm_select_cc_mode): Detect selection of
- CC_ADCmode.
- (maybe_get_arm_condition_code): Handle CC_ADCmode.
- * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition
- with overflow.
- (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New
- expand patterns.
- (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns
- (addsi3_cin_cout_imm_insn): Likewise.
- (adddi3_compareC): Delete insn.
- * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1.
- * (uaddv<mode>4): Delete expansion pattern.
- (uaddvsi4): New pattern.
- (uaddvdi4): Likewise.
- (addsi3_compareC): Delete pattern, change callers to use
- addsi3_compare_op1.
- (addsi3_compare_op1): No-longer anonymous. Clean up constraints to
- reduce the number of alternatives and re-work type attribute handling.
- (addsi3_compare_op2): Clean up constraints to reduce the number of
- alternatives and re-work type attribute handling.
- (compare_addsi2_op0): Likewise.
- (compare_addsi2_op1): Likewise.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes.
- * config/arm/arm.c (arm_select_cc_mode): Remove old selection code
- for DImode operands.
- (arm_gen_dicompare_reg): Remove unreachable expansion code.
- (maybe_get_arm_condition_code): Remove support for CC_CZmode and
- CC_NCVmode.
- * config/arm/arm.md (arm_cmpdi_insn): Delete.
- (arm_cmpdi_unsigned): Delete.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function.
- (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant
- unchanged only if that will be cheaper.
- (arm_select_cc_mode): Recognize a swapped comparison that will
- be regenerated using RSBS or RSCS. Relax restriction on selecting
- CC_RSBmode.
- (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against
- a constant.
- (arm_gen_compare_reg): Handle compare (CONST, X) when the mode
- is CC_RSBmode.
- (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes
- as CCmode.
- * config/arm/arm.md (rsb_imm_compare_scratch): New pattern.
- (rscsi3_<CC_EXTEND>out_scratch): New pattern.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes.
- * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that
- need these modes.
- (arm_gen_dicompare_reg): New code to early expand the sub-operations
- of EQ, NE, LT, GE, LTU and GEU.
- * config/arm/iterators.md (CC_EXTEND): New code attribute.
- * config/arm/predicates.md (arm_adcimm_operand): New predicate..
- * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern.
- (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise.
- (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for
- operand 2.
- (cstoredi4): Similarly, but for operand 3.
- * config/arm/arm.c (arm_canoncialize_comparison): Allow
- canonicalization of unsigned compares with a constant on Arm.
- Prefer using const+1 and adjusting the comparison over swapping the
- operands whenever the original constant was not valid.
- (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a
- register here.
- (arm_validize_comparison): Do not force invalid DImode operands to
- registers here.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests
- return CC_Zmode if comparing against a constant where one word is
- zero.
- (arm_gen_compare_reg): Split DImode handling to ...
- (arm_gen_dicompare_reg): ... here. Handle equality comparisons
- against simple constants.
- * config/arm/arm.md (arm_cmpdi_zero): Delete pattern.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern.
- (rsbsi3_carryin_shift_alt): Likewise.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (negscc_borrow): New pattern.
- (mov_negscc): Don't split if the insn would match negscc_borrow.
- * config/arm/thumb2.md (thumb2_mov_negscc): Likewise.
- (thumb2_mov_negscc_strict_it): Likewise.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (arm_insn_cost): New function.
- (TARGET_INSN_COST): Override default definition.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
- borrow operations.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (strip_carry_operation): New function.
- (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in
- for SImode.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/predicates.md (arm_carry_operation): New special
- predicate.
- * config/arm/iterators.md (LTUGEU): Delete iterator.
- (cnb): Delete code attribute.
- (optab): Delete ltu and geu elements.
- * config/arm/arm.md (addsi3_carryin): Renamed from
- addsi3_carryin_<optab>. Remove iterator and use arm_carry_operand.
- (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>.
- (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>.
- (addsi3_carryin_clobercc): Similarly.
- (addsi3_carryin_shift): Similarly. Do not allow register shifts in
- Thumb2 state.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (arm_subdi3): Delete insn.
- (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm-modes.def (CC_RSB): New CC mode.
- * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode.
- * config/arm/arm.c (arm_select_cc_mode): Detect when we should
- return CC_RSBmode.
- (maybe_get_arm_condition_code): Handle CC_RSBmode.
- * config/arm/arm.md (subsi3_carryin): Make this pattern available to
- expand.
- (subdi3): Rewrite to early-expand the sub-operations.
- (rsb_im_compare): New pattern.
- (negdi2): Delete.
- (negdi2_insn): Delete.
- (arm_negsi2): Correct type attribute to alu_imm.
- (negsi2_0compare): New insn pattern.
- (negsi2_carryin): New insn pattern.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
- operand 2.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands
- to match canonical form.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand.
- (extend<mode>di2): Likewise.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype.
- * config/arm/arm.c (arm_decompose_di_binop): New function.
- * config/arm/arm.md (adddi3): Also accept any const_int for op2.
- If not generating Thumb-1 code, decompose the operation into 32-bit
- pieces.
- * add0si_carryin_<optab>: New pattern.
-
-2019-10-18 Richard Earnshaw <rearnsha@arm.com>
-
- * arm.md (adddi3): Only accept register operands.
- (arm_adddi3): Convert to simple insn with no split. Do not accept
- constants.
- (adddi_sesidi_di): Delete patern.
- (adddi_zesidi_di): Likewise.
- (uaddv<mode>4): Use LTU as condition for branch.
- (adddi3_compareV): Convert to simple insn with no split.
- (addsi3_compareV_upper): Delete pattern.
- (adddi3_compareC): Convert to simple insn with no split. Correct
- flags setting expression.
- (addsi3_compareC_upper): Delete pattern.
- (addsi3_compareC): Correct flags setting expression.
- (subdi3_compare1): Convert to simple insn with no split.
- (subsi3_carryin_compare): Delete pattern.
- (arm_subdi3): Convert to simple insn with no split.
- (subdi_zesidi): Delete pattern.
- (subdi_di_sesidi): Delete pattern.
- (subdi_zesidi_di): Delete pattern.
- (subdi_sesidi_di): Delete pattern.
- (subdi_zesidi_zesidi): Delete pattern.
- (negvdi3): Use s_register_operand.
- (negdi2_compare): Convert to simple insn with no split.
- (negdi2_insn): Likewise.
- (negsi2_carryin_compare): Delete pattern.
- (negdi_zero_extendsidi): Delete pattern.
- (arm_cmpdi_insn): Convert to simple insn with no split.
- (negdi2): Don't call gen_negdi2_neon.
- * config/arm/neon.md (adddi3_neon): Delete pattern.
- (subdi3_neon): Delete pattern.
- (negdi2_neon): Delete pattern.
- (splits for negdi2_neon): Delete splits.
-
-2019-10-18 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/92153
- * ggc-page.c (release_pages): Read g->alloc_size before free rather
- than after it.
-
-2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * config/arm/t-multilib: Add rule to regenerate mutlilib header file
- with any change to t-multilib, t-aprofile and t-rmprofile. Also add
- new multilib variants and new mappings.
-
-2019-10-18 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/86040
- * config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
-
-2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
- Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/86753
- * tree-vectorizer.h (scalar_cond_masked_key): New struct,
- and define hashmap traits for it.
- (loop_vec_info::scalar_cond_masked_set): New member.
- (vect_record_loop_mask): Adjust prototype.
- * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree):
- Implement method.
- * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to
- vect_record_loop_mask.
- (vectorizable_live_operation): Likewise.
- (vect_record_loop_mask): New param scalar_mask. Add entry
- cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL.
- * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask.
- Pass it as last arg to vect_record_loop_mask.
- (vectorizable_call): Pass scalar_mask as last arg to
- vect_record_loop_mask.
- (vectorizable_store): Likewise.
- (vectorizable_load): Likewise.
- (vectorizable_condition): Check if another part of vectorized code
- applies loop_mask to condition or to it's inverse, and if yes,
- apply loop_mask to result of vector comparison.
-
-2019-10-17 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
-
-2019-10-18 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92056
- * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes
- before calling compute_builtin_object_size.
-
-2019-10-17 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/65342
- * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
- (movdi_low_st): Delete.
- * config/rs6000/rs6000.c
- (darwin_rs6000_legitimate_lo_sum_const_p): New.
- (mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
- * config/rs6000/rs6000.md (movsi_low): Delete.
-
-2019-10-17 Jason Merrill <jason@redhat.com>
-
- * gimplify.h (get_initialized_tmp_var): Add default argument to
- post_p.
- * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove
- NULL post_p argument.
- * targhooks (std_gimplify_va_arg_expr): Likewise.
-
-2019-10-17 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove.
- (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise.
- * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
- initialize STMT_VINFO_VEC_COND_REDUC_CODE.
- * tree-vect-loop.c (vect_is_simple_reduction): Set
- STMT_VINFO_REDUC_CODE.
- (vectorizable_reduction): Remove dead and redundant code, use
- STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE.
-
-2019-10-17 Georg-Johann Lay <avr@gjlay.de>
-
- Fix breakage introduced by r276985.
-
- * config/avr/avr.c (avr_option_override): Remove set of
- PARAM_ALLOW_STORE_DATA_RACES.
- * common/config/avr/avr-common.c (avr_option_optimization_table)
- [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races.
-
-2019-10-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/i386/i386.h (processor_costs): Add clear_ratio.
- (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio.
- * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum
- of 6 and move_ratio in all cost models.
-
-2019-10-17 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (check_reduction_path): Compute reduction
- operation here.
- (vect_is_simple_reduction): Remove special-case of single-stmt
- reduction path detection.
-
-2019-10-17 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture.
-
-2019-10-17 Yuliang Wang <yuliang.wang@arm.com>
-
- * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>)
- (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>)
- (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>)
- (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>):
- New combine patterns.
- * config/aarch64/iterators.md (BSL_DUP): New int iterator for the
- above.
- (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above.
-
-2019-10-17 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range_base::dump): Display +INF for both
- pointers and integers when appropriate.
-
-2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide
- when to use versioning threshold.
-
-2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-loop.c (determine_peel_for_niter): New function contained
- outlined code from ...
- (vect_analyze_loop_2): ... here.
-
-2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-loop.c (vect_transform_loop): Move code from here...
- * tree-vect-loop-manip.c (vect_loop_versioning): ... to here.
- * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters.
-
-2019-10-17 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (needs_fold_left_reduction_p): Export.
- (vect_is_simple_reduction): Move all validity checks ...
- (vectorizable_reduction): ... here. Compute whether we
- need a fold-left reduction here.
- * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge
- both overloads, check needs_fold_left_reduction_p directly.
- * tree-vectorizer.h (needs_fold_left_reduction_p): Declare.
-
-2019-10-17 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix
- TARGET_MEM_REF creation.
-
-2019-10-17 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92129
- * tree-vect-loop.c (vectorizable_reduction): Also fail
- on GIMPLE_SINGLE_RHS.
-
-2019-10-17 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/92056
- * tree-object-size.c (cond_expr_object_size): Return early if then_
- processing resulted in unknown size.
-
- PR tree-optimization/92115
- * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
- temporary if it could trap.
-
-2019-10-17 Richard Biener <rguenther@suse.de>
-
- PR debug/91887
- * dwarf2out.c (gen_formal_parameter_die): Also try to match
- context_die against a DW_TAG_GNU_formal_parameter_pack parent.
-
-2019-10-16 Jakub Jelinek <jakub@redhat.com>
-
- * tree-ssa-strlen.c (maybe_invalidate): Use
- HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu".
-
-2019-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
- Jim Wilson <jimw@sifive.com>
-
- * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing
- regs to SIBCALL_REGS.
- * config/riscv/riscv.c (riscv_regno_to_class): Change argument
- passing regs to SIBCALL_REGS.
-
-2019-10-16 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/83821
- * tree-ssa-strlen.c (maybe_invalidate): Add argument. Consider
- the length of a string when available.
- (handle_builtin_memset) Add argument.
- (handle_store, strlen_check_and_optimize_call): Same.
- (check_and_optimize_stmt): Same. Pass it to callees.
-
-2019-10-16 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/91996
- * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location
- information.
- (compare_nonzero_chars): Add an overload.
- (count_nonzero_bytes): Add an argument. Call overload above.
- Handle non-constant lengths in some range.
- (handle_store): Add an argument.
- (check_and_optimize_stmt): Pass an argument to handle_store.
-
-2019-10-16 Richard Earnshaw <rearnsha@arm.com>
-
- * config/arm/arm.c (neon_valid_immediate): Clear bytes before use.
-
-2019-10-16 Mihailo Stojanovic <mistojanovic@wavecomp.com>
-
- * config/mips/mips.c (mips_expand_builtin_insn): Force the
- operands which correspond to the same input-output register to
- have the same pseudo assigned to them.
-
-2019-10-16 Ilya Leoshkevich <iii@linux.ibm.com>
-
- * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition.
-
-2019-10-16 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_classify_symbol):
- Apply reasonable limit to symbol offsets.
-
-2019-10-16 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (vect_valid_reduction_input_p): Remove.
- (vect_is_simple_reduction): Delay checking to
- vectorizable_reduction and relax the checking.
- (vectorizable_reduction): Check we have a simple use. Check
- for bogus condition reductions.
- * tree-vect-stmts.c (vect_transform_stmt): Make sure we
- are looking at the last stmt in a pattern sequence when
- filling in backedge PHI values.
-
-2019-10-16 Peter Bergner <bergner@linux.ibm.com>
- Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR target/70010
- * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
- the callee explicitly disables some isa_flags the caller is using.
-
-2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P.
-
-2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * genmodes.c (mode_data::order): New field.
- (blank_mode): Update accordingly.
- (VECTOR_MODES_WITH_PREFIX): Add an order parameter.
- (make_vector_modes): Likewise.
- (VECTOR_MODES): Update use accordingly.
- (cmp_modes): Sort by the new order field ahead of sorting by size.
- * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI)
- (VNx4QI, VNx4HI, VNx8QI): New partial vector modes.
- * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value.
- (aarch64_classify_vector_mode): Handle the new partial modes.
- (aarch64_vl_bytes): New function.
- (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR
- when counting the number of registers in an SVE mode.
- (aarch64_class_max_nregs): Likewise.
- (aarch64_hard_regno_mode_ok): Don't allow partial vectors
- in registers yet.
- (aarch64_classify_address): Treat partial vectors analogously
- to full vectors.
- (aarch64_print_address_internal): Consolidate the printing of
- MUL VL addresses, using aarch64_vl_bytes as the number of
- bytes represented by "VL".
- (aarch64_vector_mode_supported_p): Reject partial vector modes.
-
-2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant
- rather than known_lt when choosing frame layouts.
-
-2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_layout_frame): Assert
- that all the adjustments add up to the full frame size.
- Use crtl->outgoing_args_size directly as the final adjustment
- where appropriate.
-
-2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local
- "frame" reference instead of always referring directly to
- "cfun->machine->frame".
-
-2019-10-16 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92119
- * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard
- against missing bswap lhs.
-
-2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
-
- PR middle-end/92033
- * poly-int.h (constant_lower_bound_with_limit): New function.
- (constant_upper_bound_with_limit): Likewise.
- * doc/poly-int.texi: Document them.
- * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds
- into the worst-case INTEGER_CST bounds.
-
-2019-10-16 Feng Xue <fxue@os.amperecomputing.com>
-
- PR ipa/91088
- * doc/invoke.texi (ipa-max-param-expr-ops): Document new option.
- * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New.
- * ipa-predicat.h (struct expr_eval_op): New struct.
- (expr_eval_ops): New typedef.
- (struct condition): Add type and param_ops fields, remove size field.
- (add_condition): Replace size parameter with type parameter, add
- param_ops parameter.
- * ipa-predicat.c (expr_eval_ops_equal_p): New function.
- (predicate::add_clause): Add comparisons on type and param_ops.
- (dump_condition): Add debug dump for param_ops.
- (remap_after_inlining): Adjust call arguments to add_condition.
- (add_condition): Replace size parameter with type parameter, add
- param_ops parameter. Unshare constant value used in conditions.
- * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold
- parameter expressions using param_ops.
- (decompose_param_expr): New function.
- (set_cond_stmt_execution_predicate): Use call to decompose_param_expr
- to replace call to unmodified_parm_or_parm_agg_item.
- (set_switch_stmt_execution_predicate): Likewise.
- (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size
- with type.
- (inline_read_section): Read param_ops from summary stream.
- (ipa_fn_summary_write): Write param_ops to summary stream.
-
-2019-10-15 Segher Boessenkool <segher@kernel.crashing.org>
-
- PR rtl-optimization/92107
- * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the
- expression written.
-
-2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c: Update description of fix and continue.
-
-2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (darwin_binds_local_p): Update to call
- default_binds_local_p_3 () directly. amend comments.
-
-2019-10-15 Richard Biener <rguenther@suse.de>
-
- * lto-streamer-out.c (lto_variably_modified_type_p): New.
- (tree_is_indexable): Use it.
- * tree-streamer-out.c (pack_ts_type_common_value_fields):
- Stream variably_modified_type_p as TYPE_LANG_FLAG_0.
- * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
-
-2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.md (zero_extendqipsi2): New.
- (zero_extendqisi2): Optimize case where src register and base dst
- register are the same.
- (zero_extendhipsi2): Don't use 430X insn for rYs->r case.
- (zero_extendpsisi2): Optimize r->m case.
- Add unnamed insn patterns to catch insns combine searches for when
- optimizing pointer manipulation.
-
-2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.md: Group zero_extend* insns together.
-
-2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/constraints.md: Allow post_inc operand for "Ya"
- constraint.
- * config/msp430/msp430.c (msp430_legitimate_address_p): Handle
- POST_INC.
- (msp430_subreg): Likewise.
- (msp430_split_addsi): Likewise.
- (msp430_print_operand_addr): Likewise.
- * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define.
- (USE_STORE_POST_INCREMENT): Define.
- * config/msp430/msp430.md: Use the msp430_general_dst_operand or
- msp430_general_dst_nonv_operand predicates for the lvalues of insns.
- * config/msp430/predicates.md (msp430_nonpostinc_operand): New.
- (msp430_general_dst_operand): New.
- (msp430_general_dst_nonv_operand): New.
- (msp430_nonsubreg_operand): Remove.
- (msp430_nonsubreg_dst_operand): New.
- (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place
- of defunct msp430_nonsubreg_operand.
- (msp430_nonsubregnonpostinc_or_imm_operand): New.
-
-2019-10-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/91929
- * tree-ssa-pre.c (pre_expr_d::loc): New member.
- (get_or_alloc_expr_for_name): Initialize it.
- (get_or_alloc_expr_for_constant): Likewise.
- (phi_translate_1): Copy it.
- (create_expression_by_pieces): Use the original location
- of the expression for the inserted stmt.
- (compute_avail): Record the location of the stmt for the
- expressions created.
-
-2019-10-15 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p
- before using tree_to_uhwi.
-
-2019-10-15 Ilya Leoshkevich <iii@linux.ibm.com>
-
- * config/s390/s390.md: Run %a0:DI splitters only after reload.
-
-2019-10-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92094
- * tree-vect-loop.c (vectorizable_reduction): For nested cycles
- do not adjust the reduction definition def type.
- * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt
- defines the latch argument of the PHI.
-
-2019-10-15 Hongyu Wang <hongtao.wang@intel.com>
-
- PR target/92035
- * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss,
- _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss,
- _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd,
- _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd,
- _mm_maskz_roundscale_round_sd): New intrinsics.
- (_mm_roundscale_ss, _mm_roundscale_round_ss): Use
- __builtin_ia32_rndscales?_mask_round builtins instead of
- __builtin_ia32_rndscales?_round.
- * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round,
- __builtin_ia32_rndscalesd_round): Remove.
- (__builtin_ia32_rndscaless_mask_round,
- __builtin_ia32_rndscalesd_mask_round): New intrinsics.
- * config/i386/sse.md
- (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ...
- (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>):
- ... this, adjust and add subst atrributes to make it maskable.
-
-2019-10-15 Richard Biener <rguenther@suse.de>
-
- PR middle-end/92046
- * common.opt (fallow-store-data-races): New.
- * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove.
- * params.h (ALLOW_STORE_DATA_RACES): Likewise.
- * doc/invoke.texi (fallow-store-data-races): Document.
- (--param allow-store-data-races): Remove docs.
- * opts.c (default_options_table): Enable -fallow-store-data-races
- at -Ofast.
- (default_options_optimization): Do not enable --param
- allow-store-data-races at -Ofast.
- * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races
- instead of PARAM_ALLOW_STORE_DATA_RACES.
- * tree-ssa-loop-im.c (execute_sm): Likewise.
-
-2019-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- PR tree-optimization/92085
- * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause,
- instead of calling it unconditionally after
- delete_dead_or_redundant_assignment and fix indentation.
-
-2019-10-15 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
-
- * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when
- TARGET_VFP_DOUBLE.
- (*fmsub<SDF:mode>4): Likewise.
- *fnmsub<SDF:mode>4): Likewise.
- (*fnmadd<SDF:mode>4): Likewise.
-
-2019-10-14 Joel Hutton <Joel.Hutton@arm.com>
-
- * doc/tree-ssa.texi: Update renamed macro name.
-
-2019-10-14 Mihailo Stojanovic <mistojanovic@wavecomp.com>
-
- * config/mips/mips.c (mips_cannot_force_const_mem): Reject
- vector constants.
-
-2019-10-14 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c: Use unsigned ints for the picbase label
- counters, initialise the vars explicitly.
- (update_pic_label_number_if_needed): Move a variable declaration
- to where it's needed.
- (machopic_output_function_base_name): Use a more strict checking
- assert, and and unsigned int for the picbase label counter.
- (machopic_get_function_picbase): Likewise.
-
-2019-10-14 Richard Biener <rguenther@suse.de>
-
- PR middle-end/92046
- * dse.c (scan_insn): Use param max_active_local_stores.
- (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust
- based on optimization level.
- * loop-invariant.c (move_loop_invariants): Adjust
- LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level.
- * opts.c (default_options_optimization): Do not adjust
- PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and
- LOOP_INVARIANT_MAX_BBS_IN_LOOP here.
-
-2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
-
-2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/arm/arm.c (arm_option_override): Don't override sched
- pressure algorithm.
-
-2019-10-14 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92069
- * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested
- cycles do not set vect_nested_cycle on the latch definition.
-
-2019-10-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * function-abi.h (expr_callee_abi): Declare.
- * function-abi.cc (expr_callee_abi): New function.
-
-2019-10-14 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0]
- into [1,MAX].
- * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned
- non-zero being represented as [1,MAX].
-
-2019-10-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
-
- * tree-sra.c (dump_access): Add missing braces.
-
-2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_indirection_name): Rework the
- function to emit linker-visible symbols only for indirections
- in the data section. Clean up the code and update comments.
-
-2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_indirect_data_reference): Remove
- redundant code.
-
-2019-10-13 Nathan Sidwell <nathan@acm.org>
-
- * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'.
-
-2019-10-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * doc/sourcebuild.texi (Test Directives, Add Options): Remove
- c99_runtime.
-
-2019-10-12 Jan Hubicka <hubicka@ucw.cz>
-
- * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
- so non-virutal are before virutals.
- (output_function): Avoid body modifications.
-
-2019-10-12 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.c (pa_output_call): Load descriptor address to register
- %r22. Load function address before global pointer.
- (pa_attr_length_indirect_call): Adjust length of inline versions of
- $$dyncall.
- (pa_output_indirect_call): Remove fast inline version of $$dyncall
- before normal cases. Update inline $$dyncall sequences to preserve
- function descriptor address in register %r22.
- (TRAMPOLINE_CODE_SIZE): Adjust.
- (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume
- register %r22 contains trampoline address.
- (pa_trampoline_init): Adjust offsets.
- (pa_trampoline_adjust_address): Likewise.
- * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
-
-2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/67183
- * config/darwin.c (machopic_indirection): New field to flag
- non-lazy-symbol-pointers in the data section.
- (machopic_indirection_name): Compute if an indirection should
- appear in the data section.
- (machopic_output_data_section_indirection): New callback split
- from machopic_output_indirection.
- (machopic_output_stub_indirection): Likewise.
- (machopic_output_indirection): Retain the code for non-lazy
- symbol pointers in their regular section.
- (machopic_finish): Use the new callbacks to order the indirection
- output.
-
-2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin-protos.h (machopic_finish): Delete.
- * config/darwin.c (machopic_finish): Make static.
-
-2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR
- sections when building kernel extension code.
-
-2019-10-12 Palmer Dabbelt <palmer@sifive.com>
-
- * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a
- later standard."
-
-2019-10-12 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.c (pa_option_override): Remove trailing comma
- from warning.
-
-2019-10-12 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/92063
- * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR>
- <case VEC_COND_EXPR>: Return false with *handled = false.
- (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of
- recursing on the first operand.
- * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p
- instead of tree_could_trap_p.
- * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes.
-
-2019-10-11 Jim Wilson <jimw@sifive.com>
-
- PR rtl-optimization/91860
- * combine.c (subst): If new_rtx is a constant, also check for
- SIGN_EXTEND when deciding whether to call simplify_unary_operation.
-
-2019-10-11 Richard Sandiford <richard.sandiford@arm.com>
-
- * expr.c (store_expr): Use rtx_to_poly_int64 rather than
- INTVAL when calling store_bit_field.
-
-2019-10-11 Wilco Dijkstra <wdijkstr@arm.com>
-
- * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for
- size.
-
-2019-10-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to
- vectorizable_live_operation.
- (vectorizable_live_operation): Adjust parameters.
- * tree-vect-stmts.c (vect_init_vector,
- vect_gen_widened_results_half): Fix typo in function comment.
- (can_vectorize_live_stmts): Adjust function comment.
- Adjust parameters. Adjust call to vectorizable_live_operation.
- (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts.
- (vect_transform_stmt): Adjust function comment. Adjust call to
- can_vectorize_live_stmts.
- * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters.
-
-2019-10-11 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/90883
- PR tree-optimization/91091
- * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct
- alias-sets both for recording VN table entries and continuing
- walking after translating through copies. Handle same-sized
- reads from SSA names by returning the plain SSA name.
- (eliminate_dom_walker::eliminate_stmt): Properly handle
- non-size precision stores in redundant store elimination.
-
-2019-10-11 Jan Hubicka <hubicka@ucw.cz>
-
- * ggc-page.c (release_pages): Output statistics when !quiet_flag.
- (ggc_collect): Dump later to not interfere with release_page dump.
- (ggc_trim): New function.
- * ggc-none.c (ggc_trim): New.
- * ggc.h (ggc_trim): Declare.
-
-2019-10-11 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92066
- PR tree-optimization/92046
- * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
- Fix bogus cost model check.
-
-2019-10-11 Tobias Burnus <tobias@codesourcery.com>
-
- * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define.
- (LANG_HOOKS_DECLS): Add it.
- * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr;
- update comment for omp_is_optional_argument.
- * omp-general.c (omp_is_allocatable_or_ptr): New.
- * omp-general.h (omp_is_allocatable_or_ptr): Declare.
- * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle
- Fortran's optional arguments and allocatable/pointer scalars
- with use_device_addr.
-
-2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR target/77918
- * config/s390/2827.md: Add new opcodes.
- * config/s390/2964.md: Likewise.
- * config/s390/3906.md: Likewise.
- * config/s390/8561.md: Likewise.
- * config/s390/s390-builtins.def (s390_vfchesb): Use
- the new vec_cmpgev4sf_quiet_nocc.
- (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc.
- (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc.
- (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc.
- (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc.
- (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc.
- (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc.
- (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc.
- * config/s390/s390-modes.def (CCSFPS): New mode.
- * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS.
- (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT.
- (s390_branch_condition_mask): Reuse CCS for CCSFPS.
- (s390_expand_vec_compare): Use non-signaling patterns where
- necessary.
- (s390_reverse_condition): Support CCSFPS.
- * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern.
- * config/s390/vector.md: (VFCMP_HW_OP): Remove.
- (asm_fcmp_op): Likewise.
- (*smaxv2df3_vx): Use pattern for quiet comparison.
- (*sminv2df3_vx): Likewise.
- (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove.
- (*vec_cmpeq<mode>_quiet_nocc): New pattern.
- (vec_cmpgt<mode>_quiet_nocc): Likewise.
- (vec_cmplt<mode>_quiet_nocc): New expander.
- (vec_cmpge<mode>_quiet_nocc): New pattern.
- (vec_cmple<mode>_quiet_nocc): New expander.
- (*vec_cmpeq<mode>_signaling_nocc): New pattern.
- (*vec_cmpgt<mode>_signaling_nocc): Likewise.
- (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise.
- (*vec_cmpge<mode>_signaling_nocc): Likewise.
- (*vec_cmpge<mode>_signaling_finite_nocc): Likewise.
- (vec_cmpungt<mode>): New expander.
- (vec_cmpunge<mode>): Likewise.
- (vec_cmpuneq<mode>): Use quiet patterns.
- (vec_cmpltgt<mode>): Allow only on z14+.
- (vec_cmpordered<mode>): Use quiet patterns.
- (vec_cmpunordered<mode>): Likewise.
- (VEC_CMP_EXPAND): Add ungt and unge.
-
-2019-10-11 Jan Hubicka <hubicka@ucw.cz>
-
- * gimple-streamer-out.c (output_gimple_stmt): Add explicit function
- parameter.
- * lto-streamer-out.c: Include tree-dfa.h.
- (output_cfg): Do not use cfun.
- (lto_prepare_function_for_streaming): New.
- (output_function): Do not push cfun; do not initialize loop optimizer.
- * lto-streamer.h (lto_prepare_function_for_streaming): Declare.
- * passes.c (ipa_write_summaries): Use it.
- (ipa_write_optimization_summaries): Do not modify bodies.
- * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
- * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
- * tree-ssa-dse.c (pass_dse::execute): Update use of
- renumber_gimple_stmt_uids.
- * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
-
-2019-10-11 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
- vec_promote_demote cost to 1 for non-Power7 VSX architectures.
-
-2019-10-10 Joseph Myers <joseph@codesourcery.com>
-
- * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
- macros.
- [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
- Also define DFP macros for these conditions.
- [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
- DEC128_SUBNORMAL_MIN): Do not define.
- [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
- (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
-
-2019-10-10 Xiong Hu Luo <luoxhu@linux.ibm.com>
- Sandra Loosemore <sandra@codesourcery.com>
-
- PR middle-end/26241
- * doc/lto.texi (IPA): Reference to the IPA passes.
- * doc/passes.texi (Pass manager): Add node IPA passes and
- description for each IPA pass.
-
-2019-10-10 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-reference.c: Do not include splay-tree.h
- (reference_vars_to_consider): Turn to hash map.
- (get_static_name, ipa_init, analyze_function, propagate,
- stream_out_bitmap, ipa_reference_write_optimization_summary,
- ipa_reference_write_optimization_summary): Update.
-
-2019-10-10 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-reference.c (propagate): Fix releasing of IPA summaries.
-
-2019-10-10 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c: Lookup Objective C metadata and force indirection
- for IVAR refs.
-
-2019-10-10 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed
- addresses.
- (mem_operand_gpr): Add check for prefixed addresses.
- (mem_operand_ds_form): Add check for prefixed addresses.
- (rs6000_legitimate_offset_address_p): If we support prefixed
- addresses, check for a 34-bit offset instead of 16-bit.
- (rs6000_legitimate_address_p): Add check for prefixed addresses.
- Do not allow load/store with update if the address is prefixed.
- (rs6000_mode_dependent_address): If we support prefixed
- addresses, check for a 34-bit offset instead of 16-bit.
-
-2019-10-10 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR target/77918
- * config/s390/vector.md (vcond_comparison_operator): New
- predicate.
- (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator.
-
-2019-10-10 David Malcolm <dmalcolm@redhat.com>
-
- PR 87488
- * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via
- -D.
- * configure.ac (--with-documentation-root-url): New option.
- * configure: Regenerate.
- * diagnostic-format-json.cc (json_end_diagnostic): If there is an
- option URL, add it as a new string field of the diagnostic option.
- * diagnostic.c (diagnostic_initialize): Initialize get_option_url.
- (print_option_information): If get_option_url is non-NULL, call
- it, and if the result is non-NULL, potentially emit an escape
- sequence to markup the option text with the resulting URL.
- * diagnostic.h (diagnostic_context::get_option_url): New callback.
- * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to
- example of JSON output.
- * opts-diagnostic.h (get_option_url): New decl.
- * opts.c (get_option_url): New function.
- * toplev.c (general_init): Initialize the get_option_url callback.
-
-2019-10-10 David Malcolm <dmalcolm@redhat.com>
-
- PR 87488
- * common.opt (fdiagnostics-urls=): New option.
- (diagnostic-url.h): Add SourceInclude.
- (diagnostic_url_rule): New enum.
- * diagnostic-color.c: Include "diagnostic-url.h".
- (diagnostic_urls_enabled_p): New function.
- * diagnostic-url.h: New file.
- * diagnostic.c: Include "diagnostic-url.h".
- (diagnostic_urls_init): New function.
- * diagnostic.h (diagnostic_urls_init): New decl.
- * doc/invoke.texi (Diagnostic Message Formatting Options): Add
- -fdiagnostics-urls to the list.
- (-fdiagnostics-urls): New option.
- * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
- (driver::global_initializations): Call diagnostic_urls_init.
- * opts-global.c (init_options_once): Likewise.
- * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
- * pretty-print.c (pretty_printer::pretty_printer): Initialize
- show_urls.
- (pp_begin_url): New function.
- (pp_end_url): New function.
- (selftest::test_urls): New selftest.
- (selftest::pretty_print_c_tests): Call it.
- * pretty-print.h (pretty_printer::show_urls): New field.
- (pp_begin_url): New decl.
- (pp_end_url): New decl.
-
-2019-10-10 UroÃ
¡ Bizjak <ubizjak@gmail.com>
-
- PR target/92022
- * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
-
-2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
-
- PR target/88630
- * config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
- * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
- also for TARGET_FPU_SH4_300.
- (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
- TARGET_SH4_300.
- * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
- (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
- (*negsf2_i): Split into ...
- (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
- (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
- (**abssf2_i): Split into ...
- (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
- (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
- (*negdf2_i): Split into ...
- (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
- (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
- (**abssf2_i): Split into ...
- (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
-
-2019-10-10 Richard Biener <rguenther@suse.de>
-
- PR middle-end/92046
- * opts.c (finish_options): Do not influence global --params
- from options that are adjustable per function.
- * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
- Apply --param adjustment based on active cost-model.
- * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable
- further store-sinking when vectorization or if-conversion
- are not enabled.
-
-2019-10-10 Jan Hubicka <hubicka@ucw.cz>
-
- PR middle-end/92037
- * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc
- rather than ggc_alloc_cleared to alloc symbol table.
- * toplev.c (general_init): Likewise.
- * cgraph.h (symbol_table): Explicitly construct every field.
-
-2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * common/config/s390/s390-common.c (PF_ARCH13): Rename to...
- (PF_Z15): ... this.
- * config.gcc: Add z15 as option for --with-arch and --with-tune
- configure switches.
- * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
- error reporting for unsupported builtins.
- * config/s390/s390-opts.h (enum processor_type): Rename
- PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
- * config/s390/8561.md: Rename arch13 to z15 throughout the file.
- * config/s390/driver-native.c (s390_host_detect_local_cpu):
- Likewise.
- * config/s390/s390-builtins.def: Likewise.
- * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
- (s390_expand_builtin): Add missing check for unsupported builtins.
- (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
- (s390_rtx_costs): Likewise.
- (s390_get_sched_attrmask): Rename arch13 to z15.
- (s390_get_unit_mask): Likewise.
- (s390_is_fpd): Likewise.
- (s390_is_fxd): Likewise.
- * config/s390/s390.h (enum processor_flags): Likewise.
- * config/s390/s390.md: Likewise.
- * config/s390/vector.md: Likewise.
- * config/s390/vx-builtins.md: Likewise.
- * config/s390/s390.opt: Add z15 to processor_type value.
-
-2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
-
- PR target/91035
- * config/s390/s390-protos.h (s390_output_split_stack_data): Add
- prototype.
- * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove.
- ("split_stack_data", "split_stack_call")
- ("split_stack_call_<mode>", "split_stack_cond_call")
- ("split_stack_cond_call_<mode>"): Remove.
- ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New
- insn definition.
- * config/s390/s390.c (s390_output_split_stack_data): New function.
- (s390_expand_split_stack_prologue): Use the merged expander.
-
-2019-10-09 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/90879
- * builtins.c (check_access): Avoid using maxbound when null.
- * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change.
- * doc/invoke.texi (-Wstring-compare): Document new warning option.
- * gimple-fold.c (get_range_strlen_tree): Make setting maxbound
- conditional.
- (get_range_strlen): Overwrite initial maxbound when non-null.
- * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen
- changes.
- * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.
- (used_only_for_zero_equality): New function.
- (handle_builtin_memcmp): Call it.
- (determine_min_objsize): Return an integer instead of tree.
- (get_len_or_size, strxcmp_eqz_result): New functions.
- (maybe_warn_pointless_strcmp): New function.
- (handle_builtin_string_cmp): Call it. Fold zero-equality of strcmp
- between a longer string and a smaller array.
- (get_range_strlen_dynamic): Overwrite initial maxbound when non-null.
-
-2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (darwin_override_options): Make the check for
- Objective-C ABI version more specific for 64bit code.
-
-2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_indirect_data_reference): Set flag to
- indicate that the new symbol is an indirection.
- (machopic_indirect_call_target): Likewise.
- * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
- (MACHO_SYMBOL_INDIRECTION_P): New.
- (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
-
-2019-10-08 Jason Merrill <jason@redhat.com>
-
- * doc/invoke.texi: Document -fconcepts-ts.
-
-2019-10-09 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (vect_is_simple_reduction): Simplify and
- allow stmts other than GIMPLE_ASSIGN in nested cycles.
-
-2019-10-08 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New.
- (_stmt_vec_info::force_single_cycle): Likewise.
- (STMT_VINFO_FORCE_SINGLE_CYCLE): New.
- (STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
- * tree-vect-loop.c (vectorizable_reduction): Set
- STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE.
- (vect_transform_reduction): Use them to remove redundant code.
- (vect_transform_cycle_phi): Likewise.
-
-2019-10-08 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
-
- PR tree-optimization/90836
- * match.pd (popcount): New pattern.
-
-2019-10-08 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/92026
- PR middle-end/92014
- * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF
- again once nbytes has been set. Set the access size when not yet set.
-
-2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_select_section): Remove dead code for
- old Objective-C section selection method, replace with unreachable.
-
-2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_indirect_data_reference): Check for
- required indirections before making direct access to defined
- values.
- (machopic_output_indirection): Place the indirected pointes for
- required indirections into the non-lazy symbol pointers section.
- (darwin_encode_section_info):
- * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
- (MACHO_SYMBOL_MUST_INDIRECT_P): New.
-
-2019-10-08 UroÃ
¡ Bizjak <ubizjak@gmail.com>
-
- PR target/91994
- * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
- instead of ALL_SSE_REG to check if function call preserves some
- 256-bit SSE registers.
-
-2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
- LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
- MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
-
-2019-10-08 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove.
- (_stmt_vec_info::is_reduc_info): Add.
- (STMT_VINFO_VEC_REDUCTION_TYPE): Remove.
- (vectorizable_condition): Remove.
- (vectorizable_shift): Likewise.
- (vectorizable_reduction): Adjust.
- (info_for_reduction): New.
- * tree-vect-loop.c (vect_force_simple_reduction): Fold into...
- (vect_analyze_scalar_cycles_1): ... here.
- (vect_analyze_loop_operations): Adjust.
- (needs_fold_left_reduction_p): Simplify for single caller.
- (vect_is_simple_reduction): Likewise. Remove stmt restriction
- for nested cycles not part of double reductions.
- (vect_model_reduction_cost): Pass in the reduction type.
- (info_for_reduction): New function.
- (vect_create_epilog_for_reduction): Use it, access reduction
- meta off the stmt info it returns. Use STMT_VINFO_REDUC_TYPE
- instead of STMT_VINFO_VEC_REDUCTION_TYPE.
- (vectorize_fold_left_reduction): Remove pointless assert.
- (vectorizable_reduction): Analyze the full reduction when
- visiting the outermost PHI. Simplify. Use STMT_VINFO_REDUC_TYPE
- instead of STMT_VINFO_VEC_REDUCTION_TYPE. Direct reduction
- stmt code-generation to vectorizable_* in most cases. Verify
- code-generation only for cases handled by
- vect_transform_reductuon.
- (vect_transform_reduction): Use info_for_reduction to get at
- reduction meta. Simplify.
- (vect_transform_cycle_phi): Likewise.
- (vectorizable_live_operation): Likewise.
- * tree-vect-patterns.c (vect_reassociating_reduction_p): Look
- at the PHI node for STMT_VINFO_REDUC_TYPE.
- * tree-vect-slp.c (vect_schedule_slp_instance): Remove no
- longer necessary code.
- * tree-vect-stmts.c (vectorizable_shift): Make static again.
- (vectorizable_condition): Likewise. Get at reduction related
- info via info_for_reduction.
- (vect_analyze_stmt): Adjust.
- (vect_transform_stmt): Likewise.
- * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
- STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE.
-
-2019-10-08 Joseph Myers <joseph@codesourcery.com>
-
- * doc/invoke.texi (-ffp-int-builtin-inexact): Document
- -fno-fp-int-builtin-inexact default for C2X.
-
-2019-10-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
- Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/91532
- * tree-if-conv.c: Include tree-ssa-dse.h.
- (ifcvt_local_dce): Change param from bb to loop,
- and call dse_classify_store.
- (tree_if_conversion): Pass loop instead of loop->header as arg
- to ifcvt_local_dce.
- * tree-ssa-dse.c: Include tree-ssa-dse.h.
- (delete_dead_or_redundant_assignment): Remove static qualifier from
- declaration, and add prototype in tree-ssa-dse.h.
- (dse_store_status): Move to tree-ssa-dse.h.
- (dse_classify_store): Remove static qualifier and add new tree param
- stop_at_vuse, and add prototype in tree-ssa-dse.h.
- * tree-ssa-dse.h: New header.
-
-2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_output_indirection): Don't put
- hidden symbol indirections into the .data section, use the
- non-lazy symbol pointers section as normal.
- (darwin_encode_section_info): Record if a symbol is hidden.
- * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
- (MACHO_SYMBOL_HIDDEN_VIS_P): New.
-
-2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (machopic_symbol_defined_p): Use symbol flag
- predicates instead of accessing bits directly.
- (machopic_indirect_call_target): Likewise.
- (machopic_output_indirection): Likewise.
- (darwin_encode_section_info): Improve description. Use renamed
- symbol flags. Use predicate macros for variables and functions.
- * config/darwin.h:
- Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
- Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
- Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
- (MACHO_SYMBOL_VARIABLE_P): New.
- (MACHO_SYMBOL_DEFINED_P):New.
- (MACHO_SYMBOL_STATIC_P): New.
- * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
- (SYMBOL_FLAG_SUBT_DEP): New.
- * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
-
-2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/
- (msp430_expand_epilogue): Likewise.
- * config/msp430/predicates.md: Likewise.
- * config/msp430/msp430.md: Likewise.
- Replace blocks of 8 spaces with tabs.
-
-2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype.
- * config/msp430/msp430.c (msp430_split_addsi): New.
- * config/msp430/msp430.md: Call msp430_split_addsi () instead of using
- a block of C code for splitting addsi.
-
-2019-10-07 UroÃ
¡ Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.c (ix86_expand_floorceildf_32,
- ix86_expand_rounddf_32): Reorder functions.
- * config/i386/i386-protos.h: Update.
-
-2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
-
- * config.in: Regenerate.
- * config/msp430/constraints.md: Fix docstring for "Ys" constraint.
- Add new "Yx" constraint.
- * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec
- function.
- * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New
- prototype.
- * config/msp430/msp430.c (msp430_option_override): Allow the lower
- code/data region to be selected in the small memory model.
- (msp430_section_attr): Don't warn if the "section" and "lower"
- attributes are used together.
- (msp430_handle_generic_attribute): Likewise.
- (msp430_var_in_low_mem): New function.
- (TARGET_ENCODE_SECTION_INFO): Define.
- (msp430_encode_section_info): New function.
- (gen_prefix): Return early in the small memory model.
- Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the
- ".lower" prefix if -m{code,data}-region=lower have been passed.
- (msp430_output_aligned_decl_common): Emit common symbols when
- -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is
- set.
- (TARGET_ASM_FILE_END): Define.
- (msp430_file_end): New function.
- (msp430_do_not_relax_short_jumps): Allow relaxation when
- function will be in the lower region.
- (msp430_op_not_in_high_mem): New function.
- (msp430_print_operand): Check "msp430_op_not_in_high_mem" for
- the 'X' operand selector.
- Clarify comment for 'x' operand selector.
- * config/msp430/msp430.h (LINK_SPEC): Propagate
- -m{code,data}-region to the linker via spec function
- msp430_propagate_region_opt.
- (msp430_propagate_region_opt): New prototype.
- (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt.
- (SYMBOL_FLAG_LOW_MEM): Define.
- * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand
- selector.
- (zero_extendqihi2): Fix operand number used by "%X" selector.
- (zero_extendqisi2): Likewise.
- (zero_extendhisi2): Likewise.
- (movqi): Use "Yx" constraint in place of "%X" operand selector.
- (movhi): Likewise.
- (addqi3): Likewise.
- (addhi3): Likewise.
- (addsi3): Likewise.
- (addhi3_cy): Likewise.
- (addchi4_cy): Likewise.
- (subqi3): Likewise.
- (subhi3): Likewise.
- (subsi3): Likewise.
- (bic<mode>3): Likewise.
- (and<mode>3): Likewise.
- (ior<mode>3): Likewise.
- (xor<mode>3): Likewise.
- (slli_1): Add missing "%X" operand selector.
- (slll_1): Likewise.
- (slll_2): Likewise.
- (srai_1): Likewise.
- (sral_1): Likewise.
- (sral_2): Likewise.
- (srli_1): Likewise.
- (srll_1): Likewise.
- (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand
- selector.
- (cbranchhi4_real): Likewise.
- (cbranchqi4_reversed): Likewise.
- (cbranchhi4_reversed): Likewise.
- (*bitbranch<mode>4): Likewise.
- (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector.
- * config/msp430/msp430.opt (mcode-region=): Set default to
- MSP430_REGION_LOWER. Improve docstring.
- (mdata-region=): Likewise.
- (muse-lower-region-prefix): New option.
- * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add
- mdata-region=none multilib.
- (MULTILIB_MATCHES): Set mdata-region={upper,either} to match
- mdata-region=none multilib.
- MULTILIB_EXCEPTIONS: Remove.
- MULTILIB_REQUIRED: Define.
- * configure: Regenerate.
- * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and
- HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50.
- * doc/extend.texi: Clarify comment for {upper,lower,either}
- function attributes.
- Add separate description for "lower" variable attribute.
-
-2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR target/77918
- * optabs-tree.c (vcond_icode_p): New function.
- (vcond_eq_icode_p): Likewise.
- (expand_vec_cond_expr_p): Use vcond_icode_p and
- vcond_eq_icode_p.
- * optabs.c (can_vcond_compare_p): New function.
- * optabs.h (can_vcond_compare_p): Likewise.
-
-2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR target/77918
- * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the
- caller passes a non-trapping condition.
- (is_gimple_condexpr): Allow trapping conditions.
- (is_gimple_condexpr_1): New helper function.
- (is_gimple_condexpr_for_cond): New function, acts like old
- is_gimple_condexpr.
- * gimple-expr.h (is_gimple_condexpr_for_cond): New function.
- * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and
- VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.).
- * gimplify.c (gimplify_cond_expr): Use
- is_gimple_condexpr_for_cond.
- (gimplify_expr): Allow is_gimple_condexpr_for_cond.
- * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and
- VEC_COND_EXPR.
- (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR.
- * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use
- is_gimple_condexpr_for_cond, remove pointless tmp check
- (forward_propagate_into_cond): Remove pointless tmp check.
-
-2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
-
- * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
- match that of other gsi_next_* functions. Adjust the comment.
- (gsi_start_nonvirtual_phis): New function.
- * ipa-icf.c (sem_function::compare_phi_node): Update uses of
- gsi_next_nonvirtual_phi accordingly. (No functional change.)
-
-2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
-
- * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by
- setjmp situation here. Fix a verb's ending: "the exact variables or
- elements for which there are warnings depends" -> "... depend".
-
-2019-10-07 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check.
-
-2019-10-07 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-prop.c (ipa_vr::nonzero_p): New.
- (ipcp_update_vr): Use nonzero_p instead of open-coding check for
- non-zero range.
- * ipa-prop.h (class ipa_vr): Add nonzero_p.
- * tree-vrp.c (range_has_numeric_bounds_p): New.
- (range_int_cst_p): Use range_has_numeric_bounds_p.
- (get_range_op_handler): New.
- (supported_types_p): New.
- (defined_ranges_p): New.
- (drop_undefines_to_varying): New.
- (range_fold_binary_symbolics_p): New.
- (range_fold_unary_symbolics_p): New.
- (range_fold_unary_expr): Extract out into above functions.
- (range_fold_binary_expr): Same.
- (value_range_base::normalize_addresses): New.
- (value_range_base::normalize_symbolics): Normalize addresses.
- * tree-vrp.h (class value_range_base): Add normalize_addresses.
-
-2019-10-07 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.c (value_range_base::singleton_p): Use
- value_range_base::num_pairs instead of vrp_val_is* to check
- if a range has one sub-range.
-
-2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
-
- * ira-lives.c (check_and_make_def_conflict): Handle cases in which
- DEF is not a true earlyclobber but is tied to a specific input
- operand, and so is effectively earlyclobber wrt inputs that have
- different values.
- (make_early_clobber_and_input_conflicts): Pass this case to the above.
-
-2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
-
- * machmode.h (opt_mode): Mark constructors with CONSTEXPR.
- (pod_mode): Mark operators likewise.
- (scalar_int_mode): Mark non-default constructors and
- operators with CONSTEXPR.
- (scalar_float_mode, scalar_mode, complex_mode): Likewise.
- (fixed_size_mode): Likewise.
-
-2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/91994
- * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand
- and wrap the unspec_volatile in a parallel.
- (*avx_vzeroupper): New define_insn. Use a match_parallel around
- the unspec_volatile.
- * config/i386/predicates.md (vzeroupper_pattern): Expect the
- unspec_volatile to be wrapped in a parallel.
- * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper)
- (ix86_add_reg_usage_to_vzerouppers): New functions.
- (rest_of_handle_insert_vzeroupper): Use them to add register
- usage information to the vzeroupper instructions.
-
-2019-10-07 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/91975
- * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently
- handle invariants.
-
-2019-10-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary
- function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET.
-
-2019-10-06 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (darwin_override_options): Adjust objective-c
- ABI version error messages to avoid punctuation and contracted
- negations.
-
-2019-10-05 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.c: Fix type; compute size rather than self_size
- for size of caller function.
-
-2019-10-05 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/59888
- * config/darwin.c (darwin_rodata_section): Add relocation flag,
- choose const_data section for constants with relocations.
- (machopic_select_section): Pass relocation flag to
- darwin_rodata_section ().
-
-2019-10-05 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/91734
- * generic-match-head.c: Include fold-const-call.h.
- * match.pd (sqrt(x) cmp c): Check the boundary value and
- in case inexact computation of c*c affects comparison of the boundary,
- turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
- or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and
- for -frounding-math. For c2, try the next smaller or larger floating
- point constant depending on comparison code and if it has the same
- sqrt as c2, use it instead of c2.
-
-2019-10-04 Martin Sebor <msebor@redhat.com>
-
- PR middle-end/91977
- * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with
- MEM_REF right operand. Avoid failing for MEM_REF assignments from
- uninitialized objects.
-
-2019-10-04 Martin Sebor <msebor@redhat.com>
-
- * builtins.c (compute_objsize): Add an argument.
- * tree-object-size.c (addr_object_size): Same.
- (compute_builtin_object_size): Same.
- * tree-object-size.h (compute_builtin_object): Same.
-
-2019-10-04 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.
-
-2019-10-04 Rafael Tsuha <rafael.tsuha@usp.br>
-
- * match.pd (sinh (x) / cosh (x)): New simplification rule.
-
-2019-10-04 Martin Jambor <mjambor@suse.cz>
-
- * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
- fntype when switching to calling memcpy instead of memset.
-
-2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * hash-table.h (hash_table::empty_slow): Don't assign
- size_t values to int variables.
-
-2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * expr.c (convert_mode_scalar): Remove shadowing local var.
- (emit_block_move): Rename local vars.
- (block_move_libcall_safe_for_call_parm): Remove shadowing local var.
- (emit_push_insn): Rename local vars.
- (expand_assignment): Fix wrong mode in assign_stack_temp. Remove
- shadowing local vars.
- (store_constructor): Remove shadowing local vars. Rename local var.
- (store_field, expand_cond_expr_using_cmove,
- expand_expr_real_2): Remove shadowing local vars.
- (expand_expr_real_1,
- do_store_flag): Remove shadowing local vars. Rename local vars.
-
-2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable.
-
-2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * genmatch.c (commutate): Rename local var.
- (lower_cond): Reuse local var.
- (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1,
- dt_operand::gen, dt_operand::gen_gimple_expr,
- dt_simplify::gen): Add a param. Rename generated vars.
- (decision_tree::insert_operand,
- (capture_info::walk_match, capture_info::walk_result,
- capture_info::walk_c_expr): Rename local vars.
- (expr::gen_transform): Rename generated vars.
- Use snprintf. Rename local vars.
- (capture::gen_transform, dt_operand::get_name,
- dt_operand::gen_opname): Rename generated vars.
- (write_predicate): Adjust call to gen_kids.
- (parser::get_internal_capture_id): Rename generated vars.
- (parser::parse_expr): Rename local vars.
- (parser::parse_if): Remove local var.
- (parser::parse_pattern, add_operator): Rename local vars.
-
-2019-10-04 Joseph Myers <joseph@codesourcery.com>
-
- * builtins.def (DEF_C2X_BUILTIN): New macro.
- (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32)
- (nand64, nand128, roundeven, roundevenf, roundevenl, strdup)
- (strndup): Use DEF_C2X_BUILTIN.
- * coretypes.h (enum function_class): Add function_c2x_misc.
-
-2019-10-04 Maya Rashish <coypu@sdf.org>
-
- * ira-color.c (update_costs_from_allocno): Call
- ira_init_register_move_cost_if_necessary.
-
-2019-10-04 Jeff Law <law@redhat.com>
-
- * config/h8300/h8300.md (cpymemsi): Disable.
- (movmd, movmd_internal_<mode>, movstr, movsd):
- (movstr, movsd, stpcpy_internal_<mode>: Likewise.
- (movmd splitter, movsd splitter): Likewise.
-
- * range-op.cc (range_tests): Avoid two tests when ints and
- shorts are the same size.
-
-2019-10-04 Richard Biener <rguenther@suse.de>
-
- PR lto/91968
- * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
- BLOCK_VARS.
-
-2019-10-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/91982
- * tree-vect-loop.c (vectorizable_live_operation): Also guard
- against EXTRACT_LAST_REDUCTION.
- * tree-vect-stmts.c (vect_transform_stmt): Likewise.
-
-2019-10-04 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.o (value_range_from_overflowed_bounds): Rename from
- adjust_overflow_bound.
- (value_range_with_overflow): Rename from
- create_range_with_overflow.
- (create_possibly_reversed_range): Adjusted for above renames.
- (operator_*::wi_fold): Same.
- (cross_product_operator::wi_cross_productor): Same.
-
-2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- * doc/invoke.texi (-Wshadow=global, -Wshadow=local,
- -Wshadow=compatible-local): Fix description.
- Add an example where -Wshadow=compatible-local does not
- warn.
-
-2019-10-03 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
-
- * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
- (pa_attr_length_call): Adjust length for 64-bit plabel sequence.
-
-2019-10-03 Aaron Sawdey <acsawdey@linux.ibm.com>
-
- * expr.c (emit_block_move_hints): Slightly cleaner fix to
- can_move_by_pieces issue.
-
-2019-10-03 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/87243
- * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
- (darwin_driver_init): Use the sysroot provided by SDKROOT when that
- is available and the user has not set one on the command line.
-
-2019-10-03 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
-
- PR target/91769
- * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
- instead of REGNO equality check on addr.reg.
-
-2019-10-03 Jan Hubicka <hubicka@ucw.cz>
-
- * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
- PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New.
- * doc/invoke.texi (inline-heuristics-hint-percent,
- inline-heuristics-hint-percent-O2): Document.
- * tree-inline.c (inline_insns_single, inline_insns_auto): Add new
- hint attribute.
- (can_inline_edge_by_limits_p): Use it.
-
-2019-10-03 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/arm/arm.c (arm_print_value): Use real_to_decimal
- to print CONST_DOUBLEs.
-
-2019-10-03 Andrea Corallo <andrea.corallo@arm.com>
-
- * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
- * ipa-prop.c (ipcp_free_transformation_sum): New function.
- * ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
-
-2019-10-03 Aldy Hernandez <aldyh@redhat.com>
-
- * Makefile.in (OBJS): Add range.o and range-op.o.
- Remove wide-int-range.o.
- * function-tests.c (test_ranges): New.
- (function_tests_c_tests): Call test_ranges.
- * ipa-cp.c (ipa_vr_operation_and_type_effects): Call
- range_fold_unary_expr instead of extract_range_from_unary_expr.
- * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
- * range-op.cc: New file.
- * range-op.h: New file.
- * range.cc: New file.
- * range.h: New file.
- * selftest.h (range_tests): New prototype.
- * ssa.h: Include range.h.
- * tree-vrp.c (value_range_base::value_range_base): New
- constructors.
- (value_range_base::singleton_p): Do not call
- ranges_from_anti_range until sure we will need to.
- (value_range_base::type): Rename gcc_assert to
- gcc_checking_assert.
- (vrp_val_is_max): New argument.
- (vrp_val_is_min): Same.
- (wide_int_range_set_zero_nonzero_bits): Move from
- wide-int-range.cc.
- (extract_range_into_wide_ints): Remove.
- (extract_range_from_multiplicative_op): Remove.
- (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
- from extract_range_from_binary_expr.
- (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
- from extract_range_from_binary_expr.
- (extract_range_from_binary_expr): Remove.
- (normalize_for_range_ops): New.
- (range_fold_binary_expr): New.
- (range_fold_unary_expr): New.
- (value_range_base::num_pairs): New.
- (value_range_base::lower_bound): New.
- (value_range_base::upper_bound): New.
- (value_range_base::upper_bound): New.
- (value_range_base::contains_p): New.
- (value_range_base::invert): New.
- (value_range_base::union_): New.
- (value_range_base::intersect): New.
- (range_compatible_p): New.
- (value_range_base::operator==): New.
- (determine_value_range_1): Call range_fold_*expr instead of
- extract_range_from_*expr.
- * tree-vrp.h (class value_range_base): Add new constructors.
- Add methods for union_, intersect, operator==, contains_p,
- num_pairs, lower_bound, upper_bound, invert.
- (vrp_val_is_min): Add handle_pointers argument.
- (vrp_val_is_max): Same.
- (extract_range_from_unary_expr): Remove.
- (extract_range_from_binary_expr): Remove.
- (range_fold_unary_expr): New.
- (range_fold_binary_expr): New.
- * vr-values.c (vr_values::extract_range_from_binary_expr): Call
- range_fold_binary_expr instead of extract_range_from_binary_expr.
- (vr_values::extract_range_basic): Same.
- (vr_values::extract_range_from_unary_expr): Call
- range_fold_unary_expr instead of extract_range_from_unary_expr.
- * wide-int-range.cc: Remove.
- * wide-int-range.h: Remove.
-
-2019-10-02 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/rs6000.c (mem_operand_gpr): Use
- SIGNED_16BIT_OFFSET_EXTRA_P macro.
- (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro.
- (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P
- macro.
-
-2019-10-02 Joseph Myers <joseph@codesourcery.com>
-
- * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
- condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
- (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
- * glimits.h: Likewise.
-
-2019-10-03 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/91976
- * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
- size is not CONST_INT_P, set pieces_ok to false in that case. Simplify
- CONST_INT_P (size) && pieces_ok to pieces_ok. Formatting fix.
-
-2019-10-02 Martin Sebor <msebor@redhat.com>
-
- PR tree-optimization/80936
- * builtins.def (bcmp, bcopy, bzero): Declare nonnull.
-
-2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
-
- * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
- instead of reg_class_contents[ALL_REGS].
-
-2019-09-30 Jason Merrill <jason@redhat.com>
-
- Add some hash_map_safe_* functions like vec_safe_*.
- * hash-map.h (default_hash_map_size): New variable.
- (create_ggc): Use it as default argument.
- (hash_map_maybe_create, hash_map_safe_get)
- (hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
-
-2019-10-02 Jan Hubicka <hubicka@ucw.cz>
-
- * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
- MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
- * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
- (can_inline_edge_by_limits_p): Use it.
- (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
- (want_inline_small_function_p): Use O2 bounds.
- (edge_badness): LIkewise.
- * opts.c (default_options): Add OPT_finline_functions.
- * params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
- PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
- New parameters.
- * doc/invoke.texi (-finline-functions): Update documentation.
- (max-inline-insns-single-O2, max-inline-insns-auto-O2,
- inline-min-speedup-O2): Document.
- (early-inlining-insns-O2): Simplify docs.
-
-2019-10-02 Alexander Monakov <amonakov@ispras.ru>
-
- PR rtl-optimization/87047
- * ifcvt.c (average_cost): New static function. Use it...
- (noce_process_if_block): ... here.
-
-2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
-
- * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
- * config/rs6000/rs6000-string.c (expand_block_move): Add
- might_overlap parm.
- * config/rs6000/rs6000.md (movmemsi): Add new pattern.
- (cpymemsi): Add might_overlap parm to expand_block_move() call.
-
-2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
-
- * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
- (expand_builtin_memcpy): Use might_overlap parm.
- (expand_builtin_mempcpy_args): Use might_overlap parm.
- (expand_builtin_memmove): Call expand_builtin_memory_copy_args.
- (expand_builtin_memory_copy_args): Add might_overlap parm.
- * expr.c (emit_block_move_via_cpymem): Rename to
- emit_block_move_via_pattern, add might_overlap parm, use cpymem
- or movmem optab as appropriate.
- (emit_block_move_hints): Add might_overlap parm, do the right
- thing for might_overlap==true.
- * expr.h (emit_block_move_hints): Update prototype.
-
-2019-10-02 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-eh.h (unsplit_eh_edges): Declare.
- * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
- (unsplit_eh_edges): New function wrapping unsplit_all_eh.
- * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
- (struct store_immediate_info): Add lp_nr field.
- (store_immediate_info::store_immediate_info): Add NR2 parameter and
- initialize lp_nr with it.
- (struct merged_store_group): Add lp_nr and only_constants fields.
- (merged_store_group::merged_store_group): Initialize them.
- (merged_store_group::can_be_merged_into): Deal with them.
- (pass_store_merging): Rename terminate_and_release_chain into
- terminate_and_process_chain.
- (pass_store_merging::terminate_and_process_all_chains): Adjust to above
- renaming and remove useless assertions.
- (pass_store_merging::terminate_all_aliasing_chains): Small tweak.
- (stmts_may_clobber_ref_p): Be prepared for different basic blocks.
- (imm_store_chain_info::coalesce_immediate_stores): Use only_constants
- instead of always recomputing it and compare lp_nr.
- (imm_store_chain_info::output_merged_store): If the group is in an
- active EH region, register new stores if they can throw. Moreover,
- if the insertion has created new basic blocks, adjust the PHI nodes
- of the post landing pad.
- (imm_store_chain_info::output_merged_stores): If the original stores
- are in an active EH region, deregister them.
- (lhs_valid_for_store_merging_p): Prettify.
- (adjust_bit_pos): New function extracted from...
- (mem_valid_for_store_merging): ...here. Use it for the base address
- and also for the offset if it is the addition of a constant.
- (lp_nr_for_store): New function.
- (pass_store_merging::process_store): Change return type to bool.
- Call lp_nr_for_store to initialize the store info. Propagate the
- return status of various called functions to the return value.
- (store_valid_for_store_merging_p): New predicate.
- (enum basic_block_status): New enumeration.
- (get_status_for_store_merging): New function.
- (pass_store_merging::execute): If the function can throw and catch
- non-call exceptions, unsplit the EH edges on entry and clean up the
- CFG on exit if something changed. Call get_status_for_store_merging
- for every basic block and keep the chains open across basic blocks
- when possible. Terminate and process open chains at the end, if any.
-
-2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
-
- * reginfo.c (globalize_reg): Fix shadowed variable in
- function_abis walk.
-
-2019-10-02 Martin Jambor <mjambor@suse.cz>
-
- * cgraph.c (symbol_table::create_edge): New parameter cloning_p,
- do not compute some stuff when set.
- (cgraph_node::create_edge): Likewise.
- (cgraph_node::create_indirect_edge): Renamed last parameter to
- coning_p and flipped its meaning, don't even calculate
- inline_failed when set.
- * cgraph.h (cgraph_node::create_edge): Add new parameter.
- (symbol_table::::create_edge): Likewise.
- (cgraph_node::create_indirect_edge): Rename last parameter, flip
- the default value.
- * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
- call graph edge creating functions.
-
-2019-10-01 Jan Hubicka <hubicka@ucw.cz>
-
- PR c++/91222
- * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
- namespace types.
-
-2019-10-02 Shahab Vahedi <shahab@synopsys.com>
-
- * config/arc/arc.h (ASM_SPEC): Pass -mcode-density.
-
-2019-10-02 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (vect_transform_reduction): Declare.
- * tree-vect-stmts.c (vect_transform_stmt): Use it.
- * tree-vect-loop.c (vectorizable_reduction): Split out reduction
- stmt transform to ...
- (vect_transform_reduction): ... this.
-
-2019-10-02 Tobias Burnus <tobias@codesourcery.com>
-
- * omp-low.c (lower_omp_target): Dereference optional argument
- to work with the right pointer.
-
-2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to
- false.
- (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT.
- * langhooks.h (omp_is_optional_argument): New hook.
- * omp-general.c (omp_is_optional_argument): New.
- * omp-general.h (omp_is_optional_argument): New declaration.
- * omp-low.c (lower_omp_target): Create temporary for received value
- and take the address for new_var if the original variable was a
- DECL_BY_REFERENCE. Use size of referenced object when a
- pass-by-reference optional argument used as argument to firstprivate.
-
-2019-10-02 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/91940
- * tree-vect-patterns.c: Include tree-vector-builder.h and
- vec-perm-indices.h.
- (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by
- unpromoting the argument back to uint16_t, or by converting into a
- rotate, or into shifts plus ior.
-
-2019-10-02 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
- New.
- (vect_transform_cycle_phi): Declare.
- * tree-vect-stmts.c (vect_transform_stmt): Call
- vect_transform_cycle_phi.
- * tree-vect-loop.c (vectorizable_reduction): Split out
- PHI transformation stage to ...
- (vect_transform_cycle_phi): ... here.
-
-2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
-
- PR middle-end/91957
- * lra-lives.c (make_hard_regno_dead): Don't record conflicts for
- eliminable registers.
- (make_hard_regno_live): Likewise, and don't make them live.
-
-2019-10-01 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-show-locus.c (layout::print_gap_in_line_numbering):
- Call pp_emit_prefix.
- (layout::print_source_line): Likewise.
- (layout::start_annotation_line): Likewise.
- (diagnostic_show_locus): Remove call to temporarily clear the
- prefix.
- (selftest::test_one_liner_fixit_remove): Add test coverage for the
- interaction of pp_set_prefix with rulers and fix-it hints.
- * diagnostic.c (default_diagnostic_finalizer): Temporarily clear
- prefix when calling diagnostic_show_locus, rather than destroying
- it afterwards.
- (print_parseable_fixits): Temporarily clear prefix.
- * pretty-print.c (pp_format): Save and restore line_length, rather
- than assuming it is zero.
- (pp_output_formatted_text): Remove assertion that line_length is
- zero.
-
-2019-10-01 Jan Hubicka <hubicka@ucw.cz>
-
- * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
- Rename to ...
- (nonoverlapping_refs_since_match_p): ... this; handle also
- ARRAY_REFs.
- (alias_stats): Update stats.
- (dump_alias_stats): Likewise.
- (cheap_array_ref_low_bound): New function.
- (aliasing_matching_component_refs_p): Add partial_overlap
- argument;
- pass it to nonoverlapping_refs_since_match_p.
- (aliasing_component_refs_walk): Update call of
- aliasing_matching_component_refs_p
- (nonoverlapping_array_refs_p): New function.
- (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
- indirect_refs_may_alias_p): Update calls of
- nonoverlapping_refs_since_match_p.
-
-2019-10-01 Maya Rashish <coypu@sdf.org>
-
- PR target/85401
- * ira-color.c (allocno_copy_cost_saving): Call
- ira_init_register_move_cost_if_necessary.
-
-2019-10-01 Maciej W. Rozycki <macro@wdc.com>
-
- * Makefile.in (gnat_install_lib): New variable.
- * configure.ac: Substitute it.
- * configure: Regenerate.
-
-2019-10-01 Jan Hubicka <hubicka@ucw.cz>
-
- PR lto/91222
- * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type
- is matched with non-C++ type
-
-2019-10-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
- after local CSE.
-
-2019-10-01 Jan Hubicka <hubicka@ucw.cz>
-
- * doc/invoke.texi (early-inlining-insns-O2): Document.
- (early-inlining-insns): Update.
- * params.def (early-inlining-insns-O2): New bound.
- (early-inlining-insns): Update docs.
- * ipa-inline.c (want_early_inline_function_p): Use new bound.
-
-2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
-
- PR target/88562
- * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
- sh_check_add_incdec_notes to preserve REG_INC notes when replacing
- a memory access insn.
-
-2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com>
-
- * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
- vpmsumd.
-
-2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR target/77918
- * config/s390/s390.c (s390_expand_vec_compare): Use
- gen_vec_cmpordered and gen_vec_cmpunordered.
- * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered,
- vec_unordered): Delete.
- (vec_ordered<mode>): Rename to vec_cmpordered<mode>.
- (vec_unordered<mode>): Rename to vec_cmpunordered<mode>.
- (VEC_CMP_EXPAND): New iterator for the generic dispatcher.
- (vec_cmp<code>): Generic dispatcher.
-
-2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR target/77918
- * config/s390/vector.md (V_HW): Add V1TI in order to make
- vcond$a$b generate vcondv1tiv1tf.
-
-2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
-
- PR rtl-optimization/91948
- * ira-build.c (ira_create_allocno): Initialize
- ALLOCNO_CROSSED_CALLS_ABIS.
- * ira-color.c (allocno_reload_assign): Pass hard_regno rather
- than regno to ira_need_caller_save_p.
-
-2019-10-01 Alexandre Oliva <oliva@adacore.com>
-
- * config/i386/i386-options.c
- (ix86_recompute_optlev_based_flags): New, moved out of...
- (ix86_option_override_internal): ... this. Call it.
- (ix86_override_options_after_change): Call it here too.
-
- PR debug/91507
- * dwarf2out.c (override_type_for_decl_p): New.
- (gen_variable_die): Use it.
-
-2019-10-01 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.c (vectorizable_reduction): Move variables
- to where they are used.
-
-2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
-
- * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
- (build_def_use): Use PC instead of CC0 in a comment.
-
-2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtl.def (CLOBBER_HIGH): Delete.
- * doc/rtl.texi (clobber_high): Remove documentation.
- * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes.
- (reg_is_clobbered_by_clobber_high): Delete.
- (gen_hard_reg_clobber_high): Likewise.
- * alias.c (record_set): Remove CLOBBER_HIGH handling.
- * cfgexpand.c (expand_gimple_stmt): Likewise.
- * combine-stack-adj.c (single_set_for_csa): Likewise.
- * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies)
- (can_combine_p, is_parallel_of_n_reg_sets, try_combine)
- (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise.
- * cse.c (invalidate_reg): Remove clobber_high parameter.
- (invalidate): Update call accordingly.
- (canonicalize_insn): Remove CLOBBER_HIGH handling.
- (invalidate_from_clobbers, invalidate_from_sets_and_clobbers)
- (count_reg_usage, insn_live_p): Likewise.
- * cselib.h (cselib_invalidate_rtx): Remove sett argument.
- * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise.
- (cselib_invalidate_rtx_note_stores): Update call accordingly.
- (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling.
- (cselib_invalidate_regno, cselib_process_insn): Likewise.
- * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise.
- (mark_nonreg_stores_2): Likewise.
- * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise.
- (df_get_call_refs): Likewise.
- * dwarf2out.c (mem_loc_descriptor): Likewise.
- * emit-rtl.c (verify_rtx_sharing): Likewise.
- (copy_insn_1, copy_rtx_if_shared_1): Likewise.
- (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete.
- * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling.
- * genemit.c (gen_exp, gen_insn): Likewise.
- * genrecog.c (validate_pattern, remove_clobbers): Likewise.
- * haifa-sched.c (haifa_classify_rtx): Likewise.
- * ira-build.c (create_insn_allocnos): Likewise.
- * ira-costs.c (scan_one_insn): Likewise.
- * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise.
- (rtx_moveable_p, interesting_dest_for_shprep): Likewise.
- * jump.c (mark_jump_label_1): Likewise.
- * lra-int.h (lra_insn_reg::clobber_high): Delete.
- * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH
- handling.
- (mark_not_eliminable): Likewise.
- * lra-lives.c (process_bb_lives): Likewise.
- * lra.c (new_insn_reg): Remove clobber_high parameter.
- (collect_non_operand_hard_regs): Likewise. Update call to new
- insn_reg. Remove CLOBBER_HIGH handling.
- (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling. Update call
- to collect_non_operand_hard_regs.
- (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling.
- Update call to new_insn_reg.
- (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling.
- * postreload.c (reload_cse_simplify, reload_combine_note_use)
- (move2add_note_store): Likewise.
- * print-rtl.c (print_pattern): Likewise.
- * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise.
- (if_test_bypass_p): Likewise.
- * regcprop.c (kill_clobbered_value, kill_set_value): Likewise.
- * reginfo.c (reg_scan_mark_refs): Likewise.
- * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise.
- (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs)
- (forget_old_reloads_1): Likewise.
- * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn)
- (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread)
- (dbr_schedule): Likewise.
- * resource.c (update_live_status, mark_referenced_resources)
- (mark_set_resources): Likewise.
- * rtl.c (copy_rtx): Likewise.
- * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p)
- (note_pattern_stores): Likewise.
- (reg_is_clobbered_by_clobber_high): Delete.
- * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove
- CLOBBER_HIGH handling.
-
-2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/91452
- * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs.
- * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare.
- * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
- Handle ARM_PCS_TLSDESC.
- (aarch64_tlsdesc_abi_id): New function.
- * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call
- rtx instead of a list of clobbers and clobber_highs.
- (tlsdesc_small_<mode>): Update accordingly.
-
-2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an
- extra callee_abi argument.
- * config/aarch64/aarch64.c (aarch64_expand_call): Likewise.
- Insert a CALLEE_ABI unspec into the call pattern as the second
- element in the PARALLEL.
- (aarch64_simd_call_p): Delete.
- (aarch64_insn_callee_abi): Get the arm_pcs of the callee from
- the new CALLEE_ABI element of the PARALLEL.
- (aarch64_init_cumulative_args): Get the arm_pcs of the callee
- from the function type, if given.
- (aarch64_function_arg_advance): Handle ARM_PCS_SIMD.
- (aarch64_function_arg): Likewise. Return the arm_pcs of the callee
- when passed the function_arg_info end marker.
- (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the
- final argument of gen_sibcall.
- * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec.
- (call): Make operand 2 a const_int_operand and pass it to expand_call.
- Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand
- pattern.
- (call_value): Likewise operand 3.
- (sibcall): Likewise operand 2. Place the unspec before rather than
- after the return.
- (sibcall_value): Likewise operand 3.
- (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI.
- (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise.
- (*sibcall_insn, *sibcall_value_insn): Likewise. Remove empty
- constraint strings.
- (untyped_call): Pass const0_rtx as the callee ABI to gen_call.
-
-2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
-
- * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to
- choose_hard_reg_mode.
- * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
-
-2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
-
- * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo.
- (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto.
- (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto.
-
-2019-09-30 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-show-locus.c (line_label::line_label): Initialize
- m_has_vbar.
- (line_label::comparator): Reverse the sort order by m_state_idx,
- so that when the list is walked backwards the labels appear in
- order of insertion into the rich_location.
- (line_label::m_has_vbar): New field.
- (layout::print_any_labels): When dealing with multiple labels at
- the same line and column, only print vertical bars for the one
- with the highest label_line.
- (selftest::test_one_liner_labels): Update test for multiple labels
- to expect the labels to be in the order of insertion into the
- rich_location. Add a test for many such labels, where the column
- numbers are out-of-order relative to the insertion order.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/i386/i386.h (ix86_frame::expensive_p): New field.
- (ix86_frame::expensive_count): Likewise.
- * config/i386/i386.c (ix86_compute_frame_layout): Make the choice
- of use_fast_prologue_epilogue robust against incidental changes
- in function size.
-
-2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
-
- PR target/77918
- * config/s390/vector.md (vec_unordered<mode>): Call
- gen_vec_ordered<mode>.
-
-2019-09-30 Yuliang Wang <yuliang.wang@arm.com>
-
- * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3):
- New pattern for ASRD.
- * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec.
- * internal-fn.def (IFN_DIV_POW2): New internal function.
- * optabs.def (sdiv_pow2_optab): New optab.
- * tree-vect-patterns.c (vect_recog_divmod_pattern):
- Modify pattern to support new operation.
- * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above.
- * doc/sourcebuild.texi (vect_sdiv_pow2_si):
- Document new target selector.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi
- to test whether we're compiling a vector PCS function and to test
- whether the function needs to save a particular register.
- Remove the vector PCS handling of df_set_regs_ever_live.
- (aarch64_components_for_bb): Use crtl->abi to test whether
- the function needs to save a particular register.
- (aarch64_process_components): Use crtl->abi to test whether
- we're compiling a vector PCS function.
- (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
- (aarch64_epilogue_uses): Remove handling of vector PCS functions.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
- Delete.
- * config/aarch64/aarch64.c (aarch64_components_for_bb): Check
- whether the block calls a function that clobbers more registers
- than the current function is allowed to.
- (aarch64_use_simple_return_insn_p): Delete.
- * config/aarch64/aarch64.md (simple_return): Remove condition.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * function-abi.h (function_abi_aggregator): New class.
- * function-abi.cc (function_abi_aggregator::caller_save_regs): New
- function.
- * ira.c (update_equiv_regs_prescan): New function. Call
- set_paradoxical_subreg here rather than...
- (update_equiv_regs): ...here.
- (ira): Call update_equiv_regs_prescan.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * hard-reg-set.h (regs_invalidated_by_call): Only define if
- IN_TARGET_CODE.
- (call_used_or_fixed_regs): Likewise.
- (call_used_or_fixed_reg_p): Likewise.
- * reginfo.c (regs_invalidated_by_call): New macro.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * shrink-wrap.c: Include function-abi.h.
- (requires_stack_frame_p): Use crtl->abi to test whether the
- current function can use a register without saving it first.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * sel-sched-ir.h (_def::crosses_call): Replace with...
- (_def::crossed_call_abis): ..this new field.
- (def_list_add): Take a mask of ABIs instead of a crosses_call
- boolean.
- * sel-sched-ir.c (def_list_add): Likewise. Update initialization
- of _def accordingly.
- * sel-sched.c: Include function-abi.h.
- (hard_regs_data::regs_for_call_clobbered): Delete.
- (reg_rename::crosses_call): Replace with...
- (reg_rename::crossed_call_abis): ...this new field.
- (fur_static_params::crosses_call): Replace with...
- (fur_static_params::crossed_call_abis): ...this new field.
- (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered.
- (init_hard_regs_data): Use crtl->abi to test which registers the
- current function would need to save before it uses them.
- (mark_unavailable_hard_regs): Update handling of call-clobbered
- registers, using call_clobbers_in_region to find out which registers
- might be call-clobbered (but without taking -fipa-ra into account
- for now). Remove separate handling of partially call-clobbered
- registers.
- (verify_target_availability): Use crossed_call_abis instead of
- crosses_call.
- (get_spec_check_type_for_insn, find_used_regs): Likewise.
- (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * sched-deps.c (deps_analyze_insn): Use the ABI of the target
- function to test whether a register is fully or partly clobbered.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtlanal.c: Include function-abi.h.
- (reg_set_p): Use insn_callee_abi to get the ABI of the called
- function and clobbers_reg_p to test whether the register
- is call-clobbered.
- (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi
- to get the ABI of the called function and full_reg_clobbers to
- get the set of fully call-clobbered registers. Warn about the
- pitfalls of using this mode.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * reload.c: Include function-abi.h.
- (find_equiv_reg): Use clobbers_reg_p to test whether either
- of the equivalent registers is clobbered by a call.
- * reload1.c: Include function-abi.h.
- (reg_reloaded_call_part_clobbered): Delete.
- (reload): Use crtl->abi to test which registers would need
- saving in the prologue before use.
- (find_reg): Likewise.
- (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered.
- (reload_as_needed): Likewise. Use full_and_partial_reg_clobbers
- instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * regrename.h (du_head::call_clobber_mask): New field.
- (du_head::need_caller_save_reg): Replace with...
- (du_head::call_abis): ...this new field.
- * regrename.c: Include function-abi.h.
- (call_clobbered_in_chain_p): New function.
- (check_new_reg_p): Use crtl->abi when deciding whether a register
- is free for use after RA. Use call_clobbered_in_chain_p to test
- whether a candidate register would be clobbered by a call.
- (find_rename_reg): Don't add call-clobber conflicts here.
- (rename_chains): Check call_abis instead of need_caller_save_reg.
- (merge_chains): Update for changes to du_head.
- (build_def_use): Use insn_callee_abi to get the ABI of the call insn
- target. Record the ABI identifier in call_abis and the set of
- fully or partially clobbered registers in call_clobber_mask.
- Add fully-clobbered registers to hard_conflicts here rather
- than in find_rename_reg.
- * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h.
- (rename_single_chain): Check call_abis instead of need_caller_save_reg.
- * config/aarch64/falkor-tag-collision-avoidance.c: Include
- function-abi.h.
- * config/c6x/c6x.c: Likewise.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * regcprop.c (copyprop_hardreg_forward_1): Use the recorded
- mode of the register when deciding whether it is no longer
- available after a call.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * recog.c: Include function-abi.h.
- (peep2_find_free_register): Use crtl->abi when deciding whether
- a register is free for use after RA.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * postreload-gcse.c: Include regs.h and function-abi.h.
- (record_opr_changes): Use insn_callee_abi to get the ABI of the
- call insn target. Conservatively assume that partially-clobbered
- registers are altered.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * postreload.c (reload_combine_recognize_pattern): Use crtl->abi
- when deciding whether a register is free for use after RA.
- (reload_combine): Remove unnecessary use of fixed_reg_set.
- (reload_cse_move2add): Use insn_callee_abi to get the ABI of the
- call insn target. Use reg_mode when testing whether a register
- is no longer available.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (return_call_with_max_clobbers): Delete.
- * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
- * doc/tm.texi: Regenerate.
- * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers)
- (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
- * lra-int.h (lra_reg::actual_call_used_reg_set): Delete.
- (lra_reg::call_insn): Delete.
- * lra.c: Include function-abi.h.
- (initialize_lra_reg_info_element): Don't initialize the fields above.
- (lra): Use crtl->abi to test whether the current function needs to
- save a register in the prologue. Remove special pre-inheritance
- lra_create_live_ranges pass for flag_ipa_ra.
- * lra-assigns.c: Include function-abi.h
- (find_hard_regno_for_1): Use crtl->abi to test whether the current
- function needs to save a register in the prologue.
- (lra_assign): Assert that registers aren't allocated to a
- conflicting register, rather than checking only for overlaps
- with call_used_or_fixed_regs. Do this even for flag_ipa_ra,
- and for registers that are not live across a call.
- * lra-constraints.c (last_call_for_abi): New variable.
- (full_and_partial_call_clobbers): Likewise.
- (setup_next_usage_insn): Remove the register from
- full_and_partial_call_clobbers.
- (need_for_call_save_p): Use call_clobbered_in_region_p to test
- whether the register needs a caller save.
- (need_for_split_p): Use full_and_partial_reg_clobbers instead
- of call_used_or_fixed_regs.
- (inherit_in_ebb): Initialize and maintain last_call_for_abi and
- full_and_partial_call_clobbers.
- * lra-lives.c (check_pseudos_live_through_calls): Replace
- last_call_used_reg_set and call_insn arguments with an abi argument.
- Remove handling of lra_reg::call_insn. Use function_abi::mode_clobbers
- as the set of conflicting registers.
- (calls_have_same_clobbers_p): Delete.
- (process_bb_lives): Track the ABI of the last call instead of an
- insn/HARD_REG_SET pair. Update calls to
- check_pseudos_live_through_calls. Use eh_edge_abi to calculate
- the set of registers that could be clobbered by an EH edge.
- Include partially-clobbered as well as fully-clobbered registers.
- (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn.
- * lra-remat.c: Include function-abi.h.
- (call_used_regs_arr_len, call_used_regs_arr): Delete.
- (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered
- registers and bitmap_view to combine them into dead_regs.
- (call_used_input_regno_present_p): Take a function_abi argument
- and use it to test whether a register is call-clobbered.
- (calculate_gen_cands): Use insn_callee_abi to get the ABI of the
- call insn target. Update tje call to call_used_input_regno_present_p.
- (do_remat): Likewise.
- (lra_remat): Remove the initialization of call_used_regs_arr_len
- and call_used_regs_arr.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * loop-iv.c: Include regs.h and function-abi.h.
- (simplify_using_initial_values): Use insn_callee_abi to get the
- ABI of the call insn target. Conservatively assume that
- partially-clobbered registers are altered.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * function-abi.h (call_clobbers_in_region): Declare.
- (call_clobbered_in_region_p): New function.
- * function-abi.cc (call_clobbers_in_region): Likewise.
- * ira-int.h: Include function-abi.h.
- (ira_allocno::crossed_calls_abis): New field.
- (ALLOCNO_CROSSED_CALLS_ABIS): New macro.
- (ira_need_caller_save_regs): New function.
- (ira_need_caller_save_p): Likewise.
- * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead
- of call_used_or_fixed_regs.
- (do_reload): Use crtl->abi to test whether the current function
- needs to save a register in the prologue. Count registers that
- need to be saved rather than registers that don't.
- * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS.
- Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
- (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too.
- (propagate_some_info_from_allocno): Likewise.
- (copy_info_to_removed_store_destinations): Likewise.
- (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and
- ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively.
- (ira_build): Use ira_need_caller_save_regs instead of
- call_used_or_fixed_regs.
- * ira-color.c (calculate_saved_nregs): Use crtl->abi to test
- whether the current function would need to save a register
- before using it.
- (calculate_spill_cost): Likewise.
- (allocno_reload_assign): Use ira_need_caller_save_regs and
- ira_need_caller_save_p instead of call_used_or_fixed_regs.
- * ira-conflicts.c (ira_build_conflicts): Use
- ira_need_caller_save_regs rather than call_used_or_fixed_regs
- as the set of call-clobbered registers. Remove the
- call_used_or_fixed_regs mask from the calculation of
- temp_hard_reg_set and mask its use instead. Remove special
- handling of partially-clobbered registers.
- * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p.
- * ira-lives.c (process_bb_node_lives): Use mode_clobbers to
- calculate the set of conflicting registers for calls that
- can throw. Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS.
- Use full_and_partial_reg_clobbers rather than full_reg_clobbers
- for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
- Use eh_edge_abi to calculate the set of registers that could
- be clobbered by an EH edge. Include partially-clobbered as
- well as fully-clobbered registers.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * haifa-sched.c: Include function-abi.h.
- (alloc_global_sched_pressure_data): Use crtl->abi to check whether
- the function would need to save a register before using it.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * gcse.c: Include function-abi.h.
- (compute_hash_table_work): Use insn_callee_abi to get the ABI of
- the call insn target. Invalidate partially call-clobbered
- registers as well as fully call-clobbered ones.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * function.c (aggregate_value_p): Work out which ABI the
- function is using before testing which registers are at least
- partly preserved by a call.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * early-remat.c: Include regs.h and function-abi.h.
- (early_remat::maybe_add_candidate): Don't check for call-clobbered
- registers here.
- (early_remat::restrict_remat_for_unavail_regs): New function.
- (early_remat::restrict_remat_for_call): Likewise.
- (early_remat::process_block): Before calling emit_remat_insns
- for a previous call in the block, invalidate any candidates
- that would clobber call-preserved registers.
- (early_remat::emit_remat_insns_for_block): Likewise for the
- final call in a block. Do the same thing for live-in registers
- when calling emit_remat_insns at the head of a block.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test
- whether the current function needs to save at least part of a
- register before using it.
- (df_get_exit_block_use_set): Likewise for epilogue restores.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * df-problems.c: Include regs.h and function-abi.h.
- (df_rd_problem_data): Rename sparse_invalidated_by_call to
- sparse_invalidated_by_eh and dense_invalidated_by_call to
- dense_invalidated_by_eh.
- (df_print_bb_index): Update accordingly.
- (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise.
- (df_lr_confluence_n): Use eh_edge_abi to get the set of registers
- that are clobbered by an EH edge. Clobber partially-clobbered
- registers as well as fully-clobbered ones.
- (df_md_confluence_n): Likewise.
- (df_rd_local_compute): Likewise. Update for changes to
- df_rd_problem_data.
- * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set
- of registers that are clobbered by an EH edge. Includde partially-
- clobbered registers as well as fully-clobbered ones.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * cselib.c (cselib_process_insn): If we know what mode a
- register was set in, check whether it is clobbered in that
- mode by a call. Only fall back to reg_raw_mode if that fails.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * cse.c: Include regs.h and function-abi.h.
- (invalidate_for_call): Take the call insn as an argument.
- Use insn_callee_abi to get the ABI of the call and invalidate
- partially clobbered registers as well as fully clobbered ones.
- (cse_insn): Update call accordingly.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * combine.c: Include function-abi.h.
- (record_dead_and_set_regs): Use insn_callee_abi to get the ABI
- of the target of call insns. Invalidate partially-clobbered
- registers as well as fully-clobbered ones.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * cfgloopanal.c: Include regs.h and function-abi.h.
- (init_set_costs): Use default_function_abi to test whether
- a general register is call-clobbered.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
- instead of the call-clobbered sets.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * caller-save.c (setup_save_areas): Remove redundant |s of
- fixed_reg_set.
- (save_call_clobbered_regs): Likewise. Use the call ABI rather
- than call_used_or_fixed_regs to decide whether a REG_RETURNED
- value is useful.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtl.h (predefined_function_abi): Declare.
- (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
- instead of a boolean call_save flag.
- * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call
- accordingly.
- * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
- * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
- * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise.
- * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
- * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
- * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise.
- * reginfo.c (init_reg_modes_target): Likewise.
- (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
- instead of a boolean call_save flag.
- * targhooks.c: Include function-abi.h.
- (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode,
- using eh_edge_abi to choose the mode.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (hard_regno_call_part_clobbered): Take an ABI
- identifier instead of an rtx_insn.
- * doc/tm.texi: Regenerate.
- * hooks.h (hook_bool_insn_uint_mode_false): Delete.
- (hook_bool_uint_uint_mode_false): New function.
- * hooks.c (hook_bool_insn_uint_mode_false): Delete.
- (hook_bool_uint_uint_mode_false): New function.
- * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
- Take an ABI identifier instead of an rtx_insn.
- * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise.
- * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise.
- * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
- * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise.
- * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
- Likewise.
- * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise.
- * cselib.c: Include function-abi.h.
- (cselib_process_insn): Update call to
- targetm.hard_regno_call_part_clobbered, using insn_callee_abi
- to get the appropriate ABI identifier.
- * function-abi.cc (predefined_function_abi::initialize): Update call
- to targetm.hard_regno_call_part_clobbered.
- * ira-conflicts.c (ira_build_conflicts): Likewise.
- * ira-costs.c (ira_tune_allocno_costs): Likewise.
- * lra-constraints.c: Include function-abi.h.
- (need_for_call_save_p): Update call to
- targetm.hard_regno_call_part_clobbered, using insn_callee_abi
- to get the appropriate ABI identifier.
- * lra-lives.c (check_pseudos_live_through_calls): Likewise.
- * regcprop.c (copyprop_hardreg_forward_1): Update call
- to targetm.hard_regno_call_part_clobbered.
- * reginfo.c (choose_hard_reg_mode): Likewise.
- * regrename.c (check_new_reg_p): Likewise.
- * reload.c (find_equiv_reg): Likewise.
- * reload1.c (emit_reload_insns): Likewise.
- * sched-deps.c: Include function-abi.h.
- (deps_analyze_insn): Update call to
- targetm.hard_regno_call_part_clobbered, using insn_callee_abi
- to get the appropriate ABI identifier.
- * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update
- call to targetm.hard_regno_call_part_clobbered.
- * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/i386/i386.c: Include function-abi.h.
- (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY
- if they preserve some 256-bit or 512-bit SSE registers.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (insn_callee_abi): New hook.
- (remove_extra_call_preserved_regs): Delete.
- * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro.
- (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
- * doc/tm.texi: Regenerate.
- * targhooks.h (default_remove_extra_call_preserved_regs): Delete.
- * targhooks.c (default_remove_extra_call_preserved_regs): Delete.
- * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the
- insn argument.
- (aarch64_remove_extra_call_preserved_regs): Delete.
- (aarch64_insn_callee_abi): New function.
- (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
- (TARGET_INSN_CALLEE_ABI): New macro.
- * rtl.h (get_call_fndecl): Declare.
- (cgraph_rtl_info): Fix formatting. Tweak comment for
- function_used_regs. Remove function_used_regs_valid.
- * rtlanal.c (get_call_fndecl): Moved from final.c
- * function-abi.h (insn_callee_abi): Declare.
- (target_function_abi_info): Mention insn_callee_abi.
- * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar
- way to get_call_reg_set_usage did.
- (insn_callee_abi): New function.
- * regs.h (get_call_reg_set_usage): Delete.
- * final.c: Include function-abi.h.
- (collect_fn_hard_reg_usage): Add fixed and stack registers to
- function_used_regs before the main loop rather than afterwards.
- Use insn_callee_abi instead of get_call_reg_set_usage. Exit early
- if function_used_regs ends up not being useful.
- (get_call_fndecl): Move to rtlanal.c
- (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete.
- * caller-save.c: Include function-abi.h.
- (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi
- instead of get_call_reg_set_usage.
- * cfgcleanup.c: Include function-abi.h.
- (old_insns_match_p): Use insn_callee_abi instead of
- get_call_reg_set_usage.
- * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of
- a tree.
- * cgraph.c (cgraph_node::rtl_info): Likewise. Initialize
- function_used_regs.
- * df-scan.c: Include function-abi.h.
- (df_get_call_refs): Use insn_callee_abi instead of
- get_call_reg_set_usage.
- * ira-lives.c: Include function-abi.h.
- (process_bb_node_lives): Use insn_callee_abi instead of
- get_call_reg_set_usage.
- * lra-lives.c: Include function-abi.h.
- (process_bb_lives): Use insn_callee_abi instead of
- get_call_reg_set_usage.
- * postreload.c: Include function-abi.h.
- (reload_combine): Use insn_callee_abi instead of
- get_call_reg_set_usage.
- * regcprop.c: Include function-abi.h.
- (copyprop_hardreg_forward_1): Use insn_callee_abi instead of
- get_call_reg_set_usage.
- * resource.c: Include function-abi.h.
- (mark_set_resources, mark_target_live_regs): Use insn_callee_abi
- instead of get_call_reg_set_usage.
- * var-tracking.c: Include function-abi.h.
- (dataflow_set_clear_at_call): Use insn_callee_abi instead of
- get_call_reg_set_usage.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (fntype_abi): New target hook.
- * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise.
- * doc/tm.texi: Regenerate.
- * target.h (predefined_function_abi): Declare.
- * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi,
- if defined.
- * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value.
- * config/aarch64/aarch64.c: Include function-abi.h.
- (aarch64_simd_abi, aarch64_fntype_abi): New functions.
- (TARGET_FNTYPE_ABI): Define.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * Makefile.in (OBJS): Add function-abi.o.
- (GTFILES): Add function-abi.h.
- * function-abi.cc: New file.
- * function-abi.h: Likewise.
- * emit-rtl.h (rtl_data::abi): New field.
- * function.c: Include function-abi.h.
- (prepare_function_start): Initialize crtl->abi.
- * read-rtl-function.c: Include regs.h and function-abi.h.
- (read_rtl_function_body): Initialize crtl->abi.
- (read_rtl_function_body_from_file_range): Likewise.
- * reginfo.c: Include function-abi.h.
- (init_reg_sets_1): Initialize default_function_abi.
- (globalize_reg): Call add_full_reg_clobber for each predefined ABI
- when making a register global.
- * target-globals.h (this_target_function_abi_info): Declare.
- (target_globals::function_abi_info): New field.
- (restore_target_globals): Copy it.
- * target-globals.c: Include function-abi.h.
- (default_target_globals): Initialize the function_abi_info field.
- (target_globals): Allocate it.
- (save_target_globals): Free it.
-
-2019-09-30 Nick Clifton <nickc@redhat.com>
-
- PR target/85978
- * config/frv/frv.c (frv_register_move_cost): Add break statements
- to avoid falling through to the wrong cases. Tidy code.
-
-2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
- For multi-registers modes, test how big each register part is.
-
-2019-09-30 Nick Clifton <nickc@redhat.com>
-
- PR target/59205
- * config/iq2000/iq2000.c (iq2000_select_section): Delete.
- (TARGET_ASM_SELECT_SECTION): Remove definition.
- (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition.
-
-2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
-
- * emit-rtl.c (init_raw_REG): New function.
- (gen_raw_REG): Use init_raw_REG.
- * gengenrtl.c (gendef): Emit init_* functions and alloca_*
- macros.
- * rtl.c (rtx_alloc_stat_v): Use rtx_init.
- * rtl.h (rtx_init): New function.
- (rtx_alloca): New function.
- (init_raw_REG): New function.
- (alloca_raw_REG): New macro.
-
-2019-09-30 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/predicates.md (pcrel_address): Delete predicate.
- (pcrel_local_address): Replace pcrel_address predicate, use the
- new function address_to_insn_form.
- (pcrel_external_address): Replace with new implementation using
- address_to_insn_form..
- (prefixed_mem_operand): Delete predicate which is now unused.
- (pcrel_external_mem_operand): Delete predicate which is now
- unused.
- * config/rs6000/rs6000-protos.h (enum insn_form): New
- enumeration.
- (enum non_prefixed_form): New enumeration.
- (address_to_insn_form): New declaration.
- (prefixed_load_p): New declaration.
- (prefixed_store_p): New declaration.
- (prefixed_paddi_p): New declaration.
- (rs6000_asm_output_opcode): New declaration.
- (rs6000_final_prescan_insn): Move declaration and update calling
- signature.
- (address_is_prefixed): New helper inline function.
- * config/rs6000/rs6000.c(print_operand_address): Check for either
- PC-relative local symbols or PC-relative external symbols.
- (rs6000_emit_move): Support loading PC-relative addresses.
- (mode_supports_prefixed_address_p): Delete, no longer used.
- (rs6000_prefixed_address_mode_p): Delete, no longer used.
- (address_to_insn_form): New function to decode an address format.
- (reg_to_non_prefixed): New function to identify what the
- non-prefixed memory instruction format is for a register.
- (prefixed_load_p): New function to identify prefixed loads.
- (prefixed_store_p): New function to identify prefixed stores.
- (prefixed_paddi_p): New function to identify prefixed load
- immediates.
- (next_insn_prefixed_p): New static state variable.
- (rs6000_final_prescan_insn): New function to determine if an insn
- uses a prefixed instruction.
- (rs6000_asm_output_opcode): New function to emit 'p' in front of a
- prefixed instruction.
- * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook.
- (ASM_OUTPUT_OPCODE): New target hook.
- * config/rs6000/rs6000.md (prefixed): New insn attribute for
- prefixed instructions.
- (prefixed_length): New insn attribute for the size of prefixed
- instructions.
- (non_prefixed_length): New insn attribute for the size of
- non-prefixed instructions.
- (pcrel_local_addr): New insn to load up a local PC-relative
- address.
- (pcrel_extern_addr): New insn to load up an external PC-relative
- address.
- (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a
- GPR and loading a 128-bit floating point type to a GPR.
-
-2019-09-30 Richard Biener <rguenther@suse.de>
-
- * gimple.c (gimple_get_lhs): For PHIs return the result.
- * tree-vectorizer.h (vectorizable_live_operation): Also get the
- SLP instance as argument.
- * tree-vect-loop.c (vect_analyze_loop_operations): Also handle
- double-reduction PHIs with vectorizable_lc_phi.
- (vect_analyze_loop_operations): Adjust.
- (vect_create_epilog_for_reduction): Remove all code not dealing
- with reduction LC PHI or epilogue generation.
- (vectorizable_live_operation): Call vect_create_epilog_for_reduction
- for live stmts of reductions.
- * tree-vect-stmts.c (vectorizable_condition): When !for_reduction
- do not handle defs that are not vect_internal_def.
- (can_vectorize_live_stmts): Adjust.
- (vect_analyze_stmt): When the vectorized stmt defined a value
- used on backedges adjust the backedge uses of vectorized PHIs.
-
-2019-09-30 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/91853
- * tree-inline.c (force_value_to_type): New function.
- (setup_one_parameter): Use force_value_to_type to convert type.
- * tree-inline.c (force_value_to_type): Declare.
- * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal
- with register type mismatches.
-
-2019-09-30 Andreas Tobler <andreast@gcc.gnu.org>
-
- * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for
- 32-bit PowerPC.
- Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC.
- * config/rs6000/t-freebsd64: Make use of the above define and build
- the 32-bit libraries with secure-plt.
-
-2019-09-30 Jakub Jelinek <jakub@redhat.com>
-
- PR target/91931
- * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use
- gen_int_mode instead of GEN_INT.
-
-2019-09-29 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (gen_macho_low): Amend to include the mode
- argument.
- (machopic_indirect_data_reference): Amend gen_macho_low call
- to include mode argument
- * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment.
- * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces
- the macho_high expander and two define_insn entries.
-
-2019-09-29 Jakub Jelinek <jakub@redhat.com>
-
- PR bootstrap/90543
- * optc-save-gen.awk: Fix up printing string option differences.
-
-2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
- vec_perm cost to 1 for non-Power7 VSX architectures.
-
-2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
-
- * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand.
- (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise.
- (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise.
-
-2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.c (gen_macho_high): Amend to include the mode
- argument.
- (machopic_indirect_data_reference): Amend gen_macho_high call
- to include mode argument.
- (machopic_legitimize_pic_address): Likewise.
- * config/rs6000/rs6000.c (rs6000_legitimize_address):
- * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
- the macho_high expander and two define_insn entries.
-
-2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
-
- PR target/86805
- * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
-
-2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
-
- PR target/80672
- * config/sh/sh.c (parse_validate_atomic_model_option): Use
- std::string::compare instead of std::string::find.
-
-2019-09-27 Maciej W. Rozycki <macro@wdc.com>
-
- * configure: Regenerate.
-
-2019-09-27 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/91920
- * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
- variables as shared.
-
-2019-09-27 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
- replaces the expander and two define_insn entries.
- (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
- call.
- * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
-
-2019-09-27 David Malcolm <dmalcolm@redhat.com>
-
- * fibonacci_heap[...]
[diff truncated at 524288 bytes]
More information about the Gcc-cvs
mailing list