[PATCH] D28170: [LICM] When promoting scalars, allow inserting stores to thread-local allocas

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 18 15:05:05 PST 2017

efriedma added inline comments.

Comment at: llvm/trunk/lib/Transforms/Scalar/LICM.cpp:1037
     SafeToInsertStore =
-        isAllocLikeFn(Object, TLI) && !PointerMayBeCaptured(Object, true, true);
+        (isAllocLikeFn(Object, TLI) || isa<AllocaInst>(Object)) &&
+        !PointerMayBeCaptured(Object, true, true);
trentxintong wrote:
> The question I really want to ask is whether the check for MayNotBeCaptured is necessary for Alloca. Should not alloca be implicitly thread local ? The language reference does not explicitly state it.
In general, memory allocated using alloca can be used in all the same ways you could use memory allocated with malloc().  Not sure what sort of restriction you're expecting.



More information about the llvm-commits mailing list