[PATCH] D50849: [llvm-mca] Refactor how execution is orchestrated by the Pipeline. NFCI
    Matt Davis via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Aug 16 10:42:26 PDT 2018
    
    
  
mattd added a comment.
I made a few comments, all just nits.  This is a pretty substantial change in design, but better.  LGTM.  Thanks for this!
================
Comment at: tools/llvm-mca/FetchStage.cpp:37
+    return llvm::ErrorSuccess();
+
   const SourceRef SR = SM.peekNext();
----------------
nit: Not sure if we want whitespace here.  Lines 41 and 43 below do not use white space to separate the if block.
================
Comment at: tools/llvm-mca/Stage.h:58
+  void setNextInSequence(Stage *NextStage) {
+    NextInSequence = NextStage;
+  }
----------------
Would there ever be the case where a stage might want to overwrite its NextInSequence? If not, then perhaps we should add an assertion.
================
Comment at: tools/llvm-mca/Stage.h:65
+
+  /// Called when an instruction is ready to move the next stage of the
+  /// pipeline. 
----------------
This is the fundamental difference from this design and the previous incarnation of Stage.  I think this comment should be a bit more explicit in saying that a Stage is responsible for transferring the instruction it completes processing on to its immediate successor stage. 
https://reviews.llvm.org/D50849
    
    
More information about the llvm-commits
mailing list