Do not give token factor nodes outrageous weights
llvm-svn: 19645
diff --git a/llvm/lib/Target/X86/X86ISelPattern.cpp b/llvm/lib/Target/X86/X86ISelPattern.cpp
index b7c9cfe..a75854e 100644
--- a/llvm/lib/Target/X86/X86ISelPattern.cpp
+++ b/llvm/lib/Target/X86/X86ISelPattern.cpp
@@ -453,8 +453,11 @@
++NumExtraMaxRegUsers;
}
}
-
- Result = MaxRegUse+NumExtraMaxRegUsers;
+
+ if (O.getOpcode() != ISD::TokenFactor)
+ Result = MaxRegUse+NumExtraMaxRegUsers;
+ else
+ Result = std::max(MaxRegUse-1, 1);
}
//std::cerr << " WEIGHT: " << Result << " "; N->dump(); std::cerr << "\n";