diff options
-rw-r--r-- | llvm/lib/Target/ARM/README.txt | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/lib/Target/ARM/README.txt b/llvm/lib/Target/ARM/README.txt index ede2b129419..549af00fcc9 100644 --- a/llvm/lib/Target/ARM/README.txt +++ b/llvm/lib/Target/ARM/README.txt @@ -115,7 +115,7 @@ L6: .long -858993459 .long 1074318540 -3) struct copies appear to be done field by field +3) struct copies appear to be done field by field instead of by words, at least sometimes: struct foo { int x; short s; char c1; char c2; }; @@ -142,7 +142,7 @@ a good way to measure on ARM). * Consider this silly example: -double bar(double x) { +double bar(double x) { double r = foo(3.1); return x+r; } @@ -162,7 +162,7 @@ _bar: fmrrd r0, r1, d0 ldmfd sp!, {r4, r5, r7, pc} -Ignore the prologue and epilogue stuff for a second. Note +Ignore the prologue and epilogue stuff for a second. Note mov r4, r0 mov r5, r1 the copys to callee-save registers and the fact they are only being used by the @@ -391,10 +391,10 @@ void foo(signed char* p) { } llvm decides it's a good idea to turn the repeated if...else into a -binary tree, as if it were a switch; the resulting code requires -1 +binary tree, as if it were a switch; the resulting code requires -1 compare-and-branches when *p<=2 or *p==5, the same number if *p==4 or *p>6, and +1 if *p==3. So it should be a speed win -(on balance). However, the revised code is larger, with 4 conditional +(on balance). However, the revised code is larger, with 4 conditional branches instead of 3. More seriously, there is a byte->word extend before @@ -421,8 +421,8 @@ int foo(int a, int b, int c, int d) { return (int)(acc >> 32); } -Should compile to use SMLAL (Signed Multiply Accumulate Long) which multiplies -two signed 32-bit values to produce a 64-bit value, and accumulates this with +Should compile to use SMLAL (Signed Multiply Accumulate Long) which multiplies +two signed 32-bit values to produce a 64-bit value, and accumulates this with a 64-bit value. We currently get this with both v4 and v6: @@ -513,7 +513,7 @@ Be careful though as the last attempt caused infinite looping on lencod. //===---------------------------------------------------------------------===// -Predication issue. This function: +Predication issue. This function: extern unsigned array[ 128 ]; int foo( int x ) { |