From 840635741f132a9a10f052cbf3b21e14bc74835a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 18 Jul 2011 01:43:58 +0000 Subject: [PATCH] fix a warning in TinyPtrVector, adopt it in SSAUpdater, saving some mallocs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135366 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/TinyPtrVector.h | 2 +- lib/Transforms/Utils/SSAUpdater.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/llvm/ADT/TinyPtrVector.h b/include/llvm/ADT/TinyPtrVector.h index e1dc3df5616..8fbd6f61e27 100644 --- a/include/llvm/ADT/TinyPtrVector.h +++ b/include/llvm/ADT/TinyPtrVector.h @@ -98,7 +98,7 @@ public: void clear() { // If we have a single value, convert to empty. - if (EltTy V = Val.template dyn_cast()) { + if (Val.template is()) { Val = (EltTy)0; } else if (VecTy *Vec = Val.template dyn_cast()) { // If we have a vector form, just clear it. diff --git a/lib/Transforms/Utils/SSAUpdater.cpp b/lib/Transforms/Utils/SSAUpdater.cpp index b47a7ccd80b..d2ff8aea384 100644 --- a/lib/Transforms/Utils/SSAUpdater.cpp +++ b/lib/Transforms/Utils/SSAUpdater.cpp @@ -16,6 +16,7 @@ #include "llvm/Instructions.h" #include "llvm/IntrinsicInst.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/TinyPtrVector.h" #include "llvm/Analysis/InstructionSimplify.h" #include "llvm/Support/AlignOf.h" #include "llvm/Support/Allocator.h" @@ -378,8 +379,7 @@ run(const SmallVectorImpl &Insts) const { // First step: bucket up uses of the alloca by the block they occur in. // This is important because we have to handle multiple defs/uses in a block // ourselves: SSAUpdater is purely for cross-block references. - // FIXME: Want a TinyVector since there is often 0/1 element. - DenseMap > UsesByBlock; + DenseMap > UsesByBlock; for (unsigned i = 0, e = Insts.size(); i != e; ++i) { Instruction *User = Insts[i]; @@ -395,7 +395,7 @@ run(const SmallVectorImpl &Insts) const { for (unsigned i = 0, e = Insts.size(); i != e; ++i) { Instruction *User = Insts[i]; BasicBlock *BB = User->getParent(); - std::vector &BlockUses = UsesByBlock[BB]; + TinyPtrVector &BlockUses = UsesByBlock[BB]; // If this block has already been processed, ignore this repeat use. if (BlockUses.empty()) continue;