Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Jul 2024 18:04:06 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 276961] buildworld artifacts not reproducible between native and cross build
Message-ID:  <bug-276961-227-SU3jGOfZ0V@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-276961-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-276961-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D276961

--- Comment #7 from commit-hook@FreeBSD.org ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=3D55a2a91c5e1bb39dd625ba56597608883=
fbcb318

commit 55a2a91c5e1bb39dd625ba56597608883fbcb318
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-07-25 11:13:45 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-07-25 18:03:01 +0000

    Merge commit 28a2b85602a5 from llvm-project (by Kazu Hirata):

      [DeadStoreElimination] Use SmallSetVector (NFC) (#79410)

      The use of SmallSetVector saves 0.58% of heap allocations during the
      compilation of a large preprocessed file, namely X86ISelLowering.cpp,
      for the X86 target.  During the experiment, the final size of ToCheck
      was 8 or less 88% of the time.

    Merge commit 9e95c4947d31 from llvm-project (by Nikita Popov):

      [DSE] Fix non-determinism due to address reuse (#84943)

      The malloc->calloc fold creates a new MemoryAccess, which may end of =
at
      the same address as a previously deleted access inside SkipStores.

      To the most part, this is not a problem, because SkipStores is normal=
ly
      only used together with MemDefs. Neither the old malloc access nor the
      new calloc access will be part of MemDefs, so there is no problem her=
e.

      However, SkipStores is also used in one more place: In the main DSE
      loop, ToCheck entries are checked against it. Fix this by not using
      SkipStores here, and instead using a separate set to track deletions
      inside this loop. This way it is not affected by the calloc optimizat=
ion
      that happens outside it.

      This is all pretty ugly, but I haven't found another good way to fix =
it.
      Suggestions welcome.

      No test case as I don't have a reliable DSE-only test-case for this.

      Fixes https://github.com/llvm/llvm-project/issues/84458.

    This fixes another possible difference in output when building i386
    object files with a native or cross build of clang. (Specifically, the
    file sbin/ipf/ipmon/ipmon.o.)

    PR:             276961
    Reported by:    cperciva
    MFC after:      3 days

 .../lib/Transforms/Scalar/DeadStoreElimination.cpp | 24 ++++++++++++++++--=
----
 1 file changed, 18 insertions(+), 6 deletions(-)

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-276961-227-SU3jGOfZ0V>