[PATCH] D23611: [LoopUnroll] Move a simple check earlier. NFC.
Haicheng Wu via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 17 08:52:03 PDT 2016
haicheng created this revision.
haicheng added reviewers: mzolotukhin, mcrosier, mssimpso.
haicheng added a subscriber: llvm-commits.
haicheng set the repository for this revision to rL LLVM.
Herald added subscribers: mzolotukhin, mcrosier.
CallInst can have side effects. Move the check of CallInst earlier to skip AddCostRecursively.
Repository:
rL LLVM
https://reviews.llvm.org/D23611
Files:
lib/Transforms/Scalar/LoopUnrollPass.cpp
Index: lib/Transforms/Scalar/LoopUnrollPass.cpp
===================================================================
--- lib/Transforms/Scalar/LoopUnrollPass.cpp
+++ lib/Transforms/Scalar/LoopUnrollPass.cpp
@@ -431,16 +431,16 @@
if (IsFree)
continue;
- // If the instruction might have a side-effect recursively account for
- // the cost of it and all the instructions leading up to it.
- if (I.mayHaveSideEffects())
- AddCostRecursively(I, Iteration);
-
// Can't properly model a cost of a call.
// FIXME: With a proper cost model we should be able to do it.
if(isa<CallInst>(&I))
return None;
+ // If the instruction might have a side-effect recursively account for
+ // the cost of it and all the instructions leading up to it.
+ if (I.mayHaveSideEffects())
+ AddCostRecursively(I, Iteration);
+
// If unrolled body turns out to be too big, bail out.
if (UnrolledCost > MaxUnrolledLoopSize) {
DEBUG(dbgs() << " Exceeded threshold.. exiting.\n"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23611.68367.patch
Type: text/x-patch
Size: 1098 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160817/0100502f/attachment.bin>
More information about the llvm-commits
mailing list