[PATCH] D14514: [AArch64]Merge narrow zero stores to wider single store

Jun Bum Lim via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 10 08:03:18 PST 2015


junbuml added inline comments.

================
Comment at: lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:706-707
@@ +705,4 @@
+    // Change the scaled offset from small to large type.
+    if (!IsUnscaled)
+      OffsetImm /= 2;
+    MIB = BuildMI(*I->getParent(), InsertionPoint, I->getDebugLoc(),
----------------
t.p.northover wrote:
> What happens here for sequences like
> 
>     strb wzr, [x0, #1]
>     strb wzr, [x0, #2]
> 
> ? It looks like you might try to produce "strh wzr, [x0, #1]" (using STRHHui) which is invalid. This also applies to the code recently added around line 537.
This pass will not merge the input you mentioned above. In findMatchingInsn(), we check if the new scaled wide load can express the scaled narrow inputs in around line 948 below in this patch.
 



http://reviews.llvm.org/D14514





More information about the llvm-commits mailing list