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).