diff options
-rw-r--r-- | lib/Target/X86/X86ISelPattern.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/X86/X86ISelPattern.cpp b/lib/Target/X86/X86ISelPattern.cpp index b7c9cfe9f2..a75854e559 100644 --- a/lib/Target/X86/X86ISelPattern.cpp +++ b/lib/Target/X86/X86ISelPattern.cpp @@ -453,8 +453,11 @@ unsigned ISel::ComputeRegPressure(SDOperand O) { ++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"; |