18 using StackSlotList = std::list<std::unique_ptr<StackSlot>>;
73 return *std::prev(
end());
77 return *std::prev(
end());
81 return slots_.empty();
91 return add(pos, std::make_unique<StackSlot>(
size, alignment));
95 return add(
begin(), std::move(slot));
99 return prepend(std::make_unique<StackSlot>(
size, alignment));
103 return add(
end(), std::move(slot));
107 return append(std::make_unique<StackSlot>(
size, alignment));
123 StackSlotList slots_;
124 bool offsetsUpToDate_ =
false;
126 void computeOffsets();
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition IndirectIterator.h:16
StackFrame(const StackFrame &)=delete
StackSlot & front()
Definition StackFrame.h:64
IndirectIterator< StackSlotList::const_iterator, const StackSlot > const_iterator
Definition StackFrame.h:22
const StackSlot & back() const
Definition StackFrame.h:76
StackFrame & operator=(const StackFrame &)=delete
iterator end()
Definition StackFrame.h:40
std::unique_ptr< StackSlot > remove(iterator pos)
const_iterator end() const
Definition StackFrame.h:44
reverse_iterator rbegin()
Definition StackFrame.h:48
reverse_iterator rend()
Definition StackFrame.h:56
const StackSlot & front() const
Definition StackFrame.h:68
IndirectIterator< StackSlotList::iterator, StackSlot > iterator
Definition StackFrame.h:21
const_reverse_iterator rend() const
Definition StackFrame.h:60
const_reverse_iterator rbegin() const
Definition StackFrame.h:52
StackSlot & prepend(int size, int alignment)
Definition StackFrame.h:98
StackSlot & append(int size, int alignment)
Definition StackFrame.h:106
StackSlot & back()
Definition StackFrame.h:72
StackFrame & operator=(StackFrame &&)=delete
std::unique_ptr< StackSlot > removeFirst()
Definition StackFrame.h:112
iterator begin()
Definition StackFrame.h:32
StackSlot & prepend(std::unique_ptr< StackSlot > slot)
Definition StackFrame.h:94
const_iterator begin() const
Definition StackFrame.h:36
StackSlot & add(const_iterator pos, int size, int alignment)
Definition StackFrame.h:90
size_t size() const
Definition StackFrame.h:84
IndirectIterator< StackSlotList::reverse_iterator, StackSlot > reverse_iterator
Definition StackFrame.h:23
bool empty() const
Definition StackFrame.h:80
friend class StackSlot
Definition StackFrame.h:128
IndirectIterator< StackSlotList::const_reverse_iterator, const StackSlot > const_reverse_iterator
Definition StackFrame.h:24
StackFrame(StackFrame &&)=delete
StackSlot & add(const_iterator pos, std::unique_ptr< StackSlot > slot)
std::unique_ptr< StackSlot > removeLast()
Definition StackFrame.h:116
StackSlot & append(std::unique_ptr< StackSlot > slot)
Definition StackFrame.h:102
Definition BasicBlock.h:22