[llvm-bugs] [Bug 32342] non-deterministic stage2/stage3 file comparison failures in 3 stage bootstrap on x86_64 darwin and x86_64 linux

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Apr 12 05:07:29 PDT 2017


http://bugs.llvm.org/show_bug.cgi?id=32342

Jack Howarth <howarth.mailing.lists at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #53 from Jack Howarth <howarth.mailing.lists at gmail.com> ---
(In reply to Kyle Butt from comment #52)
> With the help of an internal reproducer, I found the root cause. A fix is
> here: https://reviews.llvm.org/D31964 if someone would care to review.
> 
> It's not the DenseMap, it is that we are not clearing ComputedEdges between
> functions. This causes spurious bad layout decisions when pointers end up
> colliding. It also leaks memory.

Thanks. I can confirm that...

------------------------------------------------------------------------
r300022 | iteratee | 2017-04-11 23:18:20 -0400 (Tue, 11 Apr 2017) | 5 lines

CodeGen: BlockPlacement: Clear ComputedEdges between functions.

Not clearing was causing non-deterministic compiles for large files. Addresses
for MachineBasicBlocks would end up colliding and we would lay out a block that
we assumed had been pre-computed when it had not been.
------------------------------------------------------------------------

eliminated the non-determinism in the 3-stage bootstrap on
x86_64-apple-darwin16.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170412/25e7a983/attachment.html>


More information about the llvm-bugs mailing list