Merge lp:~ramana/gcc-linaro/47-smin-umin-idiom into lp:gcc-linaro/4.7

Proposed by Ramana Radhakrishnan
Status: Rejected
Rejected by: Michael Hope
Proposed branch: lp:~ramana/gcc-linaro/47-smin-umin-idiom
Merge into: lp:gcc-linaro/4.7
To merge this branch: bzr merge lp:~ramana/gcc-linaro/47-smin-umin-idiom
Reviewer Review Type Date Requested Status
Linaro Toolchain Developers Pending
Review via email: mp+104327@code.launchpad.net

Description of the change

Proposed patch modifies code on the left as the equivalent code on the right. Pushing this for some regression testing before asking upstream.

foo: foo:
 @ args = 0, pretend = 0, frame = 0 @ args = 0, pretend = 0, frame = 0
 @ frame_needed = 0, uses_anonymous_args = 0 @ frame_needed = 0, uses_anonymous_args = 0
 @ link register save eliminated. @ link register save eliminated.
 cmp r2, r1 <
 movcs r2, r1 <
 cmp r2, r0 cmp r2, r0
             > cmpcs r1, r0
 movls r0, #0 movls r0, #0
 movhi r0, #1 movhi r0, #1
 bx lr bx lr
 .size foo, .-foo .size foo, .-foo
 .align 2 .align 2
 .global bar .global bar
 .type bar, %function .type bar, %function
bar: bar:
 @ args = 0, pretend = 0, frame = 0 @ args = 0, pretend = 0, frame = 0
 @ frame_needed = 0, uses_anonymous_args = 0 @ frame_needed = 0, uses_anonymous_args = 0
 @ link register save eliminated. @ link register save eliminated.
 cmp r2, r1 <
 movge r2, r1 <
 cmp r2, r0 cmp r2, r0
             > cmpge r1, r0
 movle r0, #0 movle r0, #0
 movgt r0, #1 movgt r0, #1
 bx lr bx lr

To post a comment you must log in.
Revision history for this message
Ramana Radhakrishnan (ramana) wrote :

Better diff below :)

/* { dg-options "-O2" } */
/* { dg-skip-if "" { arm_thumb1_ok } } */
/* { dg-final { scan-assembler "cmpge\t" } } */
/* { dg-final { scan-assembler "cmpcs\t" } } */

#define min(x, y) ((x) <= (y)) ? (x) : (y)
unsigned int foo (unsigned int i, unsigned int x ,unsigned int y)
{
  return i < (min (x, y));
}

int bar (int i, int x, int y)
{
  return i < (min (x, y));
}

@@ -19,9 +18,8 @@
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
- cmp r2, r1
- movcs r2, r1
  cmp r2, r0
+ cmpcs r1, r0
  movls r0, #0
  movhi r0, #1
  bx lr
@@ -33,12 +31,11 @@
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
- cmp r2, r1
- movge r2, r1
  cmp r2, r0
+ cmpge r1, r0
  movle r0, #0
  movgt r0, #1
  bx lr

@@ -19,9 +18,8 @@
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
- cmp r2, r1
- movcs r2, r1
  cmp r2, r0
+ cmpcs r1, r0
  movls r0, #0
  movhi r0, #1
  bx lr
@@ -33,12 +31,11 @@
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
- cmp r2, r1
- movge r2, r1
  cmp r2, r0
+ cmpge r1, r0
  movle r0, #0
  movgt r0, #1
  bx lr

Revision history for this message
Michael Hope (michaelh1) wrote :

cbuild has taken a snapshot of this branch at r114985 and queued it for build.

The diff against the ancestor r114984 is available at:
 http://builds.linaro.org/toolchain/snapshots/gcc-linaro-4.7+bzr114985~ramana~47-smin-umin-idiom.diff

and will be built on the following builders:
 a9-builder armv5-builder i686 x86_64

You can track the build queue at:
 http://ex.seabright.co.nz/helpers/scheduler

cbuild-snapshot: gcc-linaro-4.7+bzr114985~ramana~47-smin-umin-idiom
cbuild-ancestor: lp:gcc-linaro+bzr114984
cbuild-state: check

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :
Revision history for this message
Michael Hope (michaelh1) wrote :

Subscribers

People subscribed via source and target branches