1. 24 Feb, 2019 5 commits
    • i386: Compile PR target/87007 tests with -mfpmath=sse · 28d08ad2
      -mfpmath=sse is needed to enable SSE for FP math in 32-bit.
      
      	PR target/87007
      	* gcc.target/i386/pr87007-1.c: Compile with -mfpmath=sse.
      	* gcc.target/i386/pr87007-2.c: Likewise.
      
      From-SVN: r269178
      H.J. Lu committed
    • re PR fortran/89266 (ICE with TRANSFER of len=0 character array constructor) · cdd17931
      2019-02-24  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/89266
      	PR fortran/88326
      	* target-memory.c (gfc_element_size): Return false if element size
      	cannot be determined; element size is returned separately.
      	(gfc_target_expr_size): Return false if expression size cannot be
      	determined; expression size is returned separately.
      	* target-memory.h: Adjust prototypes.
      	* check.c (gfc_calculate_transfer_sizes): Adjust references to
      	gfc_target_expr_size, gfc_element_size.
      	* arith.c (hollerith2representation): Likewise.
      	* class.c (find_intrinsic_vtab): Likewise.
      	* simplify.c (gfc_simplify_sizeof): Likewise.
      
      	PR fortran/89266
      	PR fortran/88326
      	* gfortran.dg/pr89266.f90: New test.
      	* gfortran.dg/pr88326.f90: New test.
      
      From-SVN: r269177
      Harald Anlauf committed
    • re PR rtl-optimization/89445 (_mm512_maskz_loadu_pd "forgets" to use the mask) · 953e25c4
      	PR rtl-optimization/89445
      	* simplify-rtx.c (simplify_ternary_operation): Don't use
      	simplify_merge_mask on operands that may trap.
      	* rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
      	SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
      	second operand is CONST_VECTOR, check if any element could be zero.
      	Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
      	their operands can trap.
      
      	* gcc.target/i386/avx512f-pr89445.c: New test.
      
      From-SVN: r269176
      Jakub Jelinek committed
    • PR libstdc++/89416 fix accessibility of members · c7f01cb6
      	PR libstdc++/89416
      	* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
      	copy and move members public.
      
      From-SVN: r269175
      Jonathan Wakely committed
    • Daily bump. · 00c80d9c
      From-SVN: r269173
      GCC Administrator committed
  2. 23 Feb, 2019 15 commits
    • Improve error message for bad arguments to script · 47466513
      	* generate_libstdcxx_web_docs: Improve error output.
      
      From-SVN: r269169
      Jonathan Wakely committed
    • P0340R2 Making std::underlying_type SFINAE-friendly · 3c26b759
      	* include/std/type_traits (__underlying_type_impl): New helper to
      	make underlying_type SFINAE-friendly.
      	(underlying_type): Derive from __underlying_type_impl.
      	* testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
      	test.
      
      From-SVN: r269168
      Jonathan Wakely committed
    • builtin-sprintf-10.c: Cast remaining wchar_t to wint_t to avoid a bogus -Wformat… · 46d496b9
      builtin-sprintf-10.c: Cast remaining wchar_t to wint_t to avoid a bogus -Wformat warning in ILP32...
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast remaining
      	wchar_t to wint_t to avoid a bogus -Wformat warning in
      	ILP32 (bug 77970).
      
      From-SVN: r269167
      Martin Sebor committed
    • gimple-ssa-sprintf.c (target_strtol): Rename... · 837865bd
      gcc/ChangeLog:
      	* gimple-ssa-sprintf.c (target_strtol): Rename...
      	(target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
      	(parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
      	check for range error.
      
      From-SVN: r269166
      Martin Sebor committed
    • Include "../../../libgfortran/ISO_Fortran_binding.h" · 34ab23c9
      	PR testsuite/89476
      	* gfortran.dg/ISO_Fortran_binding_5.c: Include
      	"../../../libgfortran/ISO_Fortran_binding.h".
      	* gfortran.dg/ISO_Fortran_binding_6.c: Likewise.
      
      From-SVN: r269165
      H.J. Lu committed
    • driver: Also prune joined switches with negation · aebe10d4
      When -march=native is passed to host_detect_local_cpu to the backend,
      it overrides all command lines after it.  That means
      
      $ gcc -march=native -march=skylake-avx512
      
      is the treated as
      
      $ gcc -march=skylake-avx512 -march=native
      
      Prune joined switches with Negative and RejectNegative to allow
      -march=skylake-avx512 to override previous -march=native on command-line.
      
      gcc/
      
      	PR driver/69471
      	* opts-common.c (prune_options): Also prune joined switches
      	with Negative and RejectNegative.
      	* config/i386/i386.opt (march=): Add Negative(march=).
      	(mtune=): Add Negative(mtune=).
      	* doc/options.texi: Document Negative used together with Joined
      	and RejectNegative.
      
      gcc/testsuite/
      
      	PR driver/69471
      	* gcc.dg/pr69471-1.c: New test.
      	* gcc.dg/pr69471-2.c: Likewise.
      	* gcc.target/i386/pr69471-3.c: Likewise.
      
      From-SVN: r269164
      H.J. Lu committed
    • re PR fortran/84387 (Defined output does not work for a derived type that has no components) · 85627e2a
      2019-02-23  Jerry DeLisle <jvdelisle@gcc.gnu.org>
      
      	PR fortran/84387
      	* trans-io.c (transfer_expr): Do not return if there are no
      	components to the derived type or class.
      
      	* gfortran.dg/dtio_34.f90: New test.
      
      From-SVN: r269161
      Jerry DeLisle committed
    • re PR c++/89419 (ICE in is_normal_capture_proxy starting with r253601) · 3aab3d37
      	PR c++/89419
      	* g++.dg/cpp1y/lambda-generic-89419.C: New test.
      
      From-SVN: r269159
      Marek Polacek committed
    • PR c++/88294 - ICE with non-constant noexcept-specifier. · 28a19c5b
      	* pt.c (maybe_instantiate_noexcept): Set up the list of local
      	specializations.  Set current_class_{ptr,ref}.
      
      	* g++.dg/cpp0x/noexcept34.C: New test.
      	* g++.dg/cpp0x/noexcept35.C: New test.
      
      From-SVN: r269158
      Marek Polacek committed
    • re PR fortran/88117 (ICE in gimplify_var_or_parm_decl, at gimplify.c:2697) · 524cee40
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/88117
      	* resolve.c (deferred_op_assign): Return if the lhs expression
      	has the pointer attribute.
      	* trans-expr.c (gfc_trans_assignment_1): Do not fix the string
      	length if the lhs expression has the pointer attribute.
      
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/88117
      	* gfortran.dg/deferred_character_32.f90 : New test
      
      From-SVN: r269157
      Paul Thomas committed
    • re PR fortran/89385 (Incorrect members of C descriptor for an allocatable object) · c2808389
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/89385
      	PR fortran/89366
      	* decl.c (gfc_verify_c_interop_param): Restriction on string
      	length being one is lifted for F2018.
      	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar
      	characters with intent in, make a temporary and copy the result
      	of the expression evaluation into it.
      	(gfc_conv_procedure_call): Set a flag for character formal args
      	having a character length that is not unity. If the procedure
      	is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case.
      	Also, extend bind C calls to unconditionally convert both
      	pointers and allocatable expressions.
      
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/89385
      	* gfortran.dg/ISO_Fortran_binding_1.f90 : Correct test for
      	previously incorrect lbound for allocatable expressions. Also
      	correct stop values to avoid repetition.
      	* gfortran.dg/ISO_Fortran_binding_5.f90 : New test
      	* gfortran.dg/ISO_Fortran_binding_5.c : Support previous test.
      
      	PR fortran/89366
      	* gfortran.dg/ISO_Fortran_binding_6.f90 : New test
      	* gfortran.dg/ISO_Fortran_binding_6.c : Support previous test.
      	* gfortran.dg/pr32599.f03 : Set standard to F2008.
      
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/89385
      	PR fortran/89366
      	* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc) : In the
      	interchange between character and derived, the character type
      	was being set incorrectly.
      	(gfc_desc_to_cfi_desc) : Eliminate the interchange of types in
      	this function. Do not add the kind and length information to
      	the type field of structures. Lbounds were incorrectly being
      	set to zero for allocatable and pointer descriptors. Should
      	have been non-pointer, non-allocatables that received this
      	treatment.
      
      From-SVN: r269156
      Paul Thomas committed
    • PR libstdc++/89446 fix null pointer dereference in char_traits · ace857f9
      	PR libstdc++/89446
      	* include/bits/char_traits.h (__constant_char_array): Check index is
      	in range before dereferencing.
      	(char_traits<char>::compare, char_traits<char>::find)
      	(char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
      	immediately if n is zero.
      	(char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
      	Remove workarounds for PR 67026.
      	* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
      	New test.
      	* testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
      	New test.
      
      From-SVN: r269148
      Jonathan Wakely committed
    • Capture source location of dtors (PR c++/89390) · c1753302
      gcc/cp/ChangeLog:
      	PR c++/89390
      	* parser.c (cp_parser_unqualified_id): Capture and use locations
      	for destructors.
      
      gcc/testsuite/ChangeLog:
      	PR c++/89390
      	* g++.dg/diagnostic/pr89390.C: Update expected location of error,
      	renaming to a multicharacter name, so that start != finish.  Add
      	tests for dtor locations.
      
      From-SVN: r269145
      David Malcolm committed
    • Daily bump. · 986e0e33
      From-SVN: r269142
      GCC Administrator committed
    • re PR tree-optimization/88074 (g++ hangs on math expression) · 0d527f0d
      	PR middle-end/88074
      	* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
      	mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
      	(norm2_add_squared): Likewise.  Use mp_exp_t rather than mpfr_exp_t.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r269139
      David Malcolm committed
  3. 22 Feb, 2019 20 commits
    • re PR c++/84676 (internal compiler error: Segmentation fault (build_new_op_1)) · 01d3d581
      2019-02-22  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/84676
      	* g++.dg/cpp0x/pr84676.C: New.
      
      From-SVN: r269138
      Paolo Carlini committed
    • builtin-sprintf-10.c: Cast wchar_t to wint_t to avoid a bogus -Wformat warning… · 0a7fe8bc
      builtin-sprintf-10.c: Cast wchar_t to wint_t to avoid a bogus -Wformat warning in ILP32 (bug 77970).
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast wchar_t to wint_t
      	to avoid a bogus -Wformat warning in ILP32 (bug 77970).
      
      From-SVN: r269137
      Martin Sebor committed
    • baseline_symbols.txt: Adjust. · 047b3e34
      	* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
      	* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
      
      From-SVN: r269136
      Eric Botcazou committed
    • re PR fortran/83057 (OPEN without a filename and without STATUS='SCRATCH' could produce a warning) · 56bf85c1
      2019-02-22  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/83057
      	* io.c (gfc_match_open): Fix logic in checks of OPEN statement
      	when NEWUNIT= is specified.
      
      	PR fortran/83057
      	* gfortran.dg/newunit_6.f90: New test.
      
      From-SVN: r269134
      Harald Anlauf committed
    • re PR fortran/89431 (CPP integer macros not defined) · f3e1797a
      2019-02-22  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/89431
      	* gfortran.texi: Fix documentation to match the implementation.
      
      From-SVN: r269132
      Steven G. Kargl committed
    • PR c++/89420 - ICE with CAST_EXPR in explicit-specifier. · 4770beb3
      	* decl.c (build_explicit_specifier): Don't check
      	processing_template_decl.  Call instantiation_dependent_expression_p
      	instead of value_dependent_expression_p.  Call
      	instantiate_non_dependent_expr_sfinae before
      	build_converted_constant_expr instead of calling
      	instantiate_non_dependent_expr after it.  Add
      	processing_template_decl_sentinel.
      
      	* g++.dg/cpp2a/explicit14.C: New test.
      
      From-SVN: r269131
      Marek Polacek committed
    • re PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less… · fcb141ac
      re PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target)
      
      	PR libstdc++/89402
      	* src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return
      	type to std::size_t and argument to type to long double.
      
      From-SVN: r269130
      Jakub Jelinek committed
    • extend.texi (Other Builtins): Add __builtin_is_constant_evaluated. · 16a919a7
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (Other Builtins): Add
      	__builtin_is_constant_evaluated.
      
      From-SVN: r269129
      Martin Sebor committed
    • re PR tree-optimization/87609 (miscompilation with restrict and loop) · c87cc0c0
      2019-02-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87609
      	* tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
      
      From-SVN: r269127
      Richard Biener committed
    • PR tree-optimization/88993 - GCC 9 -Wformat-overflow=2 should reflect real libc limits · eb319c50
      PR tree-optimization/88993 - GCC 9 -Wformat-overflow=2 should reflect real libc limits
      PR tree-optimization/88835 - overly aggressive -Werror=format-overflow for printf
      
      gcc/ChangeLog:
      
      	PR tree-optimization/88993
      	PR tree-optimization/88853
      	* gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
      	New helper.
      	(sprintf_dom_walker::call_info::is_string_func): New helper.
      	(format_directive): Only issue "may exceed" 4095/INT_MAX warnings
      	for formatted string functions.
      	(sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/88993
      	PR tree-optimization/88853
      	* gcc.dg/tree-ssa/builtin-fprintf-warn-2.c: New test.
      	* gcc.dg/tree-ssa/builtin-printf-warn-2.c: New test.
      	* gcc.dg/tree-ssa/builtin-snprintf-warn-3.c: Adjust.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Same.
      
      From-SVN: r269125
      Martin Sebor committed
    • re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c … · cfed471a
      re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c   -O1 start with r265398)
      
      	PR rtl-optimization/87761
      	* config/mips/mips.md: Add new combiner pattern to recognize
      	a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
      
      From-SVN: r269123
      Jeff Law committed
    • Handle stack pointer with SUBS/ADDS instructions. · 341fca1b
      In general the stack pointer was not handled for many SUBS/ADDS patterns in
      aarch64.md.
      Both the "extended register" and "immediate" forms allow the stack pointer to be
      used as the source register, while no form allows the stack pointer for the
      destination register.
      
      The define_insn patterns generating ADDS/SUBS did not allow the stack pointer
      for any operand, while the define_peephole2 patterns that generated RTX to be
      matched by these patterns allowed the stack pointer for any operand.
      
      The patterns are fixed by adding the 'k' constraint for the first source operand
      to all define_insns that generate the ADDS/SUBS "extended register" and
      "immediate" forms (but not the "shifted register" form).
      
      In peephole optimizations, constraint strings are ignored (see "(gccint) C
      Constraint Interface" info node in the documentation), so the decision to act or
      not is based solely on the predicate and condition.
      This patch introduces a new predicate "aarch64_general_reg" to be used in
      define_peephole2 patterns where only GENERAL_REGS registers are acceptable and
      uses that predicate in the peepholes that generate patterns for ADDS/SUBS.
      
      Full bootstrap and regtest done on aarch64-none-linux-gnu.
      Regression tests done on aarch64-none-linux-gnu and aarch64-none-elf cross
      compiler.
      
      OK for trunk?
      
      
      gcc/ChangeLog:
      
      2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	PR target/89324
      	* config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
      	destination register in peepholes generating patterns for ADDS/SUBS.
      	(add<mode>3_compare0,
      	*addsi3_compare0_uxtw, add<mode>3_compareC,
      	add<mode>3_compareV_imm, add<mode>3_compareV,
      	*adds_<optab><ALLX:mode>_<GPI:mode>,
      	*subs_<optab><ALLX:mode>_<GPI:mode>,
      	*adds_<optab><ALLX:mode>_shift_<GPI:mode>,
      	*subs_<optab><ALLX:mode>_shift_<GPI:mode>,
      	*adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
      	*sub<mode>3_compare0, *subsi3_compare0_uxtw,
      	sub<mode>3_compare1): Allow stack pointer for source register.
      	* config/aarch64/predicates.md (aarch64_general_reg): New predicate.
      
      
      gcc/testsuite/ChangeLog:
      
      2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	PR target/89324
      	* gcc.dg/rtl/aarch64/subs_adds_sp.c: New test.
      	* gfortran.fortran-torture/compile/pr89324.f90: New test.
      
      From-SVN: r269122
      Matthew Malcomson committed
    • PR c/89425 - -Wabsolute-value warns in dead subexpressions · 3c2a70cb
      gcc/c/ChangeLog:
      
      	PR c/89425
      	* c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
      	unreachable subexpressions.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/89425
      	* gcc.dg/Wabsolute-value.c: New test.
      
      From-SVN: r269121
      Martin Sebor committed
    • Wbuiltin-declaration-mismatch-12.c: New test. · d228ac9a
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wbuiltin-declaration-mismatch-12.c: New test.
      
      From-SVN: r269120
      Martin Sebor committed
    • i386: Add pass_remove_partial_avx_dependency · f1432280
      With -mavx, for
      
      $ cat foo.i
      extern float f;
      extern double d;
      extern int i;
      
      void
      foo (void)
      {
        d = f;
        f = i;
      }
      
      we need to generate
      
      	vxorp[ds]	%xmmN, %xmmN, %xmmN
      	...
      	vcvtss2sd	f(%rip), %xmmN, %xmmX
      	...
      	vcvtsi2ss	i(%rip), %xmmN, %xmmY
      
      to avoid partial XMM register stall.  This patch adds a pass to generate
      a single
      
      	vxorps		%xmmN, %xmmN, %xmmN
      
      at entry of the nearest dominator for basic blocks with SF/DF conversions,
      which is in the fake loop that contains the whole function, instead of
      generating one
      
      	vxorp[ds]	%xmmN, %xmmN, %xmmN
      
      for each SF/DF conversion.
      
      NB: The LCM algorithm isn't appropriate here since it may place a vxorps
      inside the loop.  Simple testcase show this:
      
      $ cat badcase.c
      
      extern float f;
      extern double d;
      
      void
      foo (int n, int k)
      {
        for (int j = 0; j != n; j++)
          if (j < k)
            d = f;
      }
      
      It generates
      
          ...
          loop:
            if(j < k)
              vxorps    %xmm0, %xmm0, %xmm0
              vcvtss2sd f(%rip), %xmm0, %xmm0
            ...
          loopend
          ...
      
      This is because LCM only works when there is a certain benifit.  But for
      conditional branch, LCM wouldn't move
      
         vxorps  %xmm0, %xmm0, %xmm0
      
      out of loop.  SPEC CPU 2017 on Intel Xeon with AVX512 shows:
      
      1. The nearest dominator
      
      |RATE			|Improvement|
      |500.perlbench_r	| 0.55%	|
      |538.imagick_r		| 8.43%	|
      |544.nab_r		| 0.71%	|
      
      2. LCM
      
      |RATE			|Improvement|
      |500.perlbench_r	| -0.76% |
      |538.imagick_r		| 7.96%  |
      |544.nab_r		| -0.13% |
      
      Performance impacts of SPEC CPU 2017 rate on Intel Xeon with AVX512
      using
      
      -Ofast -flto -march=skylake-avx512 -funroll-loops
      
      before
      
      commit e739972ad6ad05e32a1dd5c29c0b950a4c4bd576
      Author: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
      Date:   Thu Jan 31 20:06:42 2019 +0000
      
                  PR target/89071
                  * config/i386/i386.md (*extendsfdf2): Split out reg->reg
                  alternative to avoid partial SSE register stall for TARGET_AVX.
                  (truncdfsf2): Ditto.
                  (sse4_1_round<mode>2): Ditto.
      
          git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268427 138bc75d-0d04-0410-961f-82ee72b054a4
      
      are:
      
      |INT RATE		|Improvement|
      |500.perlbench_r	| 0.55%	|
      |502.gcc_r		| 0.14%	|
      |505.mcf_r		| 0.08%	|
      |523.xalancbmk_r	| 0.18%	|
      |525.x264_r		|-0.49%	|
      |531.deepsjeng_r	|-0.04%	|
      |541.leela_r		|-0.26%	|
      |548.exchange2_r	|-0.3%	|
      |557.xz_r		|BuildSame|
      
      |FP RATE		|Improvement|
      |503.bwaves_r	        |-0.29% |
      |507.cactuBSSN_r	| 0.04%	|
      |508.namd_r		|-0.74%	|
      |510.parest_r		|-0.01%	|
      |511.povray_r		| 2.23%	|
      |519.lbm_r		| 0.1%	|
      |521.wrf_r		| 0.49%	|
      |526.blender_r		| 0.13%	|
      |527.cam4_r		| 0.65%	|
      |538.imagick_r		| 8.43%	|
      |544.nab_r		| 0.71%	|
      |549.fotonik3d_r	| 0.15%	|
      |554.roms_r		| 0.08%	|
      
      After commit e739972ad6ad05e32a1dd5c29c0b950a4c4bd576, on Skylake client,
      impacts on 538.imagick_r with
      
      -fno-unsafe-math-optimizations -march=native -Ofast -funroll-loops -flto
      
      1. Size comparision:
      
      before:
      
         text	   data	    bss	    dec	    hex	filename
      2436377	   8352	   4528	2449257	 255f69 imagick_r
      
      after:
      
         text	   data	    bss	    dec	    hex	filename
      2425249	   8352	   4528	2438129	 2533f1 imagick_r
      
      2. Number of vxorps:
      
      before		after		difference
      4948            4135            -19.66%
      
      3. Performance improvement:
      
      |RATE			|Improvement|
      |538.imagick_r		| 5.5%  |
      
      gcc/
      
      2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
      	    Hongtao Liu  <hongtao.liu@intel.com>
      	    Sunil K Pandey  <sunil.k.pandey@intel.com>
      
      	PR target/87007
      	* config/i386/i386-passes.def: Add
      	pass_remove_partial_avx_dependency.
      	* config/i386/i386-protos.h
      	(make_pass_remove_partial_avx_dependency): New.
      	* config/i386/i386.c (make_pass_remove_partial_avx_dependency):
      	New function.
      	(pass_data_remove_partial_avx_dependency): New.
      	(pass_remove_partial_avx_dependency): Likewise.
      	(make_pass_remove_partial_avx_dependency): Likewise.
      	* config/i386/i386.md (avx_partial_xmm_update): New attribute.
      	(*extendsfdf2): Add avx_partial_xmm_update.
      	(truncdfsf2): Likewise.
      	(*float<SWI48:mode><MODEF:mode>2): Likewise.
      	(SF/DF conversion splitters): Disabled for TARGET_AVX.
      
      gcc/testsuite/
      
      2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
      	    Hongtao Liu  <hongtao.liu@intel.com>
      	    Sunil K Pandey  <sunil.k.pandey@intel.com>
      
      	PR target/87007
      	* gcc.target/i386/pr87007-1.c: New test.
      	* gcc.target/i386/pr87007-2.c: Likewise.
      
      Co-Authored-By: Hongtao Liu <hongtao.liu@intel.com>
      Co-Authored-By: Sunil K Pandey <sunil.k.pandey@intel.com>
      
      From-SVN: r269119
      H.J. Lu committed
    • re PR middle-end/85598 (Incorrect -Wformat-truncation in a loop only at -O2 and -O3) · 965779b4
      	PR middle-end/85598
      	* gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
      	analysis for pass.
      
      From-SVN: r269115
      Aldy Hernandez committed
    • x86: (Reapply) Move AESNI generation to Skylake and Goldmont · c9450033
      This is a repeat of commit r263989, which commit r264052 accidentally
      reverted.
      
      2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>
      
      	PR target/89444
      	* config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
      	(PTA_SKYLAKE): Add PTA_AES.
      	(PTA_GOLDMONT): Likewise.
      
      From-SVN: r269114
      Thiago Macieira committed
    • c-pch.c (no_checksum): Remove. · 921bb9d1
      2019-02-22  Richard Biener  <rguenther@suse.de>
      
      	c-family/
      	* c-pch.c (no_checksum): Remove.
      	(pch_init): Remove assertion that executable_checksum is not
      	all zero.
      	(c_common_valid_pch): Likewise.
      
      From-SVN: r269113
      Richard Biener committed
    • [GCC, AArch64] Fix a couple of bugs in BTI · c904388d
      While doing more testing I found a couple of issues with my BTI patches.
      This patch fixes them:
      1) Remove a reference to return address key. The original patch was written
      based on a different not yet committed patch ([PATCH 3/3][GCC][AARCH64] Add
      support for pointer authentication B key) and I missed out on cleaning this
      up. This is hidden behind the configuration option and thus went unnoticed.
      2) Add a missed case for adding the BTI instruction in thunk functions.
      
      *** gcc/ChangeLog ***
      
      2019-02-22  Sudakshina Das  <sudi.das@arm.com>
      
      	* config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
      	instruction if enabled.
      	(aarch64_override_options): Remove reference to return address key.
      
      From-SVN: r269112
      Sudakshina Das committed
    • re PR tree-optimization/89440 (ICE in vect_create_epilog_for_reduction, at tree-vect-loop.c:5502) · 9f0ffb2b
      2019-02-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89440
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
      	not necessary assert.
      
      	* gcc.dg/vect/pr89440.c: New testcase.
      
      From-SVN: r269111
      Richard Biener committed