[llvm-commits] [Review Request][PATCH] Refactor BBVectorize: Initialize the MaxIter to

Hongbin Zheng etherzhhb at gmail.com
Thu Apr 5 07:36:28 PDT 2012


Hi Hal,

This is a rather trivial patch which initialize the "MaxIter" with
UINT_MAX, so that later in the loop invoking MaxIter we can replace
v <= Config.VectorBits && (!Config.MaxIter || n <= Config.MaxIter)

by

v <= std::min(Config.VectorBits,Config.MaxIter)

Any comment?

best regards
ether

---
 lib/Transforms/Vectorize/BBVectorize.cpp |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/Transforms/Vectorize/BBVectorize.cpp
b/lib/Transforms/Vectorize/BBVectorize.cpp
index 7672d5c..5a714c8 100644
--- a/lib/Transforms/Vectorize/BBVectorize.cpp
+++ b/lib/Transforms/Vectorize/BBVectorize.cpp
@@ -43,6 +43,7 @@
 #include "llvm/Target/TargetData.h"
 #include "llvm/Transforms/Vectorize.h"
 #include <algorithm>
+#include <climits>
 #include <map>
 using namespace llvm;

@@ -63,7 +64,7 @@ VectorBits("bb-vectorize-vector-bits",
cl::init(128), cl::Hidden,
   cl::desc("The size of the native vector registers"));

 static cl::opt<unsigned>
-MaxIter("bb-vectorize-max-iter", cl::init(0), cl::Hidden,
+MaxIter("bb-vectorize-max-iter", cl::init(UINT_MAX), cl::Hidden,
   cl::desc("The maximum number of pairing iterations"));

 static cl::opt<unsigned>
@@ -295,9 +296,8 @@ namespace {
       // Iterate a sufficient number of times to merge types of size 1 bit,
       // then 2 bits, then 4, etc. up to half of the target vector width of the
       // target vector register.
-      for (unsigned v = 2, n = 1;
-           v <= Config.VectorBits && (!Config.MaxIter || n <= Config.MaxIter);
-           v *= 2, ++n) {
+      for (unsigned v = 2, n = 1, e =
std::min(Config.VectorBits,Config.MaxIter);
+           v <= e; v *= 2, ++n) {
         DEBUG(dbgs() << "BBV: fusing loop #" << n <<
               " for " << BB.getName() << " in " <<
               BB.getParent()->getName() << "...\n");
-- 
1.7.5.4



More information about the llvm-commits mailing list