[all-commits] [llvm/llvm-project] 829992: [NewGVN] Prevent cyclic dependencies by ensuring L...

ManuelJBrito via All-commits all-commits at lists.llvm.org
Wed Aug 14 00:18:55 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 829992cf21e9220bbf7985073745ee8f09b0b7f1
      https://github.com/llvm/llvm-project/commit/829992cf21e9220bbf7985073745ee8f09b0b7f1
  Author: ManuelJBrito <59119670+ManuelJBrito at users.noreply.github.com>
  Date:   2024-08-14 (Wed, 14 Aug 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/NewGVN.cpp
    A llvm/test/Transforms/NewGVN/pr36335-phi-undef.ll
    M llvm/test/Transforms/NewGVN/simp-to-self.ll
    R llvm/test/Transforms/NewGVN/todo-pr36335-phi-undef.ll

  Log Message:
  -----------
  [NewGVN] Prevent cyclic dependencies by ensuring Leader has min RPO number (#82110)

Cyclic dependencies in NewGVN can result in miscompilation and
termination issues.

This patch ensures that the Class Leader is always the member with the
lowest RPO number. This ensures that the Class Leader is processed
before all other members, making the cyclic dependence impossible.

This fixes #35683.

Regressions: 

- 'simp-to-self.ll' regresses due to a known limitation in the way
NewGVN and InstSimplify interact. With the new leader, InstSimplify does
not know that %conv is 1 and fails to simplify.



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