Uros Bizjak cc1ef413a8 i386: Additional peephole2 to use flags from CMPXCHG more [PR96189]
CMPXCHG instruction sets ZF flag if the values in the destination operand
and EAX register are equal; otherwise the ZF flag is cleared and value
from destination operand is loaded to EAX. Following assembly:

        xorl    %eax, %eax
        lock cmpxchgl   %edx, (%rdi)
        testl   %eax, %eax
        sete    %al

can be optimized by removing the unneeded comparison, since set ZF flag
signals that no update to EAX happened.  This patch adds peephole2
pattern to also handle XOR zeroing and load of -1 by OR.

2020-07-16  Uroš Bizjak  <ubizjak@gmail.com>

gcc/ChangeLog:
	PR target/96189
	* config/i386/sync.md
	(peephole2 to remove unneded compare after CMPXCHG):
	New pattern, also handle XOR zeroing and load of -1 by OR.

gcc/testsuite/ChangeLog:
	PR target/96189
	* gcc.target/i386/pr96189-1.c: New test.
2020-07-16 20:13:06 +02:00
2020-07-11 00:16:31 +00:00
2020-07-10 00:16:28 +00:00
2020-07-15 00:16:35 +00:00
2020-07-09 00:16:44 +00:00
2020-07-01 00:16:26 +00:00
2020-07-15 00:16:35 +00:00
2020-07-15 00:16:35 +00:00
2020-07-15 00:16:35 +00:00
2020-07-10 11:30:23 -07:00
2020-07-16 00:16:34 +00:00
2020-07-15 00:16:35 +00:00
2020-07-10 00:16:28 +00:00
2020-06-26 00:16:23 +00:00
2020-07-15 00:16:35 +00:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.
Description
No description provided
Readme 2.1 GiB
Languages
C++ 31.9%
C 31.3%
Ada 12%
D 6.5%
Go 6.4%
Other 11.5%