projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stop APInt::shl from generating llvm.trap
[oota-llvm.git]
/
include
/
llvm
/
ADT
/
IndexedMap.h
diff --git
a/include/llvm/ADT/IndexedMap.h
b/include/llvm/ADT/IndexedMap.h
index 04c5815e35f2b460950dde69ff3c1fae9e7452d6..2ffb5058e5bbcecff7b8515f1f4f8d136903f951 100644
(file)
--- a/
include/llvm/ADT/IndexedMap.h
+++ b/
include/llvm/ADT/IndexedMap.h
@@
-20,19
+20,14
@@
#ifndef LLVM_ADT_INDEXEDMAP_H
#define LLVM_ADT_INDEXEDMAP_H
#ifndef LLVM_ADT_INDEXEDMAP_H
#define LLVM_ADT_INDEXEDMAP_H
+#include "llvm/ADT/STLExtras.h"
#include <cassert>
#include <functional>
#include <vector>
namespace llvm {
#include <cassert>
#include <functional>
#include <vector>
namespace llvm {
- struct IdentityFunctor : public std::unary_function<unsigned, unsigned> {
- unsigned operator()(unsigned Index) const {
- return Index;
- }
- };
-
- template <typename T, typename ToIndexT = IdentityFunctor>
+template <typename T, typename ToIndexT = llvm::identity<unsigned> >
class IndexedMap {
typedef typename ToIndexT::argument_type IndexT;
typedef std::vector<T> StorageT;
class IndexedMap {
typedef typename ToIndexT::argument_type IndexT;
typedef std::vector<T> StorageT;
@@
-59,6
+54,10
@@
namespace llvm {
storage_.reserve(s);
}
storage_.reserve(s);
}
+ void resize(typename StorageT::size_type s) {
+ storage_.resize(s, nullVal_);
+ }
+
void clear() {
storage_.clear();
}
void clear() {
storage_.clear();
}
@@
-66,7
+65,7
@@
namespace llvm {
void grow(IndexT n) {
unsigned NewSize = toIndex_(n) + 1;
if (NewSize > storage_.size())
void grow(IndexT n) {
unsigned NewSize = toIndex_(n) + 1;
if (NewSize > storage_.size())
-
storage_.resize(NewSize, nullVal_
);
+
resize(NewSize
);
}
bool inBounds(IndexT n) const {
}
bool inBounds(IndexT n) const {