Skip to content

Commit

Permalink
Integrate LLVM at llvm/llvm-project@5e53a8dadb00
Browse files Browse the repository at this point in the history
Updates LLVM usage to match
[5e53a8dadb00](llvm/llvm-project@5e53a8dadb00)

PiperOrigin-RevId: 705873858
  • Loading branch information
tensorflower-gardener authored and copybara-github committed Dec 13, 2024
1 parent a43ab80 commit 1f2dd7f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
34 changes: 34 additions & 0 deletions third_party/llvm/generated.patch
Original file line number Diff line number Diff line change
@@ -1 +1,35 @@
Auto generated patch. Do not edit or delete it, even if empty.
diff -ruN --strip-trailing-cr a/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp b/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
--- a/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
+++ b/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
@@ -63,6 +63,12 @@
"outgoing name should be "
"<regalloc-evict-interactive-channel-base>.out"));

+static cl::opt<unsigned>
+ MaxCascade("mlregalloc-max-cascade", cl::Hidden,
+ cl::desc("The maximum number of times a live range can be "
+ "evicted before preventing it from being evicted"),
+ cl::init(20));
+
// Options that only make sense in development mode
#ifdef LLVM_HAVE_TFLITE
#include "RegAllocScore.h"
@@ -643,8 +649,16 @@
RegClassInfo.getNumAllocatableRegs(MRI->getRegClass(VirtReg.reg())) <
RegClassInfo.getNumAllocatableRegs(
MRI->getRegClass(Intf->reg())));
- // Only evict older cascades or live ranges without a cascade.
+
unsigned IntfCascade = RA.getExtraInfo().getCascade(Intf->reg());
+ // There is a potential that the model could be adversarial and
+ // continually evict live ranges over and over again, leading to a
+ // large amount of compile time being spent in regalloc. If we hit the
+ // threshold, prevent the range from being evicted.
+ if (IntfCascade >= MaxCascade)
+ return false;
+
+ // Only evict older cascades or live ranges without a cascade.
if (Cascade <= IntfCascade) {
if (!Urgent)
return false;
4 changes: 2 additions & 2 deletions third_party/llvm/workspace.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ load("//third_party:repo.bzl", "tf_http_archive")

def repo(name):
"""Imports LLVM."""
LLVM_COMMIT = "0876c11ceeb093904decc4d89bef213d483a5656"
LLVM_SHA256 = "8379577a71645bbba89dea08beba32b3e56b833da7340ba5be7efa3986c8f8ed"
LLVM_COMMIT = "5e53a8dadb0019ee87936c1278fa222781257005"
LLVM_SHA256 = "eb8e26186a8f7e15e59d37729353525d2367272c9f053d2ef1a2c1e292b8b688"

tf_http_archive(
name = name,
Expand Down

0 comments on commit 1f2dd7f

Please sign in to comment.