[PATCH] D66399: [ORCv2] - New Speculate Query Implementation

Lang Hames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 19 14:29:38 PDT 2019


lhames added inline comments.


================
Comment at: llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:172-177
+    auto IsCallerBlock = llvm::find(CallerBlocks, AtBB);
+    if (IsCallerBlock != CallerBlocks.end()) {
+      BlockHint.CallerBlock = true;
+      VisitedBlocks.insert(std::make_pair(AtBB, BlockHint));
+    } else
+      VisitedBlocks.insert(std::make_pair(AtBB, BlockHint));
----------------
I think this can be simplified to:

  BlockHint.CallerBlock = llvm::find(CallerBlocks, AtBB) != CallerBlocks.end();
  VisitedBlocks.insert(std::make_pair(AtBB, BlockHint));


================
Comment at: llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:248-249
+// with call.
+SequenceBBQuery::BlockListTy
+SequenceBBQuery::queryCFG(Function &F, const BlockListTy &CallerBlocks) {
+
----------------
Can you describe more about how SequencedBBQuery differs from BlockFreqQuery?

In particular: (1) What is the output of this algorithm, queryCFG, and (2) what benefit do we get from scanning to the exit blocks?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66399





More information about the llvm-commits mailing list