[llvm] [MCA][ResourceManager] Fix a bug in the instruction issue logic. (PR #108386)
    Andrea Di Biagio via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Sep 13 01:59:13 PDT 2024
    
    
  
================
@@ -428,9 +430,21 @@ class ResourceManager {
   uint64_t getProcResUnitMask() const { return ProcResUnitMask; }
   uint64_t getAvailableProcResUnits() const { return AvailableProcResUnits; }
 
-  void issueInstruction(
-      const InstrDesc &Desc,
-      SmallVectorImpl<std::pair<ResourceRef, ReleaseAtCycles>> &Pipes);
+  using ResourceWithCycles = std::pair<ResourceRef, ReleaseAtCycles>;
+
+  void issueInstruction(const InstrDesc &Desc,
+                        SmallVectorImpl<ResourceWithCycles> &Pipes) {
+    if (Desc.HasPartiallyOverlappingGroups)
+      return issueInstructionImpl(Desc, Pipes);
+
+    return fastIssueInstruction(Desc, Pipes);
+  }
+
+  void fastIssueInstruction(const InstrDesc &Desc,
----------------
adibiagio wrote:
Good idea. I'll add a code comment in issueInstruction.
https://github.com/llvm/llvm-project/pull/108386
    
    
More information about the llvm-commits
mailing list