[PATCH] D95885: [ARM] Expand the range of allowed post-incs in load/store optimizer

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 19 05:10:21 PST 2021


mstorsjo added a comment.

Ok, I think I've got it reduced fairly well. Use https://martin.st/temp/vp8-bitstream.c as souce.

Compiled with `clang -target armv7-w64-mingw32 vp8-bitstream.c -S -o bad.s -O2`, I'm getting this diff:

  $ diff -u good.s bad.s
  @@ -3831,8 +3832,7 @@
          pop.w   {r4, r5, r6, r7, r8, r9, r10, r11, pc}
   .LBB6_246:                              @ %if.else332
          add.w   r0, r9, #110592
  -       add.w   r0, r0, #1584           
  -       ldrd    r1, r2, [r0]
  +       ldrd    r1, r2, [r0, #1584]!    
          mov     r0, r6
          bl      vp8_pack_tokens
   .LBB6_247:                              @ %if.end335   

If I try to assemble `bad.s`, I'm getting this error:

  bad.s:3835:15: error: invalid operand for instruction
          ldrd    r1, r2, [r0, #1584]!
                          ^

If compiling directly to an object file, no error is produced.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95885/new/

https://reviews.llvm.org/D95885



More information about the llvm-commits mailing list