[PATCH] D33243: [Atomics][LoopIdiom] Recognize unordered atomic memcpy

Anna Thomas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 1 07:02:43 PDT 2017


anna added inline comments.


================
Comment at: lib/Transforms/Scalar/LoopIdiomRecognize.cpp:1012
+    unsigned StoreSizeBits = StoreSize * 8;
+    if (StoreSizeBits > TTI->getRegisterBitWidth(false))
+      return false;
----------------
dneilson wrote:
> This is the replacement due to the inability to use RTLIB in ScalarOpt due to a circular dependency.  It's not ideal as it's theoretically possible that larger width versions of the intrinsic's lib call will exist (ex: ones that are implemented to use vector regs for the load/stores), but we won't be able to exploit any that are wider than scalar register width.
> 
Is it possible that even if the `StoreSizeBits` is within the max `registerBitWidth` for the target arch, we do not have the corresponding lib call?
Could you please check if `TLI` has the information you require or can be modified to do so - it seems to have `memset`, `memcpy` etc. 


https://reviews.llvm.org/D33243





More information about the llvm-commits mailing list