[Bug tree-optimization/43965] Missed VRP and/or jump-threading
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43965 Jeffrey A. Law changed: What|Removed |Added Status|NEW |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #4 from Jeffrey A. Law --- Fixed by the combination of a variety of commits through the last few years. Now we get: movl4(%esp), %eax movl(%eax), %edx movl8(%esp), %eax testl %edx, %edx movl(%eax), %eax je .L2 movl(%edx), %ecx xorl%edx, %edx testl %eax, %eax je .L3 .L5: movl(%eax), %edx .L3: movl%ecx, %eax subl%edx, %eax cmpl%ecx, %edx movl$0, %edx cmove %edx, %eax ret .p2align 4,,7 .p2align 3 .L2: xorl%ecx, %ecx testl %eax, %eax jne .L5 ret
[Bug tree-optimization/43965] Missed VRP and/or jump-threading
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43965 Richard Guenther changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #3 from Richard Guenther 2012-06-29 14:20:24 UTC --- More like predicated value-numbering should figure this out.
[Bug tree-optimization/43965] Missed VRP and/or jump-threading
--- Comment #2 from rguenth at gcc dot gnu dot org 2010-05-03 09:55 --- Confirmed. This is a case where we'd have to do some interesting VRP and jump-threading. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Component|middle-end |tree-optimization Ever Confirmed|0 |1 Keywords||missed-optimization Last reconfirmed|-00-00 00:00:00 |2010-05-03 09:55:51 date|| Summary|doubled code (x86) |Missed VRP and/or jump- ||threading http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43965