aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoralan <shore.cloud@gmail.com>2019-10-10 18:56:27 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2019-10-10 19:24:35 +0000
commit26ff21d44da04bc3fdec33caf292a836ac4e692a (patch)
tree8b819106d681b7d0c366b9b1ebea1f9797b1fc5d /src
parent68395a66f9fece387701e1450e3d7a8fa91fb76e (diff)
downloadgo-26ff21d44da04bc3fdec33caf292a836ac4e692a.tar.xz
runtime: remove no-op pointer writes in treap rotations
Change-Id: If5a272f331fe9da09467efedd0231a4ce34db0f8 GitHub-Last-Rev: 4b81a79a92db4b51001ce6660b24c760fd3b630b GitHub-Pull-Request: golang/go#28420 Reviewed-on: https://go-review.googlesource.com/c/go/+/144999 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/runtime/sema.go24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/runtime/sema.go b/src/runtime/sema.go
index 30c8959473..530af5baa6 100644
--- a/src/runtime/sema.go
+++ b/src/runtime/sema.go
@@ -373,19 +373,11 @@ Found:
func (root *semaRoot) rotateLeft(x *sudog) {
// p -> (x a (y b c))
p := x.parent
- a, y := x.prev, x.next
- b, c := y.prev, y.next
+ y := x.next
+ b := y.prev
y.prev = x
x.parent = y
- y.next = c
- if c != nil {
- c.parent = y
- }
- x.prev = a
- if a != nil {
- a.parent = x
- }
x.next = b
if b != nil {
b.parent = x
@@ -409,23 +401,15 @@ func (root *semaRoot) rotateLeft(x *sudog) {
func (root *semaRoot) rotateRight(y *sudog) {
// p -> (y (x a b) c)
p := y.parent
- x, c := y.prev, y.next
- a, b := x.prev, x.next
+ x := y.prev
+ b := x.next
- x.prev = a
- if a != nil {
- a.parent = x
- }
x.next = y
y.parent = x
y.prev = b
if b != nil {
b.parent = y
}
- y.next = c
- if c != nil {
- c.parent = y
- }
x.parent = p
if p == nil {