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

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 25 05:18:56 PDT 2021


dmgreen added a comment.

I'm worried that this comes up in a lot of places. Perhaps rare still, but important cases. The aarch64 example we have is just a matrix multiply, and is 25% slower with all the cascading spills, https://bugs.llvm.org/show_bug.cgi?id=26810 quotes the same. Like I said before though, the option didn't fix some examples of the same thing that we were seeing in ARM, so I'm not sure how reliably better it is.

@aditya_nandakumar @qcolombet any idea when a better fix for that issue might be available?

Could we just make `consider-local-interval-cost` -O3 only in the meantime? That should alleviate some of the compile time worries, as we have genuine examples of where it is hurting performance.



================
Comment at: llvm/test/CodeGen/X86/bug26810.ll:1
-; RUN: llc < %s -march=x86 -regalloc=greedy -stop-after=greedy | FileCheck %s
+; RUN: llc -consider-local-interval-cost < %s -march=x86 -regalloc=greedy -stop-after=greedy | FileCheck %s
 ; Make sure bad eviction sequence doesnt occur
----------------
If we are enabling this flag by default, we should probably update the tests, not hide them behind a flag.


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