[go] cmd/compile: don't rely on loop info when there are irreducible loops

9 views
Skip to first unread message

Keith Randall (Gerrit)

unread,
Sep 23, 2025, 7:35:08 PM (8 days ago) Sep 23
to David Chase, goph...@pubsubhelper.golang.org, Keith Randall, golang-co...@googlegroups.com
Attention needed from David Chase

Keith Randall has uploaded the change for review

Keith Randall would like David Chase to review this change.

Commit message

cmd/compile: don't rely on loop info when there are irreducible loops

Loop information is sketchy when there are irreducible loops.
Sometimes blocks inside 2 loops can be recorded as only being part of
the outer loop. That causes tighten to move values that want to move
into such a block to move out of the loop altogether, breaking the
invariant that operations have to be scheduled after their args.

Fixes #75569
Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a

Change diff

diff --git a/src/cmd/compile/internal/ssa/tighten.go b/src/cmd/compile/internal/ssa/tighten.go
index 48efdb5..0de586a 100644
--- a/src/cmd/compile/internal/ssa/tighten.go
+++ b/src/cmd/compile/internal/ssa/tighten.go
@@ -5,6 +5,7 @@
package ssa

import "cmd/compile/internal/base"
+import "fmt"

// tighten moves Values closer to the Blocks in which they are used.
// This can reduce the amount of register spilling required,
@@ -123,18 +124,30 @@

