git: 511583866352 - stable/14 - Revert "Fix llvm register allocator for native/cross build differences"

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Wed, 31 Jul 2024 07:30:14 UTC
The branch stable/14 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=51158386635294dc6cff48090a1a8faa2c97553e

commit 51158386635294dc6cff48090a1a8faa2c97553e
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-07-28 11:08:50 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-07-31 07:29:41 +0000

    Revert "Fix llvm register allocator for native/cross build differences"
    
    In preparation for applying the fix that landed upstream, this reverts
    commit 397c2693fa66508cb5e6b173650a1f3bc6c4dd4f:
    
      Fix llvm register allocator for native/cross build differences
    
      Work around an issue in LLVM's register allocator, which can cause
      slightly different i386 object files, when produced by a native or cross
      build of clang.
    
      This adds another volatile qualifier to a float variable declaration in
      the weightCalcHelper() function, which otherwise produces slightly
      different float results on amd64 and i386 hosts. In turn, this can lead
      to different (but equivalent) register choices, and thus non-identical
      assembly code.
    
      See https://github.com/llvm/llvm-project/issues/99396 for more details.
    
      Note this is a temporary fix, meant to merge in time for 13.4. As soon
      as upstream has a permanent solution we will import that.
    
    PR:             276961
    Reported by:    cperciva
    MFC after:      3 days
    
    (cherry picked from commit 52552d7572a6d3d7d3ce0d6862de9a9d203c5d01)
---
 contrib/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/contrib/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp b/contrib/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp
index afde8d001f88..f3cb7fa5af61 100644
--- a/contrib/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp
+++ b/contrib/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp
@@ -256,12 +256,7 @@ float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start,
       return -1.0f;
     }
 
-    // FreeBSD customization: similar to the HWeight declaration below, add a
-    // volatile qualifier to avoid slightly different weight results on amd64
-    // and i386 hosts, and possibly choosing different registers in the register
-    // allocator. See <https://github.com/llvm/llvm-project/issues/99396> for
-    // more details.
-    volatile float Weight = 1.0f;
+    float Weight = 1.0f;
     if (IsSpillable) {
       // Get loop info for mi.
       if (MI->getParent() != MBB) {