This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/28685] Multiple comparisons are not simplified
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 05 Feb 2012 12:40:17 +0000
- Subject: [Bug middle-end/28685] Multiple comparisons are not simplified
- Auto-submitted: auto-generated
- References: <bug-28685-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28685
Uros Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Target Milestone|--- |4.8.0
--- Comment #18 from Uros Bizjak <ubizjak at gmail dot com> 2012-02-05 12:40:17 UTC ---
(In reply to comment #17)
> The only one which is not fixed is comment #4
Following patch that enables post-reload compare elimination:
--cut here--
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c (revision 183904)
+++ config/i386/i386.c (working copy)
@@ -38685,6 +38685,9 @@
#undef TARGET_EXPAND_TO_RTL_HOOK
#define TARGET_EXPAND_TO_RTL_HOOK ix86_maybe_switch_abi
+#undef TARGET_FLAGS_REGNUM
+#define TARGET_FLAGS_REGNUM FLAGS_REG
+
#undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P ix86_legitimate_address_p
--cut here--
generates (-O2):
test:
xorl %edx, %edx
cmpl %esi, %edi
movl $1, %eax
sete %dl
cmovge %edx, %eax
ret
Please note missing comparison.
This shows that the pass is effective for x86_64, but will be enabled for 4.8.