[PATCH] D98232: [regalloc] Ensure Query::collectInterferringVregs is called before interval iteration

Mircea Trofin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 16 14:29:10 PDT 2021


mtrofin added a comment.

In D98232#2630273 <https://reviews.llvm.org/D98232#2630273>, @nikic wrote:

> Unfortunately I'm not familiar with RegAlloc, but I somehow doubt that this kind of compile-time hit is intrinsically necessary to address this issue.

The problem is that the previous use of the APIs was incorrect -  the code before was sometimes using stale data, because it was incorrectly not calling `collectInterferingVRegs`. The compile time regression is reflective of the effort required to refresh the data.

I think we have a situation like this:

- (status quo) no compile time regression, but incorrect functionality
- (patch) compile time regression, correct functionality
- remove patch that originally introduced this functionality (https://reviews.llvm.org/D35816), but then there are cases where we hit regressions in code quality
- <options that I am not aware of - actionable suggestions very welcome!>

What are the guidelines regarding compile time regressions (e.g. what constitutes acceptable; what is the tradeoff hierarchy, e.g. in this case, buggy code)?

> This is also missing a test case.

That's reasonable. I'll craft one up while we explore the options here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98232/new/

https://reviews.llvm.org/D98232



More information about the llvm-commits mailing list