[Bug 276961] buildworld artifacts not reproducible between native and cross build

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 24 Jul 2024 19:44:44 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276961

--- Comment #6 from commit-hook@FreeBSD.org ---
A commit in branch stable/13 references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=8d87e47b8d1093a264ca954620b9e58b81fb9b34

commit 8d87e47b8d1093a264ca954620b9e58b81fb9b34
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-07-21 20:37:27 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-07-24 19:26:11 +0000

    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 397c2693fa66508cb5e6b173650a1f3bc6c4dd4f)

 contrib/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.