mirror of
https://github.com/golang/go
synced 2024-09-19 07:52:34 +00:00
cmd/6g, cmd/8g, cmd/5g: make the undefined instruction have no successors
The UNDEF instruction was listed in the instruction data as having the next instruction in the stream as its successor. This confused the optimizer into adding a load where it wasn't needed, in turn confusing the liveness analysis pass for GC bitmaps into thinking that the variable was live. Fixes #7229. LGTM=iant, rsc R=golang-codereviews, bradfitz, iant, dave, rsc CC=golang-codereviews https://golang.org/cl/56910045
This commit is contained in:
parent
517f4a9683
commit
85e4cb2f10
|
@ -26,7 +26,7 @@ static ProgInfo progtable[ALAST] = {
|
|||
[ATEXT]= {Pseudo},
|
||||
[AFUNCDATA]= {Pseudo},
|
||||
[APCDATA]= {Pseudo},
|
||||
[AUNDEF]= {OK},
|
||||
[AUNDEF]= {Break},
|
||||
[AUSEFIELD]= {OK},
|
||||
[ACHECKNIL]= {LeftRead},
|
||||
[AFATVARDEF]= {Pseudo | RightWrite},
|
||||
|
|
|
@ -38,7 +38,7 @@ static ProgInfo progtable[ALAST] = {
|
|||
[ATEXT]= {Pseudo},
|
||||
[AFUNCDATA]= {Pseudo},
|
||||
[APCDATA]= {Pseudo},
|
||||
[AUNDEF]= {OK},
|
||||
[AUNDEF]= {Break},
|
||||
[AUSEFIELD]= {OK},
|
||||
[ACHECKNIL]= {LeftRead},
|
||||
[AFATVARDEF]= {Pseudo | RightWrite},
|
||||
|
|
|
@ -38,7 +38,7 @@ static ProgInfo progtable[ALAST] = {
|
|||
[ATEXT]= {Pseudo},
|
||||
[AFUNCDATA]= {Pseudo},
|
||||
[APCDATA]= {Pseudo},
|
||||
[AUNDEF]= {OK},
|
||||
[AUNDEF]= {Break},
|
||||
[AUSEFIELD]= {OK},
|
||||
[ACHECKNIL]= {LeftRead},
|
||||
[AFATVARDEF]= {Pseudo | RightWrite},
|
||||
|
|
Loading…
Reference in a new issue