[llvm] [MCA] Optimize memory consumption in resource pressure view (NFC) (PR #124904)
Min-Yih Hsu via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 29 16:31:47 PST 2025
================
@@ -180,17 +212,24 @@ json::Value ResourcePressureView::toJSON() const {
// non-zero values.
ArrayRef<llvm::MCInst> Source = getSource();
const unsigned Executions = LastInstructionIdx / Source.size() + 1;
- for (const auto &R : enumerate(ResourceUsage)) {
- const ReleaseAtCycles &RU = R.value();
- if (RU.getNumerator() == 0)
- continue;
- unsigned InstructionIndex = R.index() / NumResourceUnits;
- unsigned ResourceIndex = R.index() % NumResourceUnits;
- double Usage = RU / Executions;
+
+ auto AddToJSON = [&ResourcePressureInfo, Executions](
+ const ResourceReleaseAtCycles &RU, unsigned InstIndex) {
+ assert(RU.Cycles.getNumerator() != 0);
+ double Usage = RU.Cycles / Executions;
ResourcePressureInfo.push_back(
- json::Object({{"InstructionIndex", InstructionIndex},
- {"ResourceIndex", ResourceIndex},
+ json::Object({{"InstructionIndex", InstIndex},
+ {"ResourceIndex", RU.ResourceIdx},
{"ResourceUsage", Usage}}));
+ };
+ for (const auto &R : enumerate(ResourceUsage)) {
----------------
mshockwave wrote:
nit: We can use `const auto &[..., ...] : enumerate(ResourceUsage)` now.
https://github.com/llvm/llvm-project/pull/124904
More information about the llvm-commits
mailing list