aboutsummaryrefslogtreecommitdiff
path: root/bolt
diff options
context:
space:
mode:
authorVladislav Khmelevsky <och95@yandex.ru>2022-12-08 14:06:39 +0400
committerVladislav Khmelevsky <och95@yandex.ru>2022-12-09 13:32:34 +0400
commit9556b678408bdbd53083938346dbb7b0467176ac (patch)
treebdd1bcab43bb1c723dbb9921959292d3fe168739 /bolt
parentc9a6713b4788f10b81202b70993068e475b392f7 (diff)
downloadllvm-9556b678408bdbd53083938346dbb7b0467176ac.zip
llvm-9556b678408bdbd53083938346dbb7b0467176ac.tar.gz
llvm-9556b678408bdbd53083938346dbb7b0467176ac.tar.bz2
[BOLT] Fix blocks layout reverse iterators
Use container's reverse iterators, fix iterators types. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D139335
Diffstat (limited to 'bolt')
-rw-r--r--bolt/include/bolt/Core/FunctionLayout.h21
1 files changed, 9 insertions, 12 deletions
diff --git a/bolt/include/bolt/Core/FunctionLayout.h b/bolt/include/bolt/Core/FunctionLayout.h
index 8eeabd97..904da3a 100644
--- a/bolt/include/bolt/Core/FunctionLayout.h
+++ b/bolt/include/bolt/Core/FunctionLayout.h
@@ -71,11 +71,8 @@ class FunctionFragment {
using FragmentListType = SmallVector<unsigned, 0>;
public:
- using iterator = raw_pointer_iterator<BasicBlockListType::const_iterator,
- BinaryBasicBlock>;
- using const_iterator =
- raw_pointer_iterator<BasicBlockListType::const_iterator,
- const BinaryBasicBlock>;
+ using iterator = BasicBlockListType::iterator;
+ using const_iterator = BasicBlockListType::const_iterator;
private:
FunctionLayout *Layout;
@@ -150,9 +147,7 @@ public:
pointee_iterator<FragmentListType::const_iterator,
const FunctionFragment>;
using block_iterator = BasicBlockListType::iterator;
- using block_const_iterator =
- raw_pointer_iterator<BasicBlockListType::const_iterator,
- const BinaryBasicBlock>;
+ using block_const_iterator = BasicBlockListType::const_iterator;
using block_reverse_iterator = std::reverse_iterator<block_iterator>;
using block_const_reverse_iterator =
std::reverse_iterator<block_const_iterator>;
@@ -303,16 +298,18 @@ public:
return {block_begin(), block_end()};
}
block_reverse_iterator block_rbegin() {
- return block_reverse_iterator(block_end());
+ return block_reverse_iterator(Blocks.rbegin());
}
block_const_reverse_iterator block_rbegin() const {
- return block_const_reverse_iterator(block_end());
+ return block_const_reverse_iterator(
+ std::make_reverse_iterator(block_end()));
}
block_reverse_iterator block_rend() {
- return block_reverse_iterator(block_begin());
+ return block_reverse_iterator(Blocks.rend());
}
block_const_reverse_iterator block_rend() const {
- return block_const_reverse_iterator(block_begin());
+ return block_const_reverse_iterator(
+ std::make_reverse_iterator(block_begin()));
}
iterator_range<block_const_reverse_iterator> rblocks() const {
return {block_rbegin(), block_rend()};