[PATCH] D87519: [analyzer][Liveness][NFC] Enqueue the CFGBlocks post-order

Gábor Horváth via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 11 11:10:23 PDT 2020


xazax.hun added inline comments.


================
Comment at: clang/lib/Analysis/LiveVariables.cpp:522
 
-  // FIXME: we should enqueue using post order.
-  for (const CFGBlock *B : cfg->nodes()) {
+  for (const CFGBlock *B : *AC.getAnalysis<PostOrderCFGView>()) {
     worklist.enqueueBlock(B);
----------------
With `BackwardDataflowWorklist`, each  `enqueueBlock` will insert the block into a `llvm::PriorityQueue`. So regardless of the insertion order, `dequeue` will return the nodes in the reverse post order. 

Inserting elements in the right order into the heap might be beneficial is we need to to less work to "heapify". But on the other hand, we did more work to insert them in the right order, in the first place. All in all, I am not sure whether the comment is still valid and whether this patch would provide any benefit over the original code. 



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D87519/new/

https://reviews.llvm.org/D87519



More information about the cfe-commits mailing list