88 return (
head ==
nullptr);
91 inline bool find(
const Data &data)
const
96 void push(
const Data &data)
104 tail->next = new_node;
111 assert(
head !=
nullptr &&
"list is empty");
120 Data data = head_node->
data;
148 for (
const Data& d : vec)
155 for (
const Data& d : lst)
168 assert(
data_list.size() ==
data_set.size() &&
"list and set must be the same size!");
172 inline bool find(
const Data &data)
const
180 inline bool push(
const Data &data)
197 assert(!
empty() &&
"work list is empty");
207 assert(!
empty() &&
"work list is empty");
217 assert(!
empty() &&
"work list is empty");
254 for (
const Data& d : vec)
261 for (
const Data& d : lst)
274 assert(
data_list.size() ==
data_set.size() &&
"list and set must be the same size!");
278 inline bool find(
const Data &data)
const
286 inline bool push(
const Data &data)
303 assert(!
empty() &&
"work list is empty");
315 assert(!
empty() &&
"work list is empty");
325 assert(!
empty() &&
"work list is empty");
bool push(const Data &data)
FIFOWorkList(const std::vector< Data > &vec)
Construct from a vector, pushing all elements in order.
std::deque< const Instruction * > DataDeque
Set< const Instruction * > DataSet
FIFOWorkList(const std::list< Data > &lst)
Construct from a list, pushing all elements in order.
bool find(const Data &data) const
std::vector< Data > DataVector
FILOWorkList(const std::list< Data > &lst)
Construct from a list, pushing all elements in order.
bool find(const Data &data) const
bool push(const Data &data)
FILOWorkList(const std::vector< Data > &vec)
Construct from a vector, pushing all elements in order.
bool find(const Data &data) const
void push(const Data &data)
std::unordered_set< Key, Hash, KeyEqual, Allocator > Set