22 using BasicBlockList = std::list<std::unique_ptr<BasicBlock>>;
37 std::string
name()
const override {
86 return *std::prev(
end());
90 return *std::prev(
end());
94 return blocks_.empty();
98 return blocks_.size();
116 return add(pos, std::make_unique<BasicBlock>());
120 return add(
begin(), std::move(block));
124 return prepend(std::make_unique<BasicBlock>());
128 return add(
end(), std::move(block));
132 return append(std::make_unique<BasicBlock>());
160 BasicBlockList blocks_;
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition IndirectIterator.h:16
Definition BasicBlock.h:24
std::unique_ptr< BasicBlock > remove(const_iterator pos)
reverse_iterator rbegin()
Definition Function.h:61
const StackFrame & stackFrame() const
Definition Function.h:151
BasicBlock & add(const_iterator pos, std::unique_ptr< BasicBlock > block)
const_reverse_iterator rbegin() const
Definition Function.h:65
reverse_iterator rend()
Definition Function.h:69
IndirectIterator< BasicBlockList::const_reverse_iterator, const BasicBlock > const_reverse_iterator
Definition Function.h:28
BasicBlock & append()
Definition Function.h:131
Function & operator=(Function &&)=delete
const_iterator begin() const
Definition Function.h:49
bool empty() const
Definition Function.h:93
BasicBlock & prepend(std::unique_ptr< BasicBlock > block)
Definition Function.h:119
BasicBlock & add(const_iterator pos)
Definition Function.h:115
Function & operator=(const Function &&)=delete
const BasicBlock & entry() const
Definition Function.h:105
IndirectIterator< BasicBlockList::iterator, BasicBlock > iterator
Definition Function.h:25
Function(const Function &)=delete
Function(std::string name, Linkage linkage)
Definition Function.h:30
BasicBlock & entry()
Definition Function.h:101
BasicBlock & front()
Definition Function.h:77
iterator begin()
Definition Function.h:45
const_reverse_iterator rend() const
Definition Function.h:73
BasicBlock & prepend()
Definition Function.h:123
StackFrame & stackFrame()
Definition Function.h:147
const BasicBlock & back() const
Definition Function.h:89
std::string name() const override
Definition Function.h:37
IndirectIterator< BasicBlockList::reverse_iterator, BasicBlock > reverse_iterator
Definition Function.h:27
size_t size() const
Definition Function.h:97
Function(Function &&)=delete
std::string format() const override
iterator end()
Definition Function.h:53
BasicBlock & append(std::unique_ptr< BasicBlock > block)
Definition Function.h:127
bool isDeclaration() const
Definition Function.h:109
BasicBlock & back()
Definition Function.h:85
std::unique_ptr< BasicBlock > removeFirst()
Definition Function.h:137
const BasicBlock & front() const
Definition Function.h:81
IndirectIterator< BasicBlockList::const_iterator, const BasicBlock > const_iterator
Definition Function.h:26
const_iterator end() const
Definition Function.h:57
std::unique_ptr< BasicBlock > removeLast()
Definition Function.h:141
Linkage linkage() const override
Definition Function.h:41
Definition StackFrame.h:17
Definition BasicBlock.h:22
Linkage
Definition Linkage.h:7