public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/11831] [ARM] Logical expression evaluation with condition fields
[not found] <bug-11831-5666@http.gcc.gnu.org/bugzilla/>
@ 2009-03-13 12:33 ` ramana dot r at gmail dot com
2009-03-17 11:41 ` [Bug middle-end/11831] " rearnsha at gcc dot gnu dot org
` (2 subsequent siblings)
3 siblings, 0 replies; 4+ messages in thread
From: ramana dot r at gmail dot com @ 2009-03-13 12:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from ramana dot r at gmail dot com 2009-03-13 12:33 -------
With Mainline today it looks worse -
stmfd sp!, {r4, lr}
mov r4, r0
bl func
add r0, r4, r0
ldrb r3, [r0, #-4] @ zero_extendqisi2
cmp r3, #97
beq .L6
.L2:
mov r0, #0
ldmfd sp!, {r4, pc}
.L6:
ldrb r3, [r0, #-3] @ zero_extendqisi2
cmp r3, #98
bne .L2
ldrb r3, [r0, #-2] @ zero_extendqisi2
cmp r3, #99
bne .L2
ldrb r0, [r0, #-1] @ zero_extendqisi2
cmp r0, #100
movne r0, #0
moveq r0, #1
ldmfd sp!, {r4, pc}
--
ramana dot r at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rearnsha at arm dot com,
| |ramana dot r at gmail dot
| |com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11831
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/11831] [ARM] Logical expression evaluation with condition fields
[not found] <bug-11831-5666@http.gcc.gnu.org/bugzilla/>
2009-03-13 12:33 ` [Bug target/11831] [ARM] Logical expression evaluation with condition fields ramana dot r at gmail dot com
@ 2009-03-17 11:41 ` rearnsha at gcc dot gnu dot org
2010-02-08 11:18 ` steven at gcc dot gnu dot org
2010-02-08 11:27 ` rearnsha at gcc dot gnu dot org
3 siblings, 0 replies; 4+ messages in thread
From: rearnsha at gcc dot gnu dot org @ 2009-03-17 11:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from rearnsha at gcc dot gnu dot org 2009-03-17 11:41 -------
This isn't something that should be fixed in the back-end, but most likely an
enhancement to a pass such as ifcvt. To handle this case we would have to
teach ifcvt about dominated conditions and conditional comparisons -- at
present it can only handle conditional insns that do not modify the predicating
condition.
--
rearnsha at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|target |middle-end
Priority|P3 |P4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11831
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/11831] [ARM] Logical expression evaluation with condition fields
[not found] <bug-11831-5666@http.gcc.gnu.org/bugzilla/>
2009-03-13 12:33 ` [Bug target/11831] [ARM] Logical expression evaluation with condition fields ramana dot r at gmail dot com
2009-03-17 11:41 ` [Bug middle-end/11831] " rearnsha at gcc dot gnu dot org
@ 2010-02-08 11:18 ` steven at gcc dot gnu dot org
2010-02-08 11:27 ` rearnsha at gcc dot gnu dot org
3 siblings, 0 replies; 4+ messages in thread
From: steven at gcc dot gnu dot org @ 2010-02-08 11:18 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from steven at gcc dot gnu dot org 2010-02-08 11:18 -------
Does the ARM backend already support conditional compares?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11831
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/11831] [ARM] Logical expression evaluation with condition fields
[not found] <bug-11831-5666@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2010-02-08 11:18 ` steven at gcc dot gnu dot org
@ 2010-02-08 11:27 ` rearnsha at gcc dot gnu dot org
3 siblings, 0 replies; 4+ messages in thread
From: rearnsha at gcc dot gnu dot org @ 2010-02-08 11:27 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from rearnsha at gcc dot gnu dot org 2010-02-08 11:26 -------
(In reply to comment #6)
> Does the ARM backend already support conditional compares?
>
Yes, but only by manipulating store-flag sequences in the combine pass. That's
a poor-man's implementation and it can lead to some sequences that don't get
fully simplified.
That code could be compiled to
ldrb r3, [r4, #-4] @ zero_extendqisi2
cmp r3, #97
ldrbeq r3, [r4, #-3] @ zero_extendqisi2
cmpeq r3, #98
ldrbeq r3, [r4, #-2] @ zero_extendqisi2
cmpeq r3, #99
ldrbeq r3, [r4, #-1] @ zero_extendqisi2
cmpeq r3, #100
but the compiler currently has no chance of achieving that.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11831
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-02-08 11:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-11831-5666@http.gcc.gnu.org/bugzilla/>
2009-03-13 12:33 ` [Bug target/11831] [ARM] Logical expression evaluation with condition fields ramana dot r at gmail dot com
2009-03-17 11:41 ` [Bug middle-end/11831] " rearnsha at gcc dot gnu dot org
2010-02-08 11:18 ` steven at gcc dot gnu dot org
2010-02-08 11:27 ` rearnsha at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).