Commit ee8e6878 authored by Keith Randall's avatar Keith Randall

undo CL 93380044 / 7f0999348917

Partial undo, just of go:nosplit annotation.  Somehow it
is breaking the windows builders.

TBR=bradfitz

««« original CL description
runtime: implement string ops in Go

Also implement go:nosplit annotation.  Not really needed
for now, but we'll definitely need it for other conversions.

benchmark                 old ns/op     new ns/op     delta
BenchmarkRuneIterate      534           474           -11.24%
BenchmarkRuneIterate2     535           470           -12.15%

LGTM=bradfitz
R=golang-codereviews, dave, bradfitz, minux
CC=golang-codereviews
https://golang.org/cl/93380044
»»»

TBR=bradfitz
CC=golang-codereviews
https://golang.org/cl/105260044
parent e9da5fe2
...@@ -649,7 +649,7 @@ typefmt(Fmt *fp, Type *t) ...@@ -649,7 +649,7 @@ typefmt(Fmt *fp, Type *t)
if(t->funarg) { if(t->funarg) {
fmtstrcpy(fp, "("); fmtstrcpy(fp, "(");
if(fmtmode == FTypeId || fmtmode == FErr) { // no argument names on function signature, and no "noescape"/"nosplit" tags if(fmtmode == FTypeId || fmtmode == FErr) { // no argument names on function signature, and no "noescape" tags
for(t1=t->type; t1!=T; t1=t1->down) for(t1=t->type; t1!=T; t1=t1->down)
if(t1->down) if(t1->down)
fmtprint(fp, "%hT, ", t1); fmtprint(fp, "%hT, ", t1);
......
...@@ -269,7 +269,6 @@ struct Node ...@@ -269,7 +269,6 @@ struct Node
uchar colas; // OAS resulting from := uchar colas; // OAS resulting from :=
uchar diag; // already printed error about this uchar diag; // already printed error about this
uchar noescape; // func arguments do not escape uchar noescape; // func arguments do not escape
uchar nosplit; // func should not execute on separate stack
uchar builtin; // built-in name, like len or close uchar builtin; // built-in name, like len or close
uchar walkdef; uchar walkdef;
uchar typecheck; uchar typecheck;
...@@ -981,7 +980,6 @@ EXTERN char* flag_installsuffix; ...@@ -981,7 +980,6 @@ EXTERN char* flag_installsuffix;
EXTERN int flag_race; EXTERN int flag_race;
EXTERN int flag_largemodel; EXTERN int flag_largemodel;
EXTERN int noescape; EXTERN int noescape;
EXTERN int nosplit;
EXTERN int debuglive; EXTERN int debuglive;
EXTERN Link* ctxt; EXTERN Link* ctxt;
......
...@@ -1311,7 +1311,6 @@ xfndcl: ...@@ -1311,7 +1311,6 @@ xfndcl:
$$->nbody = $3; $$->nbody = $3;
$$->endlineno = lineno; $$->endlineno = lineno;
$$->noescape = noescape; $$->noescape = noescape;
$$->nosplit = nosplit;
funcbody($$); funcbody($$);
} }
...@@ -1496,7 +1495,6 @@ xdcl_list: ...@@ -1496,7 +1495,6 @@ xdcl_list:
testdclstack(); testdclstack();
nointerface = 0; nointerface = 0;
noescape = 0; noescape = 0;
nosplit = 0;
} }
vardcl_list: vardcl_list:
......
...@@ -1592,10 +1592,6 @@ go: ...@@ -1592,10 +1592,6 @@ go:
noescape = 1; noescape = 1;
goto out; goto out;
} }
if(strcmp(lexbuf, "go:nosplit") == 0) {
nosplit = 1;
goto out;
}
out: out:
return c; return c;
......
...@@ -229,8 +229,6 @@ compile(Node *fn) ...@@ -229,8 +229,6 @@ compile(Node *fn)
ptxt->TEXTFLAG |= WRAPPER; ptxt->TEXTFLAG |= WRAPPER;
if(fn->needctxt) if(fn->needctxt)
ptxt->TEXTFLAG |= NEEDCTXT; ptxt->TEXTFLAG |= NEEDCTXT;
if(fn->nosplit)
ptxt->TEXTFLAG |= NOSPLIT;
// Clumsy but important. // Clumsy but important.
// See test/recover.go for test cases and src/pkg/reflect/value.go // See test/recover.go for test cases and src/pkg/reflect/value.go
......
...@@ -3828,7 +3828,6 @@ yyreduce: ...@@ -3828,7 +3828,6 @@ yyreduce:
(yyval.node)->nbody = (yyvsp[(3) - (3)].list); (yyval.node)->nbody = (yyvsp[(3) - (3)].list);
(yyval.node)->endlineno = lineno; (yyval.node)->endlineno = lineno;
(yyval.node)->noescape = noescape; (yyval.node)->noescape = noescape;
(yyval.node)->nosplit = nosplit;
funcbody((yyval.node)); funcbody((yyval.node));
} }
break; break;
...@@ -4038,7 +4037,6 @@ yyreduce: ...@@ -4038,7 +4037,6 @@ yyreduce:
testdclstack(); testdclstack();
nointerface = 0; nointerface = 0;
noescape = 0; noescape = 0;
nosplit = 0;
} }
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment