|
Jlm
|
#include <Worklist.hpp>


Public Member Functions | |
| ~LrfWorklist () override=default | |
| LrfWorklist ()=default | |
| bool | HasMoreWorkItems () const noexcept override |
| T | PopWorkItem () override |
| void | PushWorkItem (T item) override |
Public Member Functions inherited from jlm::util::Worklist< T > | |
| virtual | ~Worklist ()=default |
| Worklist ()=default | |
| Worklist (const Worklist &other)=delete | |
| Worklist (Worklist &&other)=default | |
| Worklist & | operator= (const Worklist &other)=delete |
| Worklist & | operator= (Worklist &&other)=default |
Private Types | |
| template<typename U > | |
| using | MinPriorityQueue = std::priority_queue< U, std::vector< U >, std::greater< U > > |
Private Attributes | |
| MinPriorityQueue< std::pair< size_t, T > > | WorkItems_ |
| size_t | FireCounter_ = 0 |
| std::unordered_map< T, size_t > | LastFire_ |
Static Private Attributes | |
| static const size_t | InQueueSentinelValue = std::numeric_limits<size_t>::max() |
Worklist implementation using a priority queue, ordering work items by "Least Recently Fired". Each work item is time stamped when it leaves the work list. When selecting a work item from the list, the item with the oldest time stemp (or no time stamp, if any) is chosen. LRF is presented in A. Kanamori and D. Weise "Worklist management strategies for Dataflow Analysis" (1994), and used in Pierce's "Online cycle detection and difference propagation for pointer analysis" (2003).
| T | the type of the work items. |
Definition at line 169 of file Worklist.hpp.
|
private |
Definition at line 211 of file Worklist.hpp.
|
overridedefault |
|
default |
|
inlineoverridevirtualnoexcept |
Implements jlm::util::Worklist< T >.
Definition at line 177 of file Worklist.hpp.
|
inlineoverridevirtual |
Removes one work item from the worklist. Requires there to be at least one work item left.
Implements jlm::util::Worklist< T >.
Definition at line 183 of file Worklist.hpp.
|
inlineoverridevirtual |
Adds a work item to the worklist. If the item is already present, the item is not added again, but its position may be changed.
| item | the work item to be added. |
Implements jlm::util::Worklist< T >.
Definition at line 194 of file Worklist.hpp.
|
private |
Definition at line 217 of file Worklist.hpp.
|
inlinestaticprivate |
Definition at line 207 of file Worklist.hpp.
|
private |
Definition at line 221 of file Worklist.hpp.
|
private |
Definition at line 214 of file Worklist.hpp.