9#include <unordered_set>
24 using IdxList = std::vector<std::unique_ptr<Use<Value>>>;
33 return sourceType_->clone();
36 template <
typename Self>
37 auto &
ptr(
this Self &&self) {
58 return indices_.empty();
62 return indices_.size();
73 std::unordered_set<const UseBase *>
operands()
const override;
85 std::unique_ptr<Type>
type()
const override {
86 return std::make_unique<Ptr>();
90 std::unique_ptr<Value>
clone()
const override;
93 std::unique_ptr<Type> sourceType_;
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition IndirectIterator.h:16
Definition GetElementPtr.h:23
Use< Value > & idx(size_t i)
Definition GetElementPtr.h:65
const Use< Value > & idx(size_t i) const
Definition GetElementPtr.h:69
const_idx_iterator idx_begin() const
Definition GetElementPtr.h:45
IndirectIterator< IdxList::iterator, Use< Value > > idx_iterator
Definition GetElementPtr.h:27
size_t idx_size() const
Definition GetElementPtr.h:61
bool idx_empty() const
Definition GetElementPtr.h:57
auto & ptr(this Self &&self)
Definition GetElementPtr.h:37
std::unordered_set< const UseBase * > operands() const override
idx_iterator idx_begin()
Definition GetElementPtr.h:41
void accept(InstructionVisitor &visitor) override
Definition GetElementPtr.h:75
std::unique_ptr< Value > clone() const override
std::unique_ptr< Type > type() const override
Definition GetElementPtr.h:85
bool isWellFormed() const override
const_idx_iterator idx_end() const
Definition GetElementPtr.h:53
GetElementPtr(std::unique_ptr< Type > sourceType, std::shared_ptr< Value > ptr, std::vector< std::shared_ptr< Value > > indices)
std::unique_ptr< Type > sourceType() const
Definition GetElementPtr.h:32
IndirectIterator< IdxList::const_iterator, const Use< Value > > const_idx_iterator
Definition GetElementPtr.h:28
std::string format() const override
idx_iterator idx_end()
Definition GetElementPtr.h:49
void accept(InstructionVisitor &visitor) const override
Definition GetElementPtr.h:79
Definition InstructionVisitor.h:58
virtual void visitGetElementPtr(GetElementPtr &I)
Definition InstructionVisitor.h:89
Definition Instruction.h:22
auto indices(GetElementPtr &I)
Definition GetElementPtr.h:98