mirror of git://gcc.gnu.org/git/gcc.git
re PR middle-end/86511 (Traps are generated for non-trapping compares)
PR target/86511 * expmed.c (emit_store_flag): Do not emit setcc followed by a conditional move when trapping comparison was split to a non-trapping one (and vice versa). From-SVN: r262736
This commit is contained in:
parent
e2144dde6e
commit
f4eafec9bc
|
|
@ -1,3 +1,10 @@
|
||||||
|
2018-07-16 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
|
PR target/86511
|
||||||
|
* expmed.c (emit_store_flag): Do not emit setcc followed by a
|
||||||
|
conditional move when trapping comparison was split to a
|
||||||
|
non-trapping one (and vice versa).
|
||||||
|
|
||||||
2018-07-16 Ilya Leoshkevich <iii@linux.ibm.com>
|
2018-07-16 Ilya Leoshkevich <iii@linux.ibm.com>
|
||||||
|
|
||||||
* config/s390/s390.c (s390_function_profiler): Generate nops
|
* config/s390/s390.c (s390_function_profiler): Generate nops
|
||||||
|
|
@ -126,11 +133,12 @@
|
||||||
when result_eq is false.
|
when result_eq is false.
|
||||||
(expand_builtin_strcmp): Inline the calls first.
|
(expand_builtin_strcmp): Inline the calls first.
|
||||||
(expand_builtin_strncmp): Likewise.
|
(expand_builtin_strncmp): Likewise.
|
||||||
(inline_string_cmp): New routine. Expand a string compare
|
(inline_string_cmp): New routine. Expand a string compare
|
||||||
call by using a sequence of char comparison.
|
call by using a sequence of char comparison.
|
||||||
(inline_expand_builtin_string_cmp): New routine. Inline expansion
|
(inline_expand_builtin_string_cmp): New routine. Inline expansion
|
||||||
a call to str(n)cmp/memcmp.
|
a call to str(n)cmp/memcmp.
|
||||||
* doc/invoke.texi (--param builtin-string-cmp-inline-length): New option.
|
* doc/invoke.texi (--param builtin-string-cmp-inline-length):
|
||||||
|
New option.
|
||||||
* params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New.
|
* params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New.
|
||||||
|
|
||||||
2018-07-13 Richard Earnshaw <rearnsha@arm.com>
|
2018-07-13 Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
|
@ -724,9 +732,9 @@
|
||||||
|
|
||||||
* config.gcc (riscv*-*-*): When setting xlen, handle riscv-*.
|
* config.gcc (riscv*-*-*): When setting xlen, handle riscv-*.
|
||||||
|
|
||||||
2018-07-05 Indu Bhagat <indu.bhagat@oracle.com>
|
2018-07-05 Indu Bhagat <indu.bhagat@oracle.com>
|
||||||
|
|
||||||
* config/aarch64/aarch64-simd.md: correct flags text for
|
* config/aarch64/aarch64-simd.md: correct flags text for
|
||||||
MIN_EXPR replacement.
|
MIN_EXPR replacement.
|
||||||
|
|
||||||
2018-07-05 James Clarke <jrtc27@jrtc27.com>
|
2018-07-05 James Clarke <jrtc27@jrtc27.com>
|
||||||
|
|
|
||||||
|
|
@ -6038,6 +6038,11 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1,
|
||||||
if (!HAVE_conditional_move)
|
if (!HAVE_conditional_move)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
/* Do not turn a trapping comparison into a non-trapping one. */
|
||||||
|
if ((code != EQ && code != NE && code != UNEQ && code != LTGT)
|
||||||
|
&& flag_trapping_math)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* Try using a setcc instruction for ORDERED/UNORDERED, followed by a
|
/* Try using a setcc instruction for ORDERED/UNORDERED, followed by a
|
||||||
conditional move. */
|
conditional move. */
|
||||||
tem = emit_store_flag_1 (subtarget, first_code, op0, op1, mode, 0,
|
tem = emit_store_flag_1 (subtarget, first_code, op0, op1, mode, 0,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue