Lines Matching defs:worklist
192 /// A LIFO worklist of operations with efficient removal and set semantics.
202 /// Clear the worklist.
205 /// Return whether the worklist is empty.
208 /// Push an operation to the end of the worklist, unless the operation is
209 /// already on the worklist.
212 /// Pop the an operation from the end of the worklist. Only allowed on
216 /// Remove an operation from the worklist.
219 /// Reverse the worklist.
223 /// The worklist of operations.
244 assert(op && "cannot push nullptr to worklist");
245 // Check to see if the worklist already contains this op.
252 assert(!empty() && "cannot pop from empty worklist");
266 assert(op && "cannot remove nullptr from worklist");
269 assert(list[it->second] == op && "malformed worklist data structure");
282 /// A worklist that pops elements at a random position. This worklist is for
292 /// Pop a random non-empty op from the worklist.
296 assert(!list.empty() && "cannot pop from empty worklist");
316 /// This is a worklist-driven driver for the PatternMatcher, which repeatedly
319 /// This abstract class manages the worklist and contains helper methods for
320 /// rewriting ops on the worklist. Derived classes specify how ops are added
321 /// to the worklist in the beginning.
328 /// Add the given operation to the worklist.
331 /// Add the given operation and its ancestors to the worklist.
335 /// in-place. The operation is added to the worklist.
339 /// worklist as needed: The operation is enqueued depending on scope and
345 /// worklist as needed: The operation and its children are removed from the
346 /// worklist.
350 /// worklist as needed: New users are added enqueued.
353 /// Process ops until the worklist is empty or `config.maxNumRewrites` is
361 /// The worklist for this transformation keeps track of the operations that
364 RandomizedWorklist worklist;
366 Worklist worklist;
380 /// be re-added to the worklist. This function should be called when an
457 while (!worklist.empty() &&
460 auto *op = worklist.pop();
490 // is then put on the worklist.
657 worklist.push(op);
697 // worklist. Indeed, after the op is deleted, then the operand will have at
734 // Only ops that are within the configured scope are added to the worklist of
738 // region, as that would break the worklist handling and the expensive checks.
748 worklist.remove(op);
836 // New iteration: start with an empty worklist.
837 worklist.clear();
843 // Check for existing constants when populating the worklist. This avoids
853 // Add operations to the worklist in postorder.
859 // Add all nested operations to the worklist in preorder.
869 worklist.reverse();
974 // Populate the initial worklist.
978 // Process ops on the worklist.
983 return success(worklist.empty());