[all-commits] [llvm/llvm-project] 1b80cc: [mlgo][regalloc] Handle training case when no rega...

Mircea Trofin via All-commits all-commits at lists.llvm.org
Mon Feb 6 13:57:39 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1b80ccba0f9bb86eabeeb0c32876eae2088eafb8
      https://github.com/llvm/llvm-project/commit/1b80ccba0f9bb86eabeeb0c32876eae2088eafb8
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2023-02-06 (Mon, 06 Feb 2023)

  Changed paths:
    M llvm/include/llvm/Analysis/Utils/TrainingLogger.h
    M llvm/lib/CodeGen/MLRegallocEvictAdvisor.cpp
    M llvm/lib/CodeGen/MLRegallocPriorityAdvisor.cpp
    A llvm/test/CodeGen/MLRegalloc/empty-log.ll

  Log Message:
  -----------
  [mlgo][regalloc] Handle training case when no regalloc happens.

There's an early-exit case for regalloc when we don't even get a chance
to ask for an advisor (priority or eviction), and switch the context.
Then, when we want to log the reward for that function (==the one with
the early exit case), we hit the error case where the function's name
doesn't match the last-seen context.

There are a few possible fixes, one would be to just switch context when
output-ing the reward, which would be correct. This patch opts for the
alternative where we check any loging happened in the first place - just
to re-validate that no function would have been regaloc-ed without first
log-ing its reward.

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




More information about the All-commits mailing list