[all-commits] [llvm/llvm-project] abe3c5: [GVNSink] Fix non-determinisms by using a determin...

AdityaK via All-commits all-commits at lists.llvm.org
Sun May 12 19:42:16 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: abe3c5ac19e455d8a6df3120fa5e7a6e5f9005a6
      https://github.com/llvm/llvm-project/commit/abe3c5ac19e455d8a6df3120fa5e7a6e5f9005a6
  Author: AdityaK <hiraditya at msn.com>
  Date:   2024-05-12 (Sun, 12 May 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/GVNSink.cpp
    M llvm/test/Transforms/GVNSink/int_sideeffect.ll

  Log Message:
  -----------
  [GVNSink] Fix non-determinisms by using a deterministic ordering (#90995)

GVNSink used to order instructions based on their pointer values and was
prone to non-determinism because of that.
This patch ensures all the values stored are using a deterministic
order. I have also added a verfier(`ModelledPHI::verifyModelledPHI`) to
assert when ordering isn't preserved.

Additionally, I have added a test case (mirror graph image of an
existing test) that would have failed before this patch.

Fixes: #77852



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list