summaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/walk/assign.go
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2022-08-04 10:32:51 -0700
committerMatthew Dempsky <mdempsky@google.com>2022-08-04 10:32:51 -0700
commita10afb15e060386615dcc0ecf2bd60ca3abbc04c (patch)
treea89e2d4e921b2b966aee9d86cbdd3d5ff9df01c7 /src/cmd/compile/internal/walk/assign.go
parent85d87b9c7507628144db51bd1e7e80cc3afed128 (diff)
parentd558507db42d600e5ad82748bda0cb91df57b97d (diff)
downloadgo-git-a10afb15e060386615dcc0ecf2bd60ca3abbc04c.tar.gz
all: REVERSE MERGE dev.unified (d558507) into master
This commit is a REVERSE MERGE. It merges dev.unified back into its parent branch, master. This marks the end of development on dev.unified. Merge List: + 2022-08-04 d558507db4 [dev.unified] all: merge master (85d87b9) into dev.unified + 2022-08-03 c9f2150cfb [dev.unified] cmd/compile: start using runtime dictionaries + 2022-07-30 994ff78ba0 [dev.unified] go/internal: set underlying types in proper order + 2022-07-28 23554d4744 [dev.unified] all: merge master (462b78f) into dev.unified + 2022-07-28 c8d5ccf82e [dev.unified] go/internal/gcimporter: flatten imports + 2022-07-28 ac0844ec27 [dev.unified] cmd/compile: move "has init" to private metadata + 2022-07-28 f995946094 [dev.unified] cmd/compile: implement simple inline body pruning heuristic + 2022-07-28 f2851c67fd [dev.unified] cmd/compile: allow inlining to fail gracefully + 2022-07-28 831fdf1dff [dev.unified] cmd/compile: extract nil handling from exprType + 2022-07-28 92798176e7 [dev.unified] cmd/compile: write iface conversion RTTI into unified IR + 2022-07-28 9b70178d58 [dev.unified] cmd/compile: write RTTI into unified IR export data + 2022-07-25 fc72b7705d [dev.unified] cmd/compile: add method expressions to dictionaries + 2022-07-25 f48fa643f1 [dev.unified] cmd/compile: remove obsolete RTTI wiring + 2022-07-22 131f981df0 [dev.unified] cmd/compile: make Unified IR always writes concrete type for const exprs + 2022-07-20 ae43bdc3e3 Merge "[dev.unified] all: merge master (8e1e64c) into dev.unified" into dev.unified + 2022-07-19 7a8ba83b72 [dev.unified] cmd/compile/internal/reflectdata: remove hasRType's `required` param + 2022-07-19 64cd6faa13 [dev.unified] cmd/compile/internal/noder: simplify mixed tag/case RTTI wiring + 2022-07-19 a4c5198a3c [dev.unified] cmd/compile/internal/noder: better switch statements + 2022-07-19 318027044a [dev.unified] cmd/compile/internal/noder: explicit nil handling + 2022-07-19 e971b6a9be [dev.unified] test: add switch test case for tricky nil handling + 2022-07-19 878439cfe5 [dev.unified] cmd/compile/internal/noder: preserve RTTI for select statements + 2022-07-19 e376746e54 [dev.unified] cmd/compile/internal/noder: wire RTTI for implicit conversions + 2022-07-19 c846fd8e13 [dev.unified] cmd/compile/internal/noder: implicit conversions for binary exprs + 2022-07-19 ebd34e3e45 [dev.unified] test: relax panic message expectations + 2022-07-19 76a82f09d6 [dev.unified] cmd/compile/internal/noder: prefer *At functions + 2022-07-19 de649a2a98 [dev.unified] all: merge master (8e1e64c) into dev.unified + 2022-07-19 055a5e55fa [dev.unified] test: change Unicode file/package name to use characters not translated by macOS. + 2022-07-18 2cf632cd57 [dev.unified] cmd/compile/internal/reflectdata: prefer ITabAddrAt in ConvIfaceTypeWord + 2022-07-12 9371a65584 internal/pkgbits: change EnableSync into a dynamic knob + 2022-07-01 d667be8831 [dev.unified] cmd/compile/internal/walk: RType fields for range assignments + 2022-06-30 1b838e9556 [dev.unified] all: merge master (993c387) into dev.unified + 2022-06-30 0a503cf43a [dev.unified] cmd/compile: refactor `range` desugaring + 2022-06-30 3635b07d16 [dev.unified] cmd/compile/internal/noder: implicit conversions for multi-valued expressions + 2022-06-30 e7219cc093 [dev.unified] cmd/compile/internal/noder: refactor N:1 expression handling + 2022-06-30 2f3ef73e18 [dev.unified] test: tweak nilcheck test + 2022-06-30 95d7ce9ab1 [dev.unified] test: break escape_iface.go into unified/nounified variants + 2022-06-30 f751319a0b [dev.unified] test: relax live_regabi.go + 2022-06-30 e3cdc981c8 [dev.unified] cmd/compile/internal/walk: fix typo in debug print + 2022-06-29 2280d897d6 [dev.unified] test: add regress test for generic select statements + 2022-06-27 4b78ece3d7 [dev.unified] cmd/compile: drop package height from Unified IR importer + 2022-06-27 398d46d538 [dev.unified] cmd/compile/internal/types2: remove package height + 2022-06-24 e7100adbca [dev.unified] all: merge master (5a1c5b8) into dev.unified + 2022-06-23 09a838ad86 [dev.unified] cmd/compile: rename haveRType and implicitExpr + 2022-06-23 421e9e9db2 [dev.unified] cmd/compile: implicit conversions for return statements + 2022-06-23 a3fea7796a [dev.unified] cmd/compile/internal/noder: implicit conversions for writer.assignStmt + 2022-06-23 82a958a661 [dev.unified] cmd/compile/internal/noder: refactor stmtAssign generation + 2022-06-23 711dacd8cf [dev.unified] cmd/compile/internal/noder: implicit conversion of call arguments + 2022-06-23 46b01ec667 [dev.unified] cmd/compile/internal/noder: remove needType logic + 2022-06-23 a3e474f867 [dev.unified] cmd/compile/internal/noder: implicit conversions for complits + 2022-06-23 5f5422a2dd [dev.unified] cmd/compile/internal/noder: start writing implicit conversions + 2022-06-23 9cb784ac69 [dev.unified] cmd/compile/internal/noder: add pkgWriter.typeOf helper + 2022-06-23 c70e93ff3d [dev.unified] cmd/compile/internal/typecheck: replace unreachable code with assert + 2022-06-23 20e1d5ac8c [dev.unified] cmd/compile: special case f(g()) calls in Unified IR + 2022-06-23 61ae2b734c [dev.unified] cmd/compile: plumb rtype through OSWITCH/OCASE clauses + 2022-06-23 3d432b6c4b [dev.unified] cmd/compile: plumb rtype through for OMAPLIT + 2022-06-23 7368647ac6 [dev.unified] cmd/compile: start setting RType fields for Unified IR + 2022-06-23 5960f4ec10 [dev.unified] cmd/compile: add RType fields + 2022-06-21 5e0258c700 [dev.unified] cmd/compile: avoid reflectType in ssagen + 2022-06-21 93833cd5d8 [dev.unified] cmd/compile: extract rtype code from walk + 2022-06-21 f70775ff22 [dev.unified] cmd/compile: refactor reflectdata.{TypePtr,ITabAddr} + 2022-06-21 fc5dad6646 [dev.unified] cmd/compile/internal/walk: minor prep refactoring + 2022-06-16 1f4e8afafe [dev.unified] all: merge master (635b124) into dev.unified + 2022-06-15 8a9485c023 [dev.unified] test: extract different inline test between unified and non-unified + 2022-06-14 394ea70cc9 [dev.unified] cmd/compile: more Unified IR docs and review + 2022-06-10 f73ad3d24d [dev.unified] test: add regress tests for #53276 and #53328 + 2022-06-09 8ef8b60e18 [dev.unified] cmd/compile/internal/noder: stop handling type expressions as expressions + 2022-06-09 1a6c96bb9b [dev.unified] test: relax issue7921.go diagnostic message + 2022-06-09 c50c6bbc03 [dev.unified] cmd/compile: set base.Pos when process assignDef in Unified IR + 2022-06-09 d6df08693c [dev.unified] cmd/compile: fix unified IR don't report type size too large error + 2022-06-08 e7ef58542c [dev.unified] cmd/compile: restore Unified IR linkname pragma diagnostic + 2022-06-07 9e5c968021 [dev.unified] cmd/compile: visit LHS before RHS/X in assign/for statement + 2022-06-06 46ddf0873e [dev.unified] cmd/compile: export/import implicit attribute for conversion exprs + 2022-06-06 a8780f94c3 [dev.unified] cmd/compile: fix missing method value wrapper in unified IR + 2022-06-06 3a1f1e1575 [dev.unified] cmd/compile: remove package height + 2022-06-06 df7cb59de4 [dev.unified] cmd/compile: only sort symbols by name and package path + 2022-06-06 b39ac80871 [dev.unified] cmd/compile/internal/noder: push exprBlank up into assignment handling + 2022-06-06 55fc07e164 [dev.unified] cmd/compile/internal/noder: add optExpr for optional expressions + 2022-06-06 6c33f1d52e [dev.unified] cmd/compile/internal/noder: rename exprName to exprGlobal + 2022-06-06 4d28fcabb4 [dev.unified] all: update codereview.cfg for dev.unified branch Change-Id: I604d057735e8a365621c91c206f9e46eabb4679b
Diffstat (limited to 'src/cmd/compile/internal/walk/assign.go')
-rw-r--r--src/cmd/compile/internal/walk/assign.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/cmd/compile/internal/walk/assign.go b/src/cmd/compile/internal/walk/assign.go
index c44d934f21..1d922d983e 100644
--- a/src/cmd/compile/internal/walk/assign.go
+++ b/src/cmd/compile/internal/walk/assign.go
@@ -99,10 +99,11 @@ func walkAssign(init *ir.Nodes, n ir.Node) ir.Node {
}
as.Y = r
if r.Op() == ir.OAPPEND {
+ r := r.(*ir.CallExpr)
// Left in place for back end.
// Do not add a new write barrier.
// Set up address of type for back end.
- r.(*ir.CallExpr).X = reflectdata.TypePtr(r.Type().Elem())
+ r.X = reflectdata.AppendElemRType(base.Pos, r)
return as
}
// Otherwise, lowered for race detector.
@@ -169,11 +170,11 @@ func walkAssignMapRead(init *ir.Nodes, n *ir.AssignListStmt) ir.Node {
var call *ir.CallExpr
if w := t.Elem().Size(); w <= zeroValSize {
fn := mapfn(mapaccess2[fast], t, false)
- call = mkcall1(fn, fn.Type().Results(), init, reflectdata.TypePtr(t), r.X, key)
+ call = mkcall1(fn, fn.Type().Results(), init, reflectdata.IndexMapRType(base.Pos, r), r.X, key)
} else {
fn := mapfn("mapaccess2_fat", t, true)
z := reflectdata.ZeroAddr(w)
- call = mkcall1(fn, fn.Type().Results(), init, reflectdata.TypePtr(t), r.X, key, z)
+ call = mkcall1(fn, fn.Type().Results(), init, reflectdata.IndexMapRType(base.Pos, r), r.X, key, z)
}
// mapaccess2* returns a typed bool, but due to spec changes,
@@ -502,7 +503,7 @@ func appendSlice(n *ir.CallExpr, init *ir.Nodes) ir.Node {
fn = typecheck.SubstArgTypes(fn, elemtype, elemtype)
// s = growslice(T, s, n)
- nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.TypePtr(elemtype), s, nn))}
+ nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.AppendElemRType(base.Pos, n), s, nn))}
nodes.Append(nif)
// s = s[:n]
@@ -523,7 +524,7 @@ func appendSlice(n *ir.CallExpr, init *ir.Nodes) ir.Node {
fn = typecheck.SubstArgTypes(fn, l1.Type().Elem(), l2.Type().Elem())
ptr1, len1 := backingArrayPtrLen(cheapExpr(slice, &nodes))
ptr2, len2 := backingArrayPtrLen(l2)
- ncopy = mkcall1(fn, types.Types[types.TINT], &nodes, reflectdata.TypePtr(elemtype), ptr1, len1, ptr2, len2)
+ ncopy = mkcall1(fn, types.Types[types.TINT], &nodes, reflectdata.AppendElemRType(base.Pos, n), ptr1, len1, ptr2, len2)
} else if base.Flag.Cfg.Instrumenting && !base.Flag.CompilingRuntime {
// rely on runtime to instrument:
// copy(s[len(l1):], l2)
@@ -670,7 +671,7 @@ func extendSlice(n *ir.CallExpr, init *ir.Nodes) ir.Node {
fn = typecheck.SubstArgTypes(fn, elemtype, elemtype)
// s = growslice(T, s, n)
- nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.TypePtr(elemtype), s, nn))}
+ nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.AppendElemRType(base.Pos, n), s, nn))}
nodes = append(nodes, nif)
// s = s[:n]