diff options
| author | Jay Foad <jay.foad@gmail.com> | 2011-06-22 08:50:06 +0000 | 
|---|---|---|
| committer | Jay Foad <jay.foad@gmail.com> | 2011-06-22 08:50:06 +0000 | 
| commit | c365eeaea6add80126de7c2865c5242e990cd5dd (patch) | |
| tree | 5ecb09c25401612b35514c5cccb7ff3e8d684efd /llvm/lib/VMCore/LLVMContextImpl.h | |
| parent | c0c5dd26513c9482af4ce1f3501cfb435f86940e (diff) | |
| download | bcm5719-llvm-c365eeaea6add80126de7c2865c5242e990cd5dd.tar.gz bcm5719-llvm-c365eeaea6add80126de7c2865c5242e990cd5dd.zip | |
Extend ConstantUniqueMap with a new template parameter ValRefType,
representing a constant reference to ValType. Normally this is just
"const ValType &", but when ValType is a std::vector we want to use
ArrayRef as the reference type.
llvm-svn: 133611
Diffstat (limited to 'llvm/lib/VMCore/LLVMContextImpl.h')
| -rw-r--r-- | llvm/lib/VMCore/LLVMContextImpl.h | 26 | 
1 files changed, 15 insertions, 11 deletions
| diff --git a/llvm/lib/VMCore/LLVMContextImpl.h b/llvm/lib/VMCore/LLVMContextImpl.h index d1ff0ecd637..d8808b0ab8d 100644 --- a/llvm/lib/VMCore/LLVMContextImpl.h +++ b/llvm/lib/VMCore/LLVMContextImpl.h @@ -25,6 +25,7 @@  #include "llvm/Support/ValueHandle.h"  #include "llvm/ADT/APFloat.h"  #include "llvm/ADT/APInt.h" +#include "llvm/ADT/ArrayRef.h"  #include "llvm/ADT/DenseMap.h"  #include "llvm/ADT/FoldingSet.h"  #include "llvm/ADT/SmallPtrSet.h" @@ -138,27 +139,30 @@ public:    // on Context destruction.    SmallPtrSet<MDNode*, 1> NonUniquedMDNodes; -  ConstantUniqueMap<char, Type, ConstantAggregateZero> AggZeroConstants; +  ConstantUniqueMap<char, char, Type, ConstantAggregateZero> AggZeroConstants; -  typedef ConstantUniqueMap<std::vector<Constant*>, ArrayType, -    ConstantArray, true /*largekey*/> ArrayConstantsTy; +  typedef ConstantUniqueMap<std::vector<Constant*>, ArrayRef<Constant*>, +    ArrayType, ConstantArray, true /*largekey*/> ArrayConstantsTy;    ArrayConstantsTy ArrayConstants; -  typedef ConstantUniqueMap<std::vector<Constant*>, StructType, -    ConstantStruct, true /*largekey*/> StructConstantsTy; +  typedef ConstantUniqueMap<std::vector<Constant*>, ArrayRef<Constant*>, +    StructType, ConstantStruct, true /*largekey*/> StructConstantsTy;    StructConstantsTy StructConstants; -  typedef ConstantUniqueMap<std::vector<Constant*>, VectorType, -                            ConstantVector> VectorConstantsTy; +  typedef ConstantUniqueMap<std::vector<Constant*>, ArrayRef<Constant*>, +                            VectorType, ConstantVector> VectorConstantsTy;    VectorConstantsTy VectorConstants; -  ConstantUniqueMap<char, PointerType, ConstantPointerNull> NullPtrConstants; -  ConstantUniqueMap<char, Type, UndefValue> UndefValueConstants; +  ConstantUniqueMap<char, char, PointerType, ConstantPointerNull> +    NullPtrConstants; +  ConstantUniqueMap<char, char, Type, UndefValue> UndefValueConstants;    DenseMap<std::pair<Function*, BasicBlock*> , BlockAddress*> BlockAddresses; -  ConstantUniqueMap<ExprMapKeyType, Type, ConstantExpr> ExprConstants; +  ConstantUniqueMap<ExprMapKeyType, const ExprMapKeyType&, Type, ConstantExpr> +    ExprConstants; -  ConstantUniqueMap<InlineAsmKeyType, PointerType, InlineAsm> InlineAsms; +  ConstantUniqueMap<InlineAsmKeyType, const InlineAsmKeyType&, PointerType, +                    InlineAsm> InlineAsms;    ConstantInt *TheTrueVal;    ConstantInt *TheFalseVal; | 

