[Bug 276961] buildworld artifacts not reproducible between native and cross build
Date: Thu, 25 Jul 2024 18:04:06 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276961
--- Comment #7 from commit-hook@FreeBSD.org ---
A commit in branch main references this bug:
URL:
https://cgit.FreeBSD.org/src/commit/?id=55a2a91c5e1bb39dd625ba56597608883fbcb318
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 normally
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 here.
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 optimization
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(-)
--
You are receiving this mail because:
You are the assignee for the bug.