// If the target location is inside a loop,
// move the target location up to just before the loop head.
- for _, b := range f.Blocks {
- origloop := loops.b2l[b.ID]
- for _, v := range b.Values {
- t := target[v.ID]
- if t == nil {
- continue
- }
- targetloop := loops.b2l[t.ID]
- for targetloop != nil && (origloop == nil || targetloop.depth > origloop.depth) {
- t = idom[targetloop.header.ID]
- target[v.ID] = t
- targetloop = loops.b2l[t.ID]
+ if f.Name == "fff" || f.Name == "(*Machine).Parse" {
+ fmt.Printf("irred: %v\n", loops.hasIrreducible)
+ for _, loop := range loops.loops {
+ fmt.Printf("LOOP header=%v outer=%v\n", loop.header, loop.outer)
+ }
+ for _, b := range f.Blocks {
+ fmt.Printf(" b=%v loop=%v\n", b, loops.b2l[b.ID])
+ }
+ }
+ if !loops.hasIrreducible {
+ // Loop info might not be correct for irreducible loops. See issue 75569.
+ for _, b := range f.Blocks {
+ origloop := loops.b2l[b.ID]
+ for _, v := range b.Values {
+ t := target[v.ID]
+ if t == nil {
+ continue
+ }
+ targetloop := loops.b2l[t.ID]
+ for targetloop != nil && (origloop == nil || targetloop.depth > origloop.depth) {
+ t = idom[targetloop.header.ID]
+ target[v.ID] = t
+ targetloop = loops.b2l[t.ID]
+ }
}
}
}
diff --git a/test/fixedbugs/issue75569.go b/test/fixedbugs/issue75569.go
new file mode 100644
index 0000000..8420641
--- /dev/null
+++ b/test/fixedbugs/issue75569.go
@@ -0,0 +1,77 @@
+// run
+
+// Copyright 2025 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+func fff(a []int, b bool, p, q *int) {
+outer:
+ n := a[0]
+ a = a[1:]
+ switch n {
+ case 1:
+ goto one
+ case 2:
+ goto two
+ case 3:
+ goto three
+ case 4:
+ goto four
+ }
+
+one:
+ goto inner
+two:
+ goto outer
+three:
+ goto inner
+four:
+ goto innerSideEntry
+
+inner:
+ n = a[0]
+ a = a[1:]
+ switch n {
+ case 1:
+ goto outer
+ case 2:
+ goto inner
+ case 3:
+ goto innerSideEntry
+ default:
+ return
+ }
+innerSideEntry:
+ n = a[0]
+ a = a[1:]
+ switch n {
+ case 1:
+ goto outer
+ case 2:
+ goto inner
+ case 3:
+ goto inner
+ }
+ ggg(p, q)
+ goto inner
+}
+
+var b bool
+
+func ggg(p, q *int) {
+ n := *p + 5 // this +5 ends up in the entry block, well before the *p load
+ if b {
+ *q = 0
+ }
+ *p = n
+}
+
+func main() {
+ var x, y int
+ fff([]int{4, 4, 4}, false, &x, &y)
+ if x != 5 {
+ panic(x)
+ }
+}

Change information

Files:
  • M src/cmd/compile/internal/ssa/tighten.go
  • A test/fixedbugs/issue75569.go
Change size: M
Delta: 2 files changed, 102 insertions(+), 12 deletions(-)
Open in Gerrit

Related details

Attention is currently required from:
  • David Chase
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newchange
Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
Gerrit-Change-Number: 706355
Gerrit-PatchSet: 1
Gerrit-Owner: Keith Randall <k...@golang.org>
Gerrit-Reviewer: David Chase <drc...@google.com>
Gerrit-Reviewer: Keith Randall <k...@golang.org>
Gerrit-Attention: David Chase <drc...@google.com>
unsatisfied_requirement
satisfied_requirement
open
diffy

Keith Randall (Gerrit)

unread,
Sep 23, 2025, 7:37:32 PM (8 days ago) Sep 23
to Keith Randall, goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
Attention needed from David Chase and Keith Randall

Keith Randall uploaded new patchset

Keith Randall uploaded patch set #2 to this change.
Open in Gerrit

Related details

Attention is currently required from:
  • David Chase
  • Keith Randall
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newpatchset
Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
Gerrit-Change-Number: 706355
Gerrit-PatchSet: 2
Gerrit-Owner: Keith Randall <k...@golang.org>
Gerrit-Reviewer: David Chase <drc...@google.com>
Gerrit-Reviewer: Keith Randall <k...@golang.org>
Gerrit-Attention: Keith Randall <k...@golang.org>
Gerrit-Attention: David Chase <drc...@google.com>
unsatisfied_requirement
satisfied_requirement
open
diffy

Keith Randall (Gerrit)

unread,
Sep 23, 2025, 7:45:16 PM (8 days ago) Sep 23
to Keith Randall, goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
Attention needed from David Chase and Keith Randall

Keith Randall uploaded new patchset

Keith Randall uploaded patch set #3 to this change.
Following approvals got outdated and were removed:
  • TryBots-Pass: LUCI-TryBot-Result-1 by Go LUCI
Open in Gerrit

Related details

Attention is currently required from:
  • David Chase
  • Keith Randall
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newpatchset
Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
Gerrit-Change-Number: 706355
Gerrit-PatchSet: 3
Gerrit-Owner: Keith Randall <k...@golang.org>
Gerrit-Reviewer: David Chase <drc...@google.com>
Gerrit-Reviewer: Keith Randall <k...@golang.org>
unsatisfied_requirement
satisfied_requirement
open
diffy

David Chase (Gerrit)

unread,
Sep 24, 2025, 9:51:41 AM (8 days ago) Sep 24
to Keith Randall, goph...@pubsubhelper.golang.org, Go LUCI, golang-co...@googlegroups.com
Attention needed from Keith Randall

David Chase voted Code-Review+2

Code-Review+2
Open in Gerrit

Related details

Attention is currently required from:
  • Keith Randall
Submit Requirements:
  • requirement satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
Gerrit-Change-Number: 706355
Gerrit-PatchSet: 3
Gerrit-Owner: Keith Randall <k...@golang.org>
Gerrit-Reviewer: David Chase <drc...@google.com>
Gerrit-Reviewer: Keith Randall <k...@golang.org>
Gerrit-Attention: Keith Randall <k...@golang.org>
Gerrit-Comment-Date: Wed, 24 Sep 2025 13:51:36 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Keith Randall (Gerrit)

unread,
Sep 24, 2025, 6:24:35 PM (7 days ago) Sep 24
to Keith Randall, goph...@pubsubhelper.golang.org, David Chase, Go LUCI, golang-co...@googlegroups.com
Attention needed from Keith Randall

Keith Randall voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Keith Randall
Submit Requirements:
    • requirement satisfiedCode-Review
    • requirement satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    • requirement satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Gerrit-Change-Number: 706355
    Gerrit-PatchSet: 3
    Gerrit-Owner: Keith Randall <k...@golang.org>
    Gerrit-Reviewer: David Chase <drc...@google.com>
    Gerrit-Reviewer: Keith Randall <k...@golang.org>
    Gerrit-Reviewer: Keith Randall <k...@google.com>
    Gerrit-Attention: Keith Randall <k...@golang.org>
    Gerrit-Comment-Date: Wed, 24 Sep 2025 22:24:31 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Keith Randall (Gerrit)

    unread,
    Sep 24, 2025, 6:24:43 PM (7 days ago) Sep 24
    to Keith Randall, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, David Chase, Go LUCI, golang-co...@googlegroups.com

    Keith Randall submitted the change

    Change information

    Commit message:
    cmd/compile: don't rely on loop info when there are irreducible loops

    Loop information is sketchy when there are irreducible loops.
    Sometimes blocks inside 2 loops can be recorded as only being part of
    the outer loop. That causes tighten to move values that want to move
    into such a block to move out of the loop altogether, breaking the
    invariant that operations have to be scheduled after their args.

    Fixes #75569
    Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Reviewed-by: David Chase <drc...@google.com>
    Reviewed-by: Keith Randall <k...@google.com>
    Files:
    • M src/cmd/compile/internal/ssa/tighten.go
    • A test/fixedbugs/issue75569.go
    Change size: M
    Delta: 2 files changed, 92 insertions(+), 12 deletions(-)
    Branch: refs/heads/master
    Submit Requirements:
    • requirement satisfiedCode-Review: +2 by David Chase, +1 by Keith Randall
    • requirement satisfiedTryBots-Pass: LUCI-TryBot-Result+1 by Go LUCI
    Open in Gerrit
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: merged
    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Gerrit-Change-Number: 706355
    Gerrit-PatchSet: 4
    open
    diffy
    satisfied_requirement

    Keith Randall (Gerrit)

    unread,
    Sep 24, 2025, 6:26:01 PM (7 days ago) Sep 24
    to goph...@pubsubhelper.golang.org, Keith Randall, golang-co...@googlegroups.com

    Keith Randall has uploaded the change for review

    Commit message

    [release-branch.go1.24] cmd/compile: don't rely on loop info when there are irreducible loops


    Loop information is sketchy when there are irreducible loops.
    Sometimes blocks inside 2 loops can be recorded as only being part of
    the outer loop. That causes tighten to move values that want to move
    into such a block to move out of the loop altogether, breaking the
    invariant that operations have to be scheduled after their args.

    Fixes #75594


    Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/706355
    Reviewed-by: David Chase <drc...@google.com>
    LUCI-TryBot-Result: Go LUCI <golang...@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Keith Randall <k...@google.com>
    (cherry picked from commit f15cd63ec4860c4f2c23cc992843546e0265c332)

    Change diff

    diff --git a/src/cmd/compile/internal/ssa/tighten.go b/src/cmd/compile/internal/ssa/tighten.go
    index 85b6a84..bfb1862 100644
    --- a/src/cmd/compile/internal/ssa/tighten.go
    +++ b/src/cmd/compile/internal/ssa/tighten.go
    @@ -118,18 +118,21 @@


    // If the target location is inside a loop,
    // move the target location up to just before the loop head.
    - for _, b := range f.Blocks {
    - origloop := loops.b2l[b.ID]
    - for _, v := range b.Values {
    - t := target[v.ID]
    - if t == nil {
    - continue
    - }
    - targetloop := loops.b2l[t.ID]
    - for targetloop != nil && (origloop == nil || targetloop.depth > origloop.depth) {
    - t = idom[targetloop.header.ID]
    - target[v.ID] = t
    - targetloop = loops.b2l[t.ID]

    Change information

    Files:
    • M src/cmd/compile/internal/ssa/tighten.go
    • A test/fixedbugs/issue75569.go
    Change size: M
    Delta: 2 files changed, 92 insertions(+), 12 deletions(-)
    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newchange
    Gerrit-Project: go
    Gerrit-Branch: release-branch.go1.24
    Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Gerrit-Change-Number: 706575
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Keith Randall (Gerrit)

    unread,
    Sep 24, 2025, 6:26:18 PM (7 days ago) Sep 24
    to Keith Randall, goph...@pubsubhelper.golang.org, David Chase, golang-co...@googlegroups.com
    Attention needed from David Chase

    Keith Randall voted Commit-Queue+1

    Commit-Queue+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Chase
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: go
    Gerrit-Branch: release-branch.go1.24
    Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Gerrit-Change-Number: 706575
    Gerrit-PatchSet: 1
    Gerrit-Owner: Keith Randall <k...@golang.org>
    Gerrit-Reviewer: David Chase <drc...@google.com>
    Gerrit-Reviewer: Keith Randall <k...@golang.org>
    Gerrit-Attention: David Chase <drc...@google.com>
    Gerrit-Comment-Date: Wed, 24 Sep 2025 22:26:13 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Keith Randall (Gerrit)

    unread,
    Sep 24, 2025, 6:27:00 PM (7 days ago) Sep 24
    to goph...@pubsubhelper.golang.org, Keith Randall, golang-co...@googlegroups.com

    Keith Randall has uploaded the change for review

    Commit message

    [release-branch.go1.25] cmd/compile: don't rely on loop info when there are irreducible loops


    Loop information is sketchy when there are irreducible loops.
    Sometimes blocks inside 2 loops can be recorded as only being part of
    the outer loop. That causes tighten to move values that want to move
    into such a block to move out of the loop altogether, breaking the
    invariant that operations have to be scheduled after their args.

    Fixes #75595


    Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/706355
    Reviewed-by: David Chase <drc...@google.com>
    LUCI-TryBot-Result: Go LUCI <golang...@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Keith Randall <k...@google.com>
    (cherry picked from commit f15cd63ec4860c4f2c23cc992843546e0265c332)

    Change diff

    diff --git a/src/cmd/compile/internal/ssa/tighten.go b/src/cmd/compile/internal/ssa/tighten.go
    index eb5007b..0a4b56d 100644
    --- a/src/cmd/compile/internal/ssa/tighten.go
    +++ b/src/cmd/compile/internal/ssa/tighten.go
    @@ -124,18 +124,21 @@
    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newchange
    Gerrit-Project: go
    Gerrit-Branch: release-branch.go1.25
    Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Gerrit-Change-Number: 706576
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Keith Randall (Gerrit)

    unread,
    Sep 24, 2025, 6:27:10 PM (7 days ago) Sep 24
    to Keith Randall, goph...@pubsubhelper.golang.org, David Chase, golang-co...@googlegroups.com
    Attention needed from David Chase

    Keith Randall voted Commit-Queue+1

    Commit-Queue+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Chase
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: go
    Gerrit-Branch: release-branch.go1.25
    Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Gerrit-Change-Number: 706576
    Gerrit-PatchSet: 1
    Gerrit-Owner: Keith Randall <k...@golang.org>
    Gerrit-Reviewer: David Chase <drc...@google.com>
    Gerrit-Reviewer: Keith Randall <k...@golang.org>
    Gerrit-Attention: David Chase <drc...@google.com>
    Gerrit-Comment-Date: Wed, 24 Sep 2025 22:27:05 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Keith Randall (Gerrit)

    unread,
    Sep 27, 2025, 3:35:39 PM (4 days ago) Sep 27
    to Keith Randall, goph...@pubsubhelper.golang.org, Go LUCI, David Chase, golang-co...@googlegroups.com
    Attention needed from David Chase and Keith Randall

    Keith Randall voted Code-Review+1

    Code-Review+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Chase
    • Keith Randall
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: go
    Gerrit-Branch: release-branch.go1.25
    Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
    Gerrit-Change-Number: 706576
    Gerrit-PatchSet: 1
    Gerrit-Owner: Keith Randall <k...@golang.org>
    Gerrit-Reviewer: David Chase <drc...@google.com>
    Gerrit-Reviewer: Keith Randall <k...@golang.org>
    Gerrit-Reviewer: Keith Randall <k...@google.com>
    Gerrit-Attention: Keith Randall <k...@golang.org>
    Gerrit-Attention: David Chase <drc...@google.com>
    Gerrit-Comment-Date: Sat, 27 Sep 2025 19:35:34 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Keith Randall (Gerrit)

    unread,
    Sep 27, 2025, 3:35:43 PM (4 days ago) Sep 27
    to Keith Randall, goph...@pubsubhelper.golang.org, Go LUCI, David Chase, golang-co...@googlegroups.com
    Attention needed from David Chase and Keith Randall

    Keith Randall voted Code-Review+1

    Code-Review+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Chase
    • Keith Randall
    Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: go
      Gerrit-Branch: release-branch.go1.24
      Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
      Gerrit-Change-Number: 706575
      Gerrit-PatchSet: 1
      Gerrit-Owner: Keith Randall <k...@golang.org>
      Gerrit-Reviewer: David Chase <drc...@google.com>
      Gerrit-Reviewer: Keith Randall <k...@golang.org>
      Gerrit-Reviewer: Keith Randall <k...@google.com>
      Gerrit-Attention: Keith Randall <k...@golang.org>
      Gerrit-Attention: David Chase <drc...@google.com>
      Gerrit-Comment-Date: Sat, 27 Sep 2025 19:35:40 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      David Chase (Gerrit)

      unread,
      Sep 29, 2025, 12:19:34 PM (2 days ago) Sep 29
      to Keith Randall, goph...@pubsubhelper.golang.org, Keith Randall, Go LUCI, golang-co...@googlegroups.com
      Attention needed from Keith Randall

      David Chase voted Code-Review+2

      Code-Review+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Keith Randall
      Submit Requirements:
      • requirement satisfiedCode-Review
      • requirement satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: go
      Gerrit-Branch: release-branch.go1.25
      Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
      Gerrit-Change-Number: 706576
      Gerrit-PatchSet: 1
      Gerrit-Owner: Keith Randall <k...@golang.org>
      Gerrit-Reviewer: David Chase <drc...@google.com>
      Gerrit-Reviewer: Keith Randall <k...@golang.org>
      Gerrit-Reviewer: Keith Randall <k...@google.com>
      Gerrit-Attention: Keith Randall <k...@golang.org>
      Gerrit-Comment-Date: Mon, 29 Sep 2025 16:19:29 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      David Chase (Gerrit)

      unread,
      Sep 29, 2025, 12:19:42 PM (2 days ago) Sep 29
      to Keith Randall, goph...@pubsubhelper.golang.org, Keith Randall, Go LUCI, golang-co...@googlegroups.com
      Attention needed from Keith Randall

      David Chase voted Code-Review+2

      Code-Review+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Keith Randall
      Submit Requirements:
        • requirement satisfiedCode-Review
        • requirement satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        • requirement satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: go
        Gerrit-Branch: release-branch.go1.24
        Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
        Gerrit-Change-Number: 706575
        Gerrit-PatchSet: 1
        Gerrit-Owner: Keith Randall <k...@golang.org>
        Gerrit-Reviewer: David Chase <drc...@google.com>
        Gerrit-Reviewer: Keith Randall <k...@golang.org>
        Gerrit-Reviewer: Keith Randall <k...@google.com>
        Gerrit-Attention: Keith Randall <k...@golang.org>
        Gerrit-Comment-Date: Mon, 29 Sep 2025 16:19:39 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Carlos Amedee (Gerrit)

        unread,
        11:34 AM (11 hours ago) 11:34 AM
        to Keith Randall, goph...@pubsubhelper.golang.org, David Chase, Keith Randall, Go LUCI, golang-co...@googlegroups.com
        Attention needed from Keith Randall

        Carlos Amedee voted Commit-Queue+1

        Commit-Queue+1
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Keith Randall
        Submit Requirements:
          • requirement satisfiedCode-Review
          • requirement satisfiedNo-Unresolved-Comments
          • requirement satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: go
          Gerrit-Branch: release-branch.go1.25
          Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
          Gerrit-Change-Number: 706576
          Gerrit-PatchSet: 1
          Gerrit-Owner: Keith Randall <k...@golang.org>
          Gerrit-Reviewer: Carlos Amedee <car...@golang.org>
          Gerrit-Reviewer: David Chase <drc...@google.com>
          Gerrit-Reviewer: Keith Randall <k...@golang.org>
          Gerrit-Reviewer: Keith Randall <k...@google.com>
          Gerrit-Attention: Keith Randall <k...@golang.org>
          Gerrit-Comment-Date: Wed, 01 Oct 2025 15:34:25 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Carlos Amedee (Gerrit)

          unread,
          12:39 PM (10 hours ago) 12:39 PM
          to Keith Randall, goph...@pubsubhelper.golang.org, David Chase, Keith Randall, Go LUCI, golang-co...@googlegroups.com
          Gerrit-Comment-Date: Wed, 01 Oct 2025 16:39:08 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Carlos Amedee (Gerrit)

          unread,
          2:40 PM (8 hours ago) 2:40 PM
          to Keith Randall, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, David Chase, Keith Randall, Go LUCI, golang-co...@googlegroups.com

          Carlos Amedee submitted the change

          Change information

          Commit message:
          [release-branch.go1.24] cmd/compile: don't rely on loop info when there are irreducible loops


          Loop information is sketchy when there are irreducible loops.
          Sometimes blocks inside 2 loops can be recorded as only being part of
          the outer loop. That causes tighten to move values that want to move
          into such a block to move out of the loop altogether, breaking the
          invariant that operations have to be scheduled after their args.

          Fixes #75594


          Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
          Reviewed-on: https://go-review.googlesource.com/c/go/+/706355
          Reviewed-by: David Chase <drc...@google.com>
          LUCI-TryBot-Result: Go LUCI <golang...@luci-project-accounts.iam.gserviceaccount.com>
          Reviewed-by: Keith Randall <k...@google.com>
          (cherry picked from commit f15cd63ec4860c4f2c23cc992843546e0265c332)
          Files:
          • M src/cmd/compile/internal/ssa/tighten.go
          • A test/fixedbugs/issue75569.go
          Change size: M
          Delta: 2 files changed, 92 insertions(+), 12 deletions(-)
          Branch: refs/heads/release-branch.go1.24
          Submit Requirements:
          • requirement satisfiedCode-Review: +1 by Keith Randall, +2 by David Chase
          • requirement satisfiedTryBots-Pass: LUCI-TryBot-Result+1 by Go LUCI
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: merged
          Gerrit-Project: go
          Gerrit-Branch: release-branch.go1.24
          Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
          Gerrit-Change-Number: 706575
          Gerrit-PatchSet: 2
          open
          diffy
          satisfied_requirement

          Carlos Amedee (Gerrit)

          unread,
          2:40 PM (8 hours ago) 2:40 PM
          to Keith Randall, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, David Chase, Keith Randall, Go LUCI, golang-co...@googlegroups.com

          Carlos Amedee submitted the change

          Change information

          Commit message:
          [release-branch.go1.25] cmd/compile: don't rely on loop info when there are irreducible loops


          Loop information is sketchy when there are irreducible loops.
          Sometimes blocks inside 2 loops can be recorded as only being part of
          the outer loop. That causes tighten to move values that want to move
          into such a block to move out of the loop altogether, breaking the
          invariant that operations have to be scheduled after their args.

          Fixes #75595


          Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
          Reviewed-on: https://go-review.googlesource.com/c/go/+/706355
          Reviewed-by: David Chase <drc...@google.com>
          LUCI-TryBot-Result: Go LUCI <golang...@luci-project-accounts.iam.gserviceaccount.com>
          Reviewed-by: Keith Randall <k...@google.com>
          (cherry picked from commit f15cd63ec4860c4f2c23cc992843546e0265c332)
          Files:
          • M src/cmd/compile/internal/ssa/tighten.go
          • A test/fixedbugs/issue75569.go
          Change size: M
          Delta: 2 files changed, 92 insertions(+), 12 deletions(-)
          Branch: refs/heads/release-branch.go1.25
          Submit Requirements:
          • requirement satisfiedCode-Review: +1 by Keith Randall, +2 by David Chase
          • requirement satisfiedTryBots-Pass: LUCI-TryBot-Result+1 by Go LUCI
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: merged
          Gerrit-Project: go
          Gerrit-Branch: release-branch.go1.25
          Gerrit-Change-Id: Idd80e6d2268094b8ae6387563081fdc1e211856a
          Gerrit-Change-Number: 706576
          open
          diffy
          satisfied_requirement
          Reply all
          Reply to author
          Forward
          0 new messages