diff options
author | Matthew Dempsky <mdempsky@google.com> | 2017-03-01 15:50:57 -0800 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2017-03-07 20:14:17 +0000 |
commit | c310c688ffa46e2f91e40284c16d71f3921feed9 (patch) | |
tree | 4eaf626a618d12018a5ae11be7a17e0634baef47 /src/runtime/stubs.go | |
parent | 5ed952368e3777845afd934e38219c5567b09cc4 (diff) | |
download | go-c310c688ffa46e2f91e40284c16d71f3921feed9.tar.gz go-c310c688ffa46e2f91e40284c16d71f3921feed9.zip |
cmd/compile, runtime: simplify multiway select implementation
This commit reworks multiway select statements to use normal control
flow primitives instead of the previous setjmp/longjmp-like behavior.
This simplifies liveness analysis and should prevent issues around
"returns twice" function calls within SSA passes.
test/live.go is updated because liveness analysis's CFG is more
representative of actual control flow. The case bodies are the only
real successors of the selectgo call, but previously the selectsend,
selectrecv, etc. calls were included in the successors list too.
Updates #19331.
Change-Id: I7f879b103a4b85e62fc36a270d812f54c0aa3e83
Reviewed-on: https://go-review.googlesource.com/37661
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime/stubs.go')
-rw-r--r-- | src/runtime/stubs.go | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/src/runtime/stubs.go b/src/runtime/stubs.go index 5479a309b1..f2139c2a02 100644 --- a/src/runtime/stubs.go +++ b/src/runtime/stubs.go @@ -192,9 +192,6 @@ func cgocallback_gofunc(fv uintptr, frame uintptr, framesize, ctxt uintptr) // data dependency ordering. func publicationBarrier() -//go:noescape -func setcallerpc(argp unsafe.Pointer, pc uintptr) - // getcallerpc returns the program counter (PC) of its caller's caller. // getcallersp returns the stack pointer (SP) of its caller's caller. // For both, the argp must be a pointer to the caller's first function argument. |