[llvm-mca] Fix class dominance warnings for parseCodeRegions
authorMichael Maitland <michaeltmaitland@gmail.com>
Tue, 22 Nov 2022 00:02:47 +0000 (16:02 -0800)
committerMichael Maitland <michaeltmaitland@gmail.com>
Tue, 22 Nov 2022 20:31:01 +0000 (12:31 -0800)
Fixes issue [59091](https://github.com/llvm/llvm-project/issues/59091).

`CodeRegionGenerator::parseCodeRegions` is implemented by `AsmCodeRegionGenerator`.
If it were to be implemented in `AnalysisRegionGenerator` or `InstrumentRegionGenerator`,
then `parseCodeRegions` from an `AsmAnalysisRegionGenerator` or `AsmInstrumentRegionGenerator`
object would be ambiguous. To solve this, `AsmAnalysisRegionGenerator` and
`AsmInstrumentRegionGenerator` qualify their call to `AsmCodeRegionGenerator::parseCodeRegions`.

Differential Revision: https://reviews.llvm.org/D138462

llvm/tools/llvm-mca/CodeRegionGenerator.h

index d9e9be2..88621ed 100644 (file)
@@ -162,6 +162,11 @@ public:
     else
       return static_cast<const AnalysisRegions &>(*RegionsOrErr);
   }
+
+  Expected<const CodeRegions &>
+  parseCodeRegions(const std::unique_ptr<MCInstPrinter> &IP) override {
+    return AsmCodeRegionGenerator::parseCodeRegions(IP);
+  }
 };
 
 class AsmInstrumentRegionGenerator final : public InstrumentRegionGenerator,
@@ -187,6 +192,11 @@ public:
     else
       return static_cast<const InstrumentRegions &>(*RegionsOrErr);
   }
+
+  Expected<const CodeRegions &>
+  parseCodeRegions(const std::unique_ptr<MCInstPrinter> &IP) override {
+    return AsmCodeRegionGenerator::parseCodeRegions(IP);
+  }
 };
 
 } // namespace mca