[llvm] f1075a3 - [FileSystem] Avoid <stack> include (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 21 04:45:07 PDT 2024
Author: Nikita Popov
Date: 2024-06-21T13:44:46+02:00
New Revision: f1075a34ab30f67915deb9a519dd98e025c5c998
URL: https://github.com/llvm/llvm-project/commit/f1075a34ab30f67915deb9a519dd98e025c5c998
DIFF: https://github.com/llvm/llvm-project/commit/f1075a34ab30f67915deb9a519dd98e025c5c998.diff
LOG: [FileSystem] Avoid <stack> include (NFC)
The standard pattern in LLVM is to directly use vectors for stacks,
without an additional std::stack wrapper to rename some methods.
Added:
Modified:
llvm/include/llvm/Support/FileSystem.h
llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Support/FileSystem.h b/llvm/include/llvm/Support/FileSystem.h
index 0a9c576027f96..9cf53360b4e96 100644
--- a/llvm/include/llvm/Support/FileSystem.h
+++ b/llvm/include/llvm/Support/FileSystem.h
@@ -40,7 +40,6 @@
#include <cstdint>
#include <ctime>
#include <memory>
-#include <stack>
#include <string>
#include <system_error>
#include <vector>
@@ -1471,7 +1470,7 @@ namespace detail {
/// Keeps state for the recursive_directory_iterator.
struct RecDirIterState {
- std::stack<directory_iterator, std::vector<directory_iterator>> Stack;
+ std::vector<directory_iterator> Stack;
uint16_t Level = 0;
bool HasNoPushRequest = false;
};
@@ -1490,8 +1489,8 @@ class recursive_directory_iterator {
bool follow_symlinks = true)
: State(std::make_shared<detail::RecDirIterState>()),
Follow(follow_symlinks) {
- State->Stack.push(directory_iterator(path, ec, Follow));
- if (State->Stack.top() == directory_iterator())
+ State->Stack.push_back(directory_iterator(path, ec, Follow));
+ if (State->Stack.back() == directory_iterator())
State.reset();
}
@@ -1502,27 +1501,28 @@ class recursive_directory_iterator {
if (State->HasNoPushRequest)
State->HasNoPushRequest = false;
else {
- file_type type = State->Stack.top()->type();
+ file_type type = State->Stack.back()->type();
if (type == file_type::symlink_file && Follow) {
// Resolve the symlink: is it a directory to recurse into?
- ErrorOr<basic_file_status> status = State->Stack.top()->status();
+ ErrorOr<basic_file_status> status = State->Stack.back()->status();
if (status)
type = status->type();
// Otherwise broken symlink, and we'll continue.
}
if (type == file_type::directory_file) {
- State->Stack.push(directory_iterator(*State->Stack.top(), ec, Follow));
- if (State->Stack.top() != end_itr) {
+ State->Stack.push_back(
+ directory_iterator(*State->Stack.back(), ec, Follow));
+ if (State->Stack.back() != end_itr) {
++State->Level;
return *this;
}
- State->Stack.pop();
+ State->Stack.pop_back();
}
}
while (!State->Stack.empty()
- && State->Stack.top().increment(ec) == end_itr) {
- State->Stack.pop();
+ && State->Stack.back().increment(ec) == end_itr) {
+ State->Stack.pop_back();
--State->Level;
}
@@ -1533,8 +1533,8 @@ class recursive_directory_iterator {
return *this;
}
- const directory_entry &operator*() const { return *State->Stack.top(); }
- const directory_entry *operator->() const { return &*State->Stack.top(); }
+ const directory_entry &operator*() const { return *State->Stack.back(); }
+ const directory_entry *operator->() const { return &*State->Stack.back(); }
// observers
/// Gets the current level. Starting path is at level 0.
@@ -1554,10 +1554,10 @@ class recursive_directory_iterator {
do {
if (ec)
report_fatal_error("Error incrementing directory iterator.");
- State->Stack.pop();
+ State->Stack.pop_back();
--State->Level;
} while (!State->Stack.empty()
- && State->Stack.top().increment(ec) == end_itr);
+ && State->Stack.back().increment(ec) == end_itr);
// Check if we are done. If so, create an end iterator.
if (State->Stack.empty())
diff --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
index bf0ca32e8b99f..dbf7154229d38 100644
--- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
@@ -57,6 +57,7 @@
#include <cstdint>
#include <optional>
+#include <stack>
#define DEBUG_TYPE "openmp-ir-builder"
diff --git a/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp b/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
index 0d1d9730ce807..c1e5ab1a2b561 100644
--- a/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
+++ b/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
@@ -44,6 +44,7 @@
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Utils/Cloning.h"
+#include <deque>
#include <sstream>
#include <unordered_map>
#include <vector>
More information about the llvm-commits
mailing list