From 86312cc15f29ce2bbd9647b94862e068045280c3 Mon Sep 17 00:00:00 2001 From: Hongbin Zheng Date: Sat, 7 Apr 2012 03:56:23 +0000 Subject: [PATCH] Refactor: Use positive field names in VectorizeConfig. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154249 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Transforms/Vectorize.h | 24 ++++++++++---------- lib/Transforms/Vectorize/BBVectorize.cpp | 28 +++++++++++++----------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/include/llvm/Transforms/Vectorize.h b/include/llvm/Transforms/Vectorize.h index 669125845f5..7701ceb4d0b 100644 --- a/include/llvm/Transforms/Vectorize.h +++ b/include/llvm/Transforms/Vectorize.h @@ -28,23 +28,23 @@ struct VectorizeConfig { /// @brief The size of the native vector registers. unsigned VectorBits; - /// @brief Don't try to vectorize integer values. - bool NoInts; + /// @brief Vectorize integer values. + bool VectorizeInts; - /// @brief Don't try to vectorize floating-point values. - bool NoFloats; + /// @brief Vectorize floating-point values. + bool VectorizeFloats; - /// @brief Don't try to vectorize casting (conversion) operations. - bool NoCasts; + /// @brief Vectorize casting (conversion) operations. + bool VectorizeCasts; - /// @brief Don't try to vectorize floating-point math intrinsics. - bool NoMath; + /// @brief Vectorize floating-point math intrinsics. + bool VectorizeMath; - /// @brief Don't try to vectorize the fused-multiply-add intrinsic. - bool NoFMA; + /// @brief Vectorize the fused-multiply-add intrinsic. + bool VectorizeFMA; - /// @brief Don't try to vectorize loads and stores. - bool NoMemOps; + /// @brief Vectorize loads and stores. + bool VectorizeMemOps; /// @brief Only generate aligned loads and stores. bool AlignedOnly; diff --git a/lib/Transforms/Vectorize/BBVectorize.cpp b/lib/Transforms/Vectorize/BBVectorize.cpp index 82be6971bd1..286b54f2f06 100644 --- a/lib/Transforms/Vectorize/BBVectorize.cpp +++ b/lib/Transforms/Vectorize/BBVectorize.cpp @@ -437,9 +437,9 @@ namespace { case Intrinsic::exp: case Intrinsic::exp2: case Intrinsic::pow: - return !Config.NoMath; + return Config.VectorizeMath; case Intrinsic::fma: - return !Config.NoFMA; + return Config.VectorizeFMA; } } @@ -533,16 +533,16 @@ namespace { } else if (LoadInst *L = dyn_cast(I)) { // Vectorize simple loads if possbile: IsSimpleLoadStore = L->isSimple(); - if (!IsSimpleLoadStore || Config.NoMemOps) + if (!IsSimpleLoadStore || !Config.VectorizeMemOps) return false; } else if (StoreInst *S = dyn_cast(I)) { // Vectorize simple stores if possbile: IsSimpleLoadStore = S->isSimple(); - if (!IsSimpleLoadStore || Config.NoMemOps) + if (!IsSimpleLoadStore || !Config.VectorizeMemOps) return false; } else if (CastInst *C = dyn_cast(I)) { // We can vectorize casts, but not casts of pointer types, etc. - if (Config.NoCasts) + if (!Config.VectorizeCasts) return false; Type *SrcTy = C->getSrcTy(); @@ -582,10 +582,12 @@ namespace { !(VectorType::isValidElementType(T2) || T2->isVectorTy())) return false; - if (Config.NoInts && (T1->isIntOrIntVectorTy() || T2->isIntOrIntVectorTy())) + if (!Config.VectorizeInts + && (T1->isIntOrIntVectorTy() || T2->isIntOrIntVectorTy())) return false; - if (Config.NoFloats && (T1->isFPOrFPVectorTy() || T2->isFPOrFPVectorTy())) + if (!Config.VectorizeFloats + && (T1->isFPOrFPVectorTy() || T2->isFPOrFPVectorTy())) return false; if (T1->getPrimitiveSizeInBits() > Config.VectorBits/2 || @@ -1887,12 +1889,12 @@ llvm::vectorizeBasicBlock(Pass *P, BasicBlock &BB, const VectorizeConfig &C) { //===----------------------------------------------------------------------===// VectorizeConfig::VectorizeConfig() { VectorBits = ::VectorBits; - NoInts = ::NoInts; - NoFloats = ::NoFloats; - NoCasts = ::NoCasts; - NoMath = ::NoMath; - NoFMA = ::NoFMA; - NoMemOps = ::NoMemOps; + VectorizeInts = !::NoInts; + VectorizeFloats = !::NoFloats; + VectorizeCasts = !::NoCasts; + VectorizeMath = !::NoMath; + VectorizeFMA = !::NoFMA; + VectorizeMemOps = !::NoMemOps; AlignedOnly = ::AlignedOnly; ReqChainDepth= ::ReqChainDepth; SearchLimit = ::SearchLimit;