From c45c36333767627627f480813eea2e9c13de9692 Mon Sep 17 00:00:00 2001 From: Jakub Čajka Date: Aug 06 2018 10:28:08 +0000 Subject: Rebase to go 1.11beta3 --- diff --git a/.gitignore b/.gitignore index 6efcfaf..dbc5a35 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ /go1.10.3.src.tar.gz /go1.11beta1.src.tar.gz /go1.11beta2.src.tar.gz +/go1.11beta3.src.tar.gz diff --git a/0001-cmd-compile-set-stricter-inlining-threshold-in-large.patch b/0001-cmd-compile-set-stricter-inlining-threshold-in-large.patch deleted file mode 100644 index aaf9eb6..0000000 --- a/0001-cmd-compile-set-stricter-inlining-threshold-in-large.patch +++ /dev/null @@ -1,1310 +0,0 @@ -From 5fc70b6fac0664f3f9d2c2948ba78db420ba70c5 Mon Sep 17 00:00:00 2001 -From: Keith Randall -Date: Mon, 23 Jul 2018 13:09:48 -0700 -Subject: [PATCH] cmd/compile: set stricter inlining threshold in large - functions - -If we're compiling a large function, be more picky about how big -the function we're inlining is. If the function is >5000 nodes, -we lower the inlining threshold from a cost of 80 to 20. - -Turns out reflect.Value's cost is exactly 80. That's the function -at issue in #26546. - -20 was chosen as a proxy for "inlined body is smaller than the call would be". -Simple functions still get inlined, like this one at cost 7: - -func ifaceIndir(t *rtype) bool { - return t.kind&kindDirectIface == 0 -} - -5000 nodes was chosen as the big function size. Here are all the -5000+ node (~~1000+ lines) functions in the stdlib: - -5187 cmd/internal/obj/arm (*ctxt5).asmout -6879 cmd/internal/obj/s390x (*ctxtz).asmout -6567 cmd/internal/obj/ppc64 (*ctxt9).asmout -9643 cmd/internal/obj/arm64 (*ctxt7).asmout -5042 cmd/internal/obj/x86 (*AsmBuf).doasm -8768 cmd/compile/internal/ssa rewriteBlockAMD64 -8878 cmd/compile/internal/ssa rewriteBlockARM -8344 cmd/compile/internal/ssa rewriteValueARM64_OpARM64OR_20 -7916 cmd/compile/internal/ssa rewriteValueARM64_OpARM64OR_30 -5427 cmd/compile/internal/ssa rewriteBlockARM64 -5126 cmd/compile/internal/ssa rewriteValuePPC64_OpPPC64OR_50 -6152 cmd/compile/internal/ssa rewriteValuePPC64_OpPPC64OR_60 -6412 cmd/compile/internal/ssa rewriteValuePPC64_OpPPC64OR_70 -6486 cmd/compile/internal/ssa rewriteValuePPC64_OpPPC64OR_80 -6534 cmd/compile/internal/ssa rewriteValuePPC64_OpPPC64OR_90 -6534 cmd/compile/internal/ssa rewriteValuePPC64_OpPPC64OR_100 -6534 cmd/compile/internal/ssa rewriteValuePPC64_OpPPC64OR_110 -6675 cmd/compile/internal/gc typecheck1 -5433 cmd/compile/internal/gc walkexpr -14070 cmd/vendor/golang.org/x/arch/arm64/arm64asm decodeArg - -There are a lot more smaller (~1000 node) functions in the stdlib. -The function in #26546 has 12477 nodes. - -At some point it might be nice to have a better heuristic for "inlined -body is smaller than the call", a non-cliff way to scale down the cost -as the function gets bigger, doing cheaper inlined calls first, etc. -All that can wait for another release. I'd like to do this CL for -1.11. - -Fixes #26546 -Update #17566 - -Change-Id: Idda13020e46ec2b28d79a17217f44b189f8139ac -Reviewed-on: https://go-review.googlesource.com/125516 -Run-TryBot: Keith Randall -TryBot-Result: Gobot Gobot -Reviewed-by: David Chase ---- - src/cmd/compile/internal/gc/inl.go | 72 ++- - test/inline_big.go | 1029 ++++++++++++++++++++++++++++++++++++ - 2 files changed, 1082 insertions(+), 19 deletions(-) - create mode 100644 test/inline_big.go - -diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go -index cb3ddaf2a5..feb3c8556a 100644 ---- a/src/cmd/compile/internal/gc/inl.go -+++ b/src/cmd/compile/internal/gc/inl.go -@@ -41,6 +41,9 @@ const ( - inlineExtraCallCost = inlineMaxBudget // default is do not inline, -l=4 enables by using 1 instead. - inlineExtraPanicCost = 1 // do not penalize inlining panics. - inlineExtraThrowCost = inlineMaxBudget // with current (2018-05/1.11) code, inlining runtime.throw does not help. -+ -+ inlineBigFunctionNodes = 5000 // Functions with this many nodes are considered "big". -+ inlineBigFunctionMaxCost = 20 // Max cost of inlinee when inlining into a "big" function. - ) - - // Get the function's package. For ordinary functions it's on the ->sym, but for imported methods -@@ -459,12 +462,38 @@ func inlcopy(n *Node) *Node { - return m - } - -+func countNodes(n *Node) int { -+ if n == nil { -+ return 0 -+ } -+ cnt := 1 -+ cnt += countNodes(n.Left) -+ cnt += countNodes(n.Right) -+ for _, n1 := range n.Ninit.Slice() { -+ cnt += countNodes(n1) -+ } -+ for _, n1 := range n.Nbody.Slice() { -+ cnt += countNodes(n1) -+ } -+ for _, n1 := range n.List.Slice() { -+ cnt += countNodes(n1) -+ } -+ for _, n1 := range n.Rlist.Slice() { -+ cnt += countNodes(n1) -+ } -+ return cnt -+} -+ - // Inlcalls/nodelist/node walks fn's statements and expressions and substitutes any - // calls made to inlineable functions. This is the external entry point. - func inlcalls(fn *Node) { - savefn := Curfn - Curfn = fn -- fn = inlnode(fn) -+ maxCost := int32(inlineMaxBudget) -+ if countNodes(fn) >= inlineBigFunctionNodes { -+ maxCost = inlineBigFunctionMaxCost -+ } -+ fn = inlnode(fn, maxCost) - if fn != Curfn { - Fatalf("inlnode replaced curfn") - } -@@ -505,10 +534,10 @@ func inlconv2list(n *Node) []*Node { - return s - } - --func inlnodelist(l Nodes) { -+func inlnodelist(l Nodes, maxCost int32) { - s := l.Slice() - for i := range s { -- s[i] = inlnode(s[i]) -+ s[i] = inlnode(s[i], maxCost) - } - } - -@@ -525,7 +554,7 @@ func inlnodelist(l Nodes) { - // shorter and less complicated. - // The result of inlnode MUST be assigned back to n, e.g. - // n.Left = inlnode(n.Left) --func inlnode(n *Node) *Node { -+func inlnode(n *Node, maxCost int32) *Node { - if n == nil { - return n - } -@@ -547,19 +576,19 @@ func inlnode(n *Node) *Node { - - lno := setlineno(n) - -- inlnodelist(n.Ninit) -+ inlnodelist(n.Ninit, maxCost) - for _, n1 := range n.Ninit.Slice() { - if n1.Op == OINLCALL { - inlconv2stmt(n1) - } - } - -- n.Left = inlnode(n.Left) -+ n.Left = inlnode(n.Left, maxCost) - if n.Left != nil && n.Left.Op == OINLCALL { - n.Left = inlconv2expr(n.Left) - } - -- n.Right = inlnode(n.Right) -+ n.Right = inlnode(n.Right, maxCost) - if n.Right != nil && n.Right.Op == OINLCALL { - if n.Op == OFOR || n.Op == OFORUNTIL { - inlconv2stmt(n.Right) -@@ -568,7 +597,7 @@ func inlnode(n *Node) *Node { - } - } - -- inlnodelist(n.List) -+ inlnodelist(n.List, maxCost) - switch n.Op { - case OBLOCK: - for _, n2 := range n.List.Slice() { -@@ -595,7 +624,7 @@ func inlnode(n *Node) *Node { - } - } - -- inlnodelist(n.Rlist) -+ inlnodelist(n.Rlist, maxCost) - if n.Op == OAS2FUNC && n.Rlist.First().Op == OINLCALL { - n.Rlist.Set(inlconv2list(n.Rlist.First())) - n.Op = OAS2 -@@ -614,7 +643,7 @@ func inlnode(n *Node) *Node { - } - } - -- inlnodelist(n.Nbody) -+ inlnodelist(n.Nbody, maxCost) - for _, n := range n.Nbody.Slice() { - if n.Op == OINLCALL { - inlconv2stmt(n) -@@ -637,12 +666,12 @@ func inlnode(n *Node) *Node { - fmt.Printf("%v:call to func %+v\n", n.Line(), n.Left) - } - if n.Left.Func != nil && n.Left.Func.Inl != nil && !isIntrinsicCall(n) { // normal case -- n = mkinlcall(n, n.Left) -+ n = mkinlcall(n, n.Left, maxCost) - } else if n.Left.isMethodExpression() && asNode(n.Left.Sym.Def) != nil { -- n = mkinlcall(n, asNode(n.Left.Sym.Def)) -+ n = mkinlcall(n, asNode(n.Left.Sym.Def), maxCost) - } else if n.Left.Op == OCLOSURE { - if f := inlinableClosure(n.Left); f != nil { -- n = mkinlcall(n, f) -+ n = mkinlcall(n, f, maxCost) - } - } else if n.Left.Op == ONAME && n.Left.Name != nil && n.Left.Name.Defn != nil { - if d := n.Left.Name.Defn; d.Op == OAS && d.Right.Op == OCLOSURE { -@@ -668,7 +697,7 @@ func inlnode(n *Node) *Node { - } - break - } -- n = mkinlcall(n, f) -+ n = mkinlcall(n, f, maxCost) - } - } - } -@@ -687,7 +716,7 @@ func inlnode(n *Node) *Node { - Fatalf("no function definition for [%p] %+v\n", n.Left.Type, n.Left.Type) - } - -- n = mkinlcall(n, asNode(n.Left.Type.FuncType().Nname)) -+ n = mkinlcall(n, asNode(n.Left.Type.FuncType().Nname), maxCost) - } - - lineno = lno -@@ -788,7 +817,7 @@ func (v *reassignVisitor) visitList(l Nodes) *Node { - - // The result of mkinlcall MUST be assigned back to n, e.g. - // n.Left = mkinlcall(n.Left, fn, isddd) --func mkinlcall(n *Node, fn *Node) *Node { -+func mkinlcall(n *Node, fn *Node, maxCost int32) *Node { - save_safemode := safemode - - // imported functions may refer to unsafe as long as the -@@ -798,7 +827,7 @@ func mkinlcall(n *Node, fn *Node) *Node { - if pkg != localpkg && pkg != nil { - safemode = false - } -- n = mkinlcall1(n, fn) -+ n = mkinlcall1(n, fn, maxCost) - safemode = save_safemode - return n - } -@@ -824,11 +853,16 @@ var inlgen int - // parameters. - // The result of mkinlcall1 MUST be assigned back to n, e.g. - // n.Left = mkinlcall1(n.Left, fn, isddd) --func mkinlcall1(n, fn *Node) *Node { -+func mkinlcall1(n, fn *Node, maxCost int32) *Node { - if fn.Func.Inl == nil { - // No inlinable body. - return n - } -+ if fn.Func.Inl.Cost > maxCost { -+ // The inlined function body is too big. Typically we use this check to restrict -+ // inlining into very big functions. See issue 26546 and 17566. -+ return n -+ } - - if fn == Curfn || fn.Name.Defn == Curfn { - // Can't recursively inline a function into itself. -@@ -1094,7 +1128,7 @@ func mkinlcall1(n, fn *Node) *Node { - // instead we emit the things that the body needs - // and each use must redo the inlining. - // luckily these are small. -- inlnodelist(call.Nbody) -+ inlnodelist(call.Nbody, maxCost) - for _, n := range call.Nbody.Slice() { - if n.Op == OINLCALL { - inlconv2stmt(n) -diff --git a/test/inline_big.go b/test/inline_big.go -new file mode 100644 -index 0000000000..c4af15b4e1 ---- /dev/null -+++ b/test/inline_big.go -@@ -0,0 +1,1029 @@ -+// errorcheck -0 -m=2 -+ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Test that we restrict inlining into very large functions. -+// See issue #26546. -+ -+package foo -+ -+func small(a []int) int { // ERROR "can inline small as:.*" "small a does not escape" -+ // Cost 16 body (need cost < 20). -+ // See cmd/compile/internal/gc/inl.go:inlineBigFunction* -+ return a[0] + a[1] + a[2] + a[3] -+} -+func medium(a []int) int { // ERROR "can inline medium as:.*" "medium a does not escape" -+ // Cost 32 body (need cost > 20 and cost < 80). -+ // See cmd/compile/internal/gc/inl.go:inlineBigFunction* -+ return a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7] -+} -+ -+func f(a []int) int { // ERROR "cannot inline f:.*" "f a does not escape" -+ // Add lots of nodes to f's body. We need >5000. -+ // See cmd/compile/internal/gc/inl.go:inlineBigFunction* -+ a[0] = 0 -+ a[1] = 0 -+ a[2] = 0 -+ a[3] = 0 -+ a[4] = 0 -+ a[5] = 0 -+ a[6] = 0 -+ a[7] = 0 -+ a[8] = 0 -+ a[9] = 0 -+ a[10] = 0 -+ a[11] = 0 -+ a[12] = 0 -+ a[13] = 0 -+ a[14] = 0 -+ a[15] = 0 -+ a[16] = 0 -+ a[17] = 0 -+ a[18] = 0 -+ a[19] = 0 -+ a[20] = 0 -+ a[21] = 0 -+ a[22] = 0 -+ a[23] = 0 -+ a[24] = 0 -+ a[25] = 0 -+ a[26] = 0 -+ a[27] = 0 -+ a[28] = 0 -+ a[29] = 0 -+ a[30] = 0 -+ a[31] = 0 -+ a[32] = 0 -+ a[33] = 0 -+ a[34] = 0 -+ a[35] = 0 -+ a[36] = 0 -+ a[37] = 0 -+ a[38] = 0 -+ a[39] = 0 -+ a[40] = 0 -+ a[41] = 0 -+ a[42] = 0 -+ a[43] = 0 -+ a[44] = 0 -+ a[45] = 0 -+ a[46] = 0 -+ a[47] = 0 -+ a[48] = 0 -+ a[49] = 0 -+ a[50] = 0 -+ a[51] = 0 -+ a[52] = 0 -+ a[53] = 0 -+ a[54] = 0 -+ a[55] = 0 -+ a[56] = 0 -+ a[57] = 0 -+ a[58] = 0 -+ a[59] = 0 -+ a[60] = 0 -+ a[61] = 0 -+ a[62] = 0 -+ a[63] = 0 -+ a[64] = 0 -+ a[65] = 0 -+ a[66] = 0 -+ a[67] = 0 -+ a[68] = 0 -+ a[69] = 0 -+ a[70] = 0 -+ a[71] = 0 -+ a[72] = 0 -+ a[73] = 0 -+ a[74] = 0 -+ a[75] = 0 -+ a[76] = 0 -+ a[77] = 0 -+ a[78] = 0 -+ a[79] = 0 -+ a[80] = 0 -+ a[81] = 0 -+ a[82] = 0 -+ a[83] = 0 -+ a[84] = 0 -+ a[85] = 0 -+ a[86] = 0 -+ a[87] = 0 -+ a[88] = 0 -+ a[89] = 0 -+ a[90] = 0 -+ a[91] = 0 -+ a[92] = 0 -+ a[93] = 0 -+ a[94] = 0 -+ a[95] = 0 -+ a[96] = 0 -+ a[97] = 0 -+ a[98] = 0 -+ a[99] = 0 -+ a[100] = 0 -+ a[101] = 0 -+ a[102] = 0 -+ a[103] = 0 -+ a[104] = 0 -+ a[105] = 0 -+ a[106] = 0 -+ a[107] = 0 -+ a[108] = 0 -+ a[109] = 0 -+ a[110] = 0 -+ a[111] = 0 -+ a[112] = 0 -+ a[113] = 0 -+ a[114] = 0 -+ a[115] = 0 -+ a[116] = 0 -+ a[117] = 0 -+ a[118] = 0 -+ a[119] = 0 -+ a[120] = 0 -+ a[121] = 0 -+ a[122] = 0 -+ a[123] = 0 -+ a[124] = 0 -+ a[125] = 0 -+ a[126] = 0 -+ a[127] = 0 -+ a[128] = 0 -+ a[129] = 0 -+ a[130] = 0 -+ a[131] = 0 -+ a[132] = 0 -+ a[133] = 0 -+ a[134] = 0 -+ a[135] = 0 -+ a[136] = 0 -+ a[137] = 0 -+ a[138] = 0 -+ a[139] = 0 -+ a[140] = 0 -+ a[141] = 0 -+ a[142] = 0 -+ a[143] = 0 -+ a[144] = 0 -+ a[145] = 0 -+ a[146] = 0 -+ a[147] = 0 -+ a[148] = 0 -+ a[149] = 0 -+ a[150] = 0 -+ a[151] = 0 -+ a[152] = 0 -+ a[153] = 0 -+ a[154] = 0 -+ a[155] = 0 -+ a[156] = 0 -+ a[157] = 0 -+ a[158] = 0 -+ a[159] = 0 -+ a[160] = 0 -+ a[161] = 0 -+ a[162] = 0 -+ a[163] = 0 -+ a[164] = 0 -+ a[165] = 0 -+ a[166] = 0 -+ a[167] = 0 -+ a[168] = 0 -+ a[169] = 0 -+ a[170] = 0 -+ a[171] = 0 -+ a[172] = 0 -+ a[173] = 0 -+ a[174] = 0 -+ a[175] = 0 -+ a[176] = 0 -+ a[177] = 0 -+ a[178] = 0 -+ a[179] = 0 -+ a[180] = 0 -+ a[181] = 0 -+ a[182] = 0 -+ a[183] = 0 -+ a[184] = 0 -+ a[185] = 0 -+ a[186] = 0 -+ a[187] = 0 -+ a[188] = 0 -+ a[189] = 0 -+ a[190] = 0 -+ a[191] = 0 -+ a[192] = 0 -+ a[193] = 0 -+ a[194] = 0 -+ a[195] = 0 -+ a[196] = 0 -+ a[197] = 0 -+ a[198] = 0 -+ a[199] = 0 -+ a[200] = 0 -+ a[201] = 0 -+ a[202] = 0 -+ a[203] = 0 -+ a[204] = 0 -+ a[205] = 0 -+ a[206] = 0 -+ a[207] = 0 -+ a[208] = 0 -+ a[209] = 0 -+ a[210] = 0 -+ a[211] = 0 -+ a[212] = 0 -+ a[213] = 0 -+ a[214] = 0 -+ a[215] = 0 -+ a[216] = 0 -+ a[217] = 0 -+ a[218] = 0 -+ a[219] = 0 -+ a[220] = 0 -+ a[221] = 0 -+ a[222] = 0 -+ a[223] = 0 -+ a[224] = 0 -+ a[225] = 0 -+ a[226] = 0 -+ a[227] = 0 -+ a[228] = 0 -+ a[229] = 0 -+ a[230] = 0 -+ a[231] = 0 -+ a[232] = 0 -+ a[233] = 0 -+ a[234] = 0 -+ a[235] = 0 -+ a[236] = 0 -+ a[237] = 0 -+ a[238] = 0 -+ a[239] = 0 -+ a[240] = 0 -+ a[241] = 0 -+ a[242] = 0 -+ a[243] = 0 -+ a[244] = 0 -+ a[245] = 0 -+ a[246] = 0 -+ a[247] = 0 -+ a[248] = 0 -+ a[249] = 0 -+ a[250] = 0 -+ a[251] = 0 -+ a[252] = 0 -+ a[253] = 0 -+ a[254] = 0 -+ a[255] = 0 -+ a[256] = 0 -+ a[257] = 0 -+ a[258] = 0 -+ a[259] = 0 -+ a[260] = 0 -+ a[261] = 0 -+ a[262] = 0 -+ a[263] = 0 -+ a[264] = 0 -+ a[265] = 0 -+ a[266] = 0 -+ a[267] = 0 -+ a[268] = 0 -+ a[269] = 0 -+ a[270] = 0 -+ a[271] = 0 -+ a[272] = 0 -+ a[273] = 0 -+ a[274] = 0 -+ a[275] = 0 -+ a[276] = 0 -+ a[277] = 0 -+ a[278] = 0 -+ a[279] = 0 -+ a[280] = 0 -+ a[281] = 0 -+ a[282] = 0 -+ a[283] = 0 -+ a[284] = 0 -+ a[285] = 0 -+ a[286] = 0 -+ a[287] = 0 -+ a[288] = 0 -+ a[289] = 0 -+ a[290] = 0 -+ a[291] = 0 -+ a[292] = 0 -+ a[293] = 0 -+ a[294] = 0 -+ a[295] = 0 -+ a[296] = 0 -+ a[297] = 0 -+ a[298] = 0 -+ a[299] = 0 -+ a[300] = 0 -+ a[301] = 0 -+ a[302] = 0 -+ a[303] = 0 -+ a[304] = 0 -+ a[305] = 0 -+ a[306] = 0 -+ a[307] = 0 -+ a[308] = 0 -+ a[309] = 0 -+ a[310] = 0 -+ a[311] = 0 -+ a[312] = 0 -+ a[313] = 0 -+ a[314] = 0 -+ a[315] = 0 -+ a[316] = 0 -+ a[317] = 0 -+ a[318] = 0 -+ a[319] = 0 -+ a[320] = 0 -+ a[321] = 0 -+ a[322] = 0 -+ a[323] = 0 -+ a[324] = 0 -+ a[325] = 0 -+ a[326] = 0 -+ a[327] = 0 -+ a[328] = 0 -+ a[329] = 0 -+ a[330] = 0 -+ a[331] = 0 -+ a[332] = 0 -+ a[333] = 0 -+ a[334] = 0 -+ a[335] = 0 -+ a[336] = 0 -+ a[337] = 0 -+ a[338] = 0 -+ a[339] = 0 -+ a[340] = 0 -+ a[341] = 0 -+ a[342] = 0 -+ a[343] = 0 -+ a[344] = 0 -+ a[345] = 0 -+ a[346] = 0 -+ a[347] = 0 -+ a[348] = 0 -+ a[349] = 0 -+ a[350] = 0 -+ a[351] = 0 -+ a[352] = 0 -+ a[353] = 0 -+ a[354] = 0 -+ a[355] = 0 -+ a[356] = 0 -+ a[357] = 0 -+ a[358] = 0 -+ a[359] = 0 -+ a[360] = 0 -+ a[361] = 0 -+ a[362] = 0 -+ a[363] = 0 -+ a[364] = 0 -+ a[365] = 0 -+ a[366] = 0 -+ a[367] = 0 -+ a[368] = 0 -+ a[369] = 0 -+ a[370] = 0 -+ a[371] = 0 -+ a[372] = 0 -+ a[373] = 0 -+ a[374] = 0 -+ a[375] = 0 -+ a[376] = 0 -+ a[377] = 0 -+ a[378] = 0 -+ a[379] = 0 -+ a[380] = 0 -+ a[381] = 0 -+ a[382] = 0 -+ a[383] = 0 -+ a[384] = 0 -+ a[385] = 0 -+ a[386] = 0 -+ a[387] = 0 -+ a[388] = 0 -+ a[389] = 0 -+ a[390] = 0 -+ a[391] = 0 -+ a[392] = 0 -+ a[393] = 0 -+ a[394] = 0 -+ a[395] = 0 -+ a[396] = 0 -+ a[397] = 0 -+ a[398] = 0 -+ a[399] = 0 -+ a[400] = 0 -+ a[401] = 0 -+ a[402] = 0 -+ a[403] = 0 -+ a[404] = 0 -+ a[405] = 0 -+ a[406] = 0 -+ a[407] = 0 -+ a[408] = 0 -+ a[409] = 0 -+ a[410] = 0 -+ a[411] = 0 -+ a[412] = 0 -+ a[413] = 0 -+ a[414] = 0 -+ a[415] = 0 -+ a[416] = 0 -+ a[417] = 0 -+ a[418] = 0 -+ a[419] = 0 -+ a[420] = 0 -+ a[421] = 0 -+ a[422] = 0 -+ a[423] = 0 -+ a[424] = 0 -+ a[425] = 0 -+ a[426] = 0 -+ a[427] = 0 -+ a[428] = 0 -+ a[429] = 0 -+ a[430] = 0 -+ a[431] = 0 -+ a[432] = 0 -+ a[433] = 0 -+ a[434] = 0 -+ a[435] = 0 -+ a[436] = 0 -+ a[437] = 0 -+ a[438] = 0 -+ a[439] = 0 -+ a[440] = 0 -+ a[441] = 0 -+ a[442] = 0 -+ a[443] = 0 -+ a[444] = 0 -+ a[445] = 0 -+ a[446] = 0 -+ a[447] = 0 -+ a[448] = 0 -+ a[449] = 0 -+ a[450] = 0 -+ a[451] = 0 -+ a[452] = 0 -+ a[453] = 0 -+ a[454] = 0 -+ a[455] = 0 -+ a[456] = 0 -+ a[457] = 0 -+ a[458] = 0 -+ a[459] = 0 -+ a[460] = 0 -+ a[461] = 0 -+ a[462] = 0 -+ a[463] = 0 -+ a[464] = 0 -+ a[465] = 0 -+ a[466] = 0 -+ a[467] = 0 -+ a[468] = 0 -+ a[469] = 0 -+ a[470] = 0 -+ a[471] = 0 -+ a[472] = 0 -+ a[473] = 0 -+ a[474] = 0 -+ a[475] = 0 -+ a[476] = 0 -+ a[477] = 0 -+ a[478] = 0 -+ a[479] = 0 -+ a[480] = 0 -+ a[481] = 0 -+ a[482] = 0 -+ a[483] = 0 -+ a[484] = 0 -+ a[485] = 0 -+ a[486] = 0 -+ a[487] = 0 -+ a[488] = 0 -+ a[489] = 0 -+ a[490] = 0 -+ a[491] = 0 -+ a[492] = 0 -+ a[493] = 0 -+ a[494] = 0 -+ a[495] = 0 -+ a[496] = 0 -+ a[497] = 0 -+ a[498] = 0 -+ a[499] = 0 -+ a[500] = 0 -+ a[501] = 0 -+ a[502] = 0 -+ a[503] = 0 -+ a[504] = 0 -+ a[505] = 0 -+ a[506] = 0 -+ a[507] = 0 -+ a[508] = 0 -+ a[509] = 0 -+ a[510] = 0 -+ a[511] = 0 -+ a[512] = 0 -+ a[513] = 0 -+ a[514] = 0 -+ a[515] = 0 -+ a[516] = 0 -+ a[517] = 0 -+ a[518] = 0 -+ a[519] = 0 -+ a[520] = 0 -+ a[521] = 0 -+ a[522] = 0 -+ a[523] = 0 -+ a[524] = 0 -+ a[525] = 0 -+ a[526] = 0 -+ a[527] = 0 -+ a[528] = 0 -+ a[529] = 0 -+ a[530] = 0 -+ a[531] = 0 -+ a[532] = 0 -+ a[533] = 0 -+ a[534] = 0 -+ a[535] = 0 -+ a[536] = 0 -+ a[537] = 0 -+ a[538] = 0 -+ a[539] = 0 -+ a[540] = 0 -+ a[541] = 0 -+ a[542] = 0 -+ a[543] = 0 -+ a[544] = 0 -+ a[545] = 0 -+ a[546] = 0 -+ a[547] = 0 -+ a[548] = 0 -+ a[549] = 0 -+ a[550] = 0 -+ a[551] = 0 -+ a[552] = 0 -+ a[553] = 0 -+ a[554] = 0 -+ a[555] = 0 -+ a[556] = 0 -+ a[557] = 0 -+ a[558] = 0 -+ a[559] = 0 -+ a[560] = 0 -+ a[561] = 0 -+ a[562] = 0 -+ a[563] = 0 -+ a[564] = 0 -+ a[565] = 0 -+ a[566] = 0 -+ a[567] = 0 -+ a[568] = 0 -+ a[569] = 0 -+ a[570] = 0 -+ a[571] = 0 -+ a[572] = 0 -+ a[573] = 0 -+ a[574] = 0 -+ a[575] = 0 -+ a[576] = 0 -+ a[577] = 0 -+ a[578] = 0 -+ a[579] = 0 -+ a[580] = 0 -+ a[581] = 0 -+ a[582] = 0 -+ a[583] = 0 -+ a[584] = 0 -+ a[585] = 0 -+ a[586] = 0 -+ a[587] = 0 -+ a[588] = 0 -+ a[589] = 0 -+ a[590] = 0 -+ a[591] = 0 -+ a[592] = 0 -+ a[593] = 0 -+ a[594] = 0 -+ a[595] = 0 -+ a[596] = 0 -+ a[597] = 0 -+ a[598] = 0 -+ a[599] = 0 -+ a[600] = 0 -+ a[601] = 0 -+ a[602] = 0 -+ a[603] = 0 -+ a[604] = 0 -+ a[605] = 0 -+ a[606] = 0 -+ a[607] = 0 -+ a[608] = 0 -+ a[609] = 0 -+ a[610] = 0 -+ a[611] = 0 -+ a[612] = 0 -+ a[613] = 0 -+ a[614] = 0 -+ a[615] = 0 -+ a[616] = 0 -+ a[617] = 0 -+ a[618] = 0 -+ a[619] = 0 -+ a[620] = 0 -+ a[621] = 0 -+ a[622] = 0 -+ a[623] = 0 -+ a[624] = 0 -+ a[625] = 0 -+ a[626] = 0 -+ a[627] = 0 -+ a[628] = 0 -+ a[629] = 0 -+ a[630] = 0 -+ a[631] = 0 -+ a[632] = 0 -+ a[633] = 0 -+ a[634] = 0 -+ a[635] = 0 -+ a[636] = 0 -+ a[637] = 0 -+ a[638] = 0 -+ a[639] = 0 -+ a[640] = 0 -+ a[641] = 0 -+ a[642] = 0 -+ a[643] = 0 -+ a[644] = 0 -+ a[645] = 0 -+ a[646] = 0 -+ a[647] = 0 -+ a[648] = 0 -+ a[649] = 0 -+ a[650] = 0 -+ a[651] = 0 -+ a[652] = 0 -+ a[653] = 0 -+ a[654] = 0 -+ a[655] = 0 -+ a[656] = 0 -+ a[657] = 0 -+ a[658] = 0 -+ a[659] = 0 -+ a[660] = 0 -+ a[661] = 0 -+ a[662] = 0 -+ a[663] = 0 -+ a[664] = 0 -+ a[665] = 0 -+ a[666] = 0 -+ a[667] = 0 -+ a[668] = 0 -+ a[669] = 0 -+ a[670] = 0 -+ a[671] = 0 -+ a[672] = 0 -+ a[673] = 0 -+ a[674] = 0 -+ a[675] = 0 -+ a[676] = 0 -+ a[677] = 0 -+ a[678] = 0 -+ a[679] = 0 -+ a[680] = 0 -+ a[681] = 0 -+ a[682] = 0 -+ a[683] = 0 -+ a[684] = 0 -+ a[685] = 0 -+ a[686] = 0 -+ a[687] = 0 -+ a[688] = 0 -+ a[689] = 0 -+ a[690] = 0 -+ a[691] = 0 -+ a[692] = 0 -+ a[693] = 0 -+ a[694] = 0 -+ a[695] = 0 -+ a[696] = 0 -+ a[697] = 0 -+ a[698] = 0 -+ a[699] = 0 -+ a[700] = 0 -+ a[701] = 0 -+ a[702] = 0 -+ a[703] = 0 -+ a[704] = 0 -+ a[705] = 0 -+ a[706] = 0 -+ a[707] = 0 -+ a[708] = 0 -+ a[709] = 0 -+ a[710] = 0 -+ a[711] = 0 -+ a[712] = 0 -+ a[713] = 0 -+ a[714] = 0 -+ a[715] = 0 -+ a[716] = 0 -+ a[717] = 0 -+ a[718] = 0 -+ a[719] = 0 -+ a[720] = 0 -+ a[721] = 0 -+ a[722] = 0 -+ a[723] = 0 -+ a[724] = 0 -+ a[725] = 0 -+ a[726] = 0 -+ a[727] = 0 -+ a[728] = 0 -+ a[729] = 0 -+ a[730] = 0 -+ a[731] = 0 -+ a[732] = 0 -+ a[733] = 0 -+ a[734] = 0 -+ a[735] = 0 -+ a[736] = 0 -+ a[737] = 0 -+ a[738] = 0 -+ a[739] = 0 -+ a[740] = 0 -+ a[741] = 0 -+ a[742] = 0 -+ a[743] = 0 -+ a[744] = 0 -+ a[745] = 0 -+ a[746] = 0 -+ a[747] = 0 -+ a[748] = 0 -+ a[749] = 0 -+ a[750] = 0 -+ a[751] = 0 -+ a[752] = 0 -+ a[753] = 0 -+ a[754] = 0 -+ a[755] = 0 -+ a[756] = 0 -+ a[757] = 0 -+ a[758] = 0 -+ a[759] = 0 -+ a[760] = 0 -+ a[761] = 0 -+ a[762] = 0 -+ a[763] = 0 -+ a[764] = 0 -+ a[765] = 0 -+ a[766] = 0 -+ a[767] = 0 -+ a[768] = 0 -+ a[769] = 0 -+ a[770] = 0 -+ a[771] = 0 -+ a[772] = 0 -+ a[773] = 0 -+ a[774] = 0 -+ a[775] = 0 -+ a[776] = 0 -+ a[777] = 0 -+ a[778] = 0 -+ a[779] = 0 -+ a[780] = 0 -+ a[781] = 0 -+ a[782] = 0 -+ a[783] = 0 -+ a[784] = 0 -+ a[785] = 0 -+ a[786] = 0 -+ a[787] = 0 -+ a[788] = 0 -+ a[789] = 0 -+ a[790] = 0 -+ a[791] = 0 -+ a[792] = 0 -+ a[793] = 0 -+ a[794] = 0 -+ a[795] = 0 -+ a[796] = 0 -+ a[797] = 0 -+ a[798] = 0 -+ a[799] = 0 -+ a[800] = 0 -+ a[801] = 0 -+ a[802] = 0 -+ a[803] = 0 -+ a[804] = 0 -+ a[805] = 0 -+ a[806] = 0 -+ a[807] = 0 -+ a[808] = 0 -+ a[809] = 0 -+ a[810] = 0 -+ a[811] = 0 -+ a[812] = 0 -+ a[813] = 0 -+ a[814] = 0 -+ a[815] = 0 -+ a[816] = 0 -+ a[817] = 0 -+ a[818] = 0 -+ a[819] = 0 -+ a[820] = 0 -+ a[821] = 0 -+ a[822] = 0 -+ a[823] = 0 -+ a[824] = 0 -+ a[825] = 0 -+ a[826] = 0 -+ a[827] = 0 -+ a[828] = 0 -+ a[829] = 0 -+ a[830] = 0 -+ a[831] = 0 -+ a[832] = 0 -+ a[833] = 0 -+ a[834] = 0 -+ a[835] = 0 -+ a[836] = 0 -+ a[837] = 0 -+ a[838] = 0 -+ a[839] = 0 -+ a[840] = 0 -+ a[841] = 0 -+ a[842] = 0 -+ a[843] = 0 -+ a[844] = 0 -+ a[845] = 0 -+ a[846] = 0 -+ a[847] = 0 -+ a[848] = 0 -+ a[849] = 0 -+ a[850] = 0 -+ a[851] = 0 -+ a[852] = 0 -+ a[853] = 0 -+ a[854] = 0 -+ a[855] = 0 -+ a[856] = 0 -+ a[857] = 0 -+ a[858] = 0 -+ a[859] = 0 -+ a[860] = 0 -+ a[861] = 0 -+ a[862] = 0 -+ a[863] = 0 -+ a[864] = 0 -+ a[865] = 0 -+ a[866] = 0 -+ a[867] = 0 -+ a[868] = 0 -+ a[869] = 0 -+ a[870] = 0 -+ a[871] = 0 -+ a[872] = 0 -+ a[873] = 0 -+ a[874] = 0 -+ a[875] = 0 -+ a[876] = 0 -+ a[877] = 0 -+ a[878] = 0 -+ a[879] = 0 -+ a[880] = 0 -+ a[881] = 0 -+ a[882] = 0 -+ a[883] = 0 -+ a[884] = 0 -+ a[885] = 0 -+ a[886] = 0 -+ a[887] = 0 -+ a[888] = 0 -+ a[889] = 0 -+ a[890] = 0 -+ a[891] = 0 -+ a[892] = 0 -+ a[893] = 0 -+ a[894] = 0 -+ a[895] = 0 -+ a[896] = 0 -+ a[897] = 0 -+ a[898] = 0 -+ a[899] = 0 -+ a[900] = 0 -+ a[901] = 0 -+ a[902] = 0 -+ a[903] = 0 -+ a[904] = 0 -+ a[905] = 0 -+ a[906] = 0 -+ a[907] = 0 -+ a[908] = 0 -+ a[909] = 0 -+ a[910] = 0 -+ a[911] = 0 -+ a[912] = 0 -+ a[913] = 0 -+ a[914] = 0 -+ a[915] = 0 -+ a[916] = 0 -+ a[917] = 0 -+ a[918] = 0 -+ a[919] = 0 -+ a[920] = 0 -+ a[921] = 0 -+ a[922] = 0 -+ a[923] = 0 -+ a[924] = 0 -+ a[925] = 0 -+ a[926] = 0 -+ a[927] = 0 -+ a[928] = 0 -+ a[929] = 0 -+ a[930] = 0 -+ a[931] = 0 -+ a[932] = 0 -+ a[933] = 0 -+ a[934] = 0 -+ a[935] = 0 -+ a[936] = 0 -+ a[937] = 0 -+ a[938] = 0 -+ a[939] = 0 -+ a[940] = 0 -+ a[941] = 0 -+ a[942] = 0 -+ a[943] = 0 -+ a[944] = 0 -+ a[945] = 0 -+ a[946] = 0 -+ a[947] = 0 -+ a[948] = 0 -+ a[949] = 0 -+ a[950] = 0 -+ a[951] = 0 -+ a[952] = 0 -+ a[953] = 0 -+ a[954] = 0 -+ a[955] = 0 -+ a[956] = 0 -+ a[957] = 0 -+ a[958] = 0 -+ a[959] = 0 -+ a[960] = 0 -+ a[961] = 0 -+ a[962] = 0 -+ a[963] = 0 -+ a[964] = 0 -+ a[965] = 0 -+ a[966] = 0 -+ a[967] = 0 -+ a[968] = 0 -+ a[969] = 0 -+ a[970] = 0 -+ a[971] = 0 -+ a[972] = 0 -+ a[973] = 0 -+ a[974] = 0 -+ a[975] = 0 -+ a[976] = 0 -+ a[977] = 0 -+ a[978] = 0 -+ a[979] = 0 -+ a[980] = 0 -+ a[981] = 0 -+ a[982] = 0 -+ a[983] = 0 -+ a[984] = 0 -+ a[985] = 0 -+ a[986] = 0 -+ a[987] = 0 -+ a[988] = 0 -+ a[989] = 0 -+ a[990] = 0 -+ a[991] = 0 -+ a[992] = 0 -+ a[993] = 0 -+ a[994] = 0 -+ a[995] = 0 -+ a[996] = 0 -+ a[997] = 0 -+ a[998] = 0 -+ a[999] = 0 -+ x := small(a) // ERROR "inlining call to small .*" -+ y := medium(a) // The crux of this test: medium is not inlined. -+ return x + y -+} --- -2.14.4 - diff --git a/golang.spec b/golang.spec index b08c366..8227086 100644 --- a/golang.spec +++ b/golang.spec @@ -102,11 +102,11 @@ %endif %global go_api 1.11 -%global go_version 1.11beta2 +%global go_version 1.11beta3 Name: golang Version: 1.11 -Release: 0.beta2.2%{?dist} +Release: 0.beta3.1%{?dist} Summary: The Go Programming Language # source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain License: BSD and Public Domain @@ -183,7 +183,6 @@ Requires: go-srpm-macros Patch1: 0001-Don-t-use-the-bundled-tzdata-at-runtime-except-for-t.patch Patch2: 0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch -Patch3: 0001-cmd-compile-set-stricter-inlining-threshold-in-large.patch # Having documentation separate was broken Obsoletes: %{name}-docs < 1.1-4 @@ -309,7 +308,6 @@ Requires: %{name} = %{version}-%{release} %patch1 -p1 %patch2 -p1 -%patch3 -p1 cp %{SOURCE1} ./src/runtime/ @@ -546,6 +544,9 @@ fi %endif %changelog +* Mon Aug 06 2018 Jakub Čajka - 1.11-0.beta3.1 +- Rebase to go1.11beta3 + * Fri Jul 27 2018 Jakub Čajka - 1.11-0.beta2.2 - Turn on back DWARF compression by default - Use less memory on 32bit targets during build diff --git a/sources b/sources index 2666473..9f8fc25 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (go1.11beta2.src.tar.gz) = 0b88364f15c1b41c19c2dca3e69e4bb848d8534540f80b50e9cca00889398f464647530a972ec763b925e2d850ee4e88f08abda3ec01384462ff423e281e24aa +SHA512 (go1.11beta3.src.tar.gz) = af921a7879e148c70126bd56b7fb521931a73b13a904e801b5d2375e5a10ace9c8139840b9659dceb4366887966ca90d13a7e0151d52b8611e2e5aca3a1ab107