diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-12-20 19:53:05 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-12-20 19:53:05 +0000 | 
| commit | 0b57cec536236d46e3dba9bd041533462f33dbb7 (patch) | |
| tree | 56229dbdbbf76d18580f72f789003db17246c8d9 /contrib/llvm/lib/Bitcode/Reader/ValueList.h | |
| parent | 718ef55ec7785aae63f98f8ca05dc07ed399c16d (diff) | |
Notes
Diffstat (limited to 'contrib/llvm/lib/Bitcode/Reader/ValueList.h')
| -rw-r--r-- | contrib/llvm/lib/Bitcode/Reader/ValueList.h | 110 | 
1 files changed, 0 insertions, 110 deletions
| diff --git a/contrib/llvm/lib/Bitcode/Reader/ValueList.h b/contrib/llvm/lib/Bitcode/Reader/ValueList.h deleted file mode 100644 index 49900498c294..000000000000 --- a/contrib/llvm/lib/Bitcode/Reader/ValueList.h +++ /dev/null @@ -1,110 +0,0 @@ -//===-- Bitcode/Reader/ValueList.h - Number values --------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This class gives values and types Unique ID's. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_LIB_BITCODE_READER_VALUELIST_H -#define LLVM_LIB_BITCODE_READER_VALUELIST_H - -#include "llvm/IR/ValueHandle.h" -#include <cassert> -#include <utility> -#include <vector> - -namespace llvm { - -class Constant; -class LLVMContext; -class Type; -class Value; - -class BitcodeReaderValueList { -  std::vector<WeakTrackingVH> ValuePtrs; - -  /// Struct containing fully-specified copies of the type of each -  /// value. When pointers are opaque, this will be contain non-opaque -  /// variants so that restructuring instructions can determine their -  /// type correctly even if being loaded from old bitcode where some -  /// types are implicit. -  std::vector<Type *> FullTypes; - -  /// As we resolve forward-referenced constants, we add information about them -  /// to this vector.  This allows us to resolve them in bulk instead of -  /// resolving each reference at a time.  See the code in -  /// ResolveConstantForwardRefs for more information about this. -  /// -  /// The key of this vector is the placeholder constant, the value is the slot -  /// number that holds the resolved value. -  using ResolveConstantsTy = std::vector<std::pair<Constant *, unsigned>>; -  ResolveConstantsTy ResolveConstants; -  LLVMContext &Context; - -  /// Maximum number of valid references. Forward references exceeding the -  /// maximum must be invalid. -  unsigned RefsUpperBound; - -public: -  BitcodeReaderValueList(LLVMContext &C, size_t RefsUpperBound) -      : Context(C), -        RefsUpperBound(std::min((size_t)std::numeric_limits<unsigned>::max(), -                                RefsUpperBound)) {} - -  ~BitcodeReaderValueList() { -    assert(ResolveConstants.empty() && "Constants not resolved?"); -  } - -  // vector compatibility methods -  unsigned size() const { return ValuePtrs.size(); } -  void resize(unsigned N) { -    ValuePtrs.resize(N); -    FullTypes.resize(N); -  } -  void push_back(Value *V, Type *Ty) { -    ValuePtrs.emplace_back(V); -    FullTypes.emplace_back(Ty); -  } - -  void clear() { -    assert(ResolveConstants.empty() && "Constants not resolved?"); -    ValuePtrs.clear(); -    FullTypes.clear(); -  } - -  Value *operator[](unsigned i) const { -    assert(i < ValuePtrs.size()); -    return ValuePtrs[i]; -  } - -  Value *back() const { return ValuePtrs.back(); } -  void pop_back() { -    ValuePtrs.pop_back(); -    FullTypes.pop_back(); -  } -  bool empty() const { return ValuePtrs.empty(); } - -  void shrinkTo(unsigned N) { -    assert(N <= size() && "Invalid shrinkTo request!"); -    ValuePtrs.resize(N); -    FullTypes.resize(N); -  } - -  Constant *getConstantFwdRef(unsigned Idx, Type *Ty); -  Value *getValueFwdRef(unsigned Idx, Type *Ty, Type **FullTy = nullptr); - -  void assignValue(Value *V, unsigned Idx, Type *FullTy); - -  /// Once all constants are read, this method bulk resolves any forward -  /// references. -  void resolveConstantForwardRefs(); -}; - -} // end namespace llvm - -#endif // LLVM_LIB_BITCODE_READER_VALUELIST_H | 
