[PATCH] [AArch64][ARM] Match interleaved memory accesses into ldN/stN/vldN/vstN intrinsics.

Renato Golin renato.golin at linaro.org
Fri Jun 19 06:13:59 PDT 2015


================
Comment at: lib/CodeGen/InterleavedAccessPass.cpp:113
@@ +112,3 @@
+    for (; i < Mask.size(); i++)
+      if (Mask[i] >= 0 && static_cast<unsigned>(Mask[i]) != Index + i * Factor)
+        break;
----------------
If the mask index can't be negative, why use ArrayRef<int>?

================
Comment at: lib/CodeGen/InterleavedAccessPass.cpp:134
@@ +133,3 @@
+  // Check potential Factors.
+  for (Factor = MIN_FACTOR; Factor <= MAX_FACTOR; Factor++)
+    if (isDeInterleaveMaskOfFactor(Mask, Factor, Index))
----------------
Checking for all factors "up to" in isDeInterleaveMaskOfFactor() is redundant with this line.

Though, I see that you're using it in other functions that may need that functionality.

Not sure how to split this, but it looks inefficient...

http://reviews.llvm.org/D10533

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list