- 11 Sep, 2012 11 commits
-
-
Daniel Morsing authored
This CL also adds support for marking the likelyness of IF nodes in the AST being true. This feature is being used here to mark the slow path as unlikely. src/pkg/runtime: benchmark old ns/op new ns/op delta BenchmarkConvT2IUintptr 16 1 -91.63% test/bench/go1: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 5416917000 5461355000 +0.82% BenchmarkFannkuch11 3810355000 3842609000 +0.85% BenchmarkGobDecode 19950950 19855420 -0.48% BenchmarkGobEncode 11301220 11308530 +0.06% BenchmarkGzip 548119600 546869200 -0.23% BenchmarkGunzip 176145400 180208300 +2.31% BenchmarkJSONEncode 93117400 70163100 -24.65% BenchmarkJSONDecode 406626800 409999200 +0.83% BenchmarkMandelbrot200 6300992 6317866 +0.27% BenchmarkParse 7664396 7451625 -2.78% BenchmarkRevcomp 1189424000 1412332000 +18.74% BenchmarkTemplate 491308400 458654200 -6.65% benchmark old MB/s new MB/s speedup BenchmarkGobDecode 38.47 38.66 1.00x BenchmarkGobEncode 67.92 67.87 1.00x BenchmarkGzip 35.40 35.48 1.00x BenchmarkGunzip 110.16 107.68 0.98x BenchmarkJSONEncode 20.84 27.66 1.33x BenchmarkJSONDecode 4.77 4.73 0.99x BenchmarkParse 7.56 7.77 1.03x BenchmarkRevcomp 213.69 179.96 0.84x BenchmarkTemplate 3.95 4.23 1.07x R=rsc, dave, nigeltao CC=golang-dev https://golang.org/cl/6351090
-
Nigel Tao authored
Given the following Go program: func sum(s []int) int { ret := 0 for _, x := range s { ret += x } return ret } 6g would previously generate: --- prog list "sum" --- 0000 (main.go:3) TEXT sum+0(SB),$0-24 0001 (main.go:5) MOVQ s+0(FP),CX 0002 (main.go:5) MOVL s+8(FP),DI 0003 (main.go:5) MOVL s+12(FP),BX 0004 (main.go:4) MOVL $0,SI 0005 (main.go:5) MOVL $0,AX 0006 (main.go:5) JMP ,8 0007 (main.go:5) INCL ,AX 0008 (main.go:5) CMPL AX,DI 0009 (main.go:5) JGE $0,16 0010 (main.go:5) MOVL (CX),DX 0011 (main.go:5) MOVQ $4,BX 0012 (main.go:5) ADDQ CX,BX 0013 (main.go:5) MOVQ BX,CX 0014 (main.go:6) ADDL DX,SI 0015 (main.go:5) JMP ,7 0016 (main.go:8) MOVL SI,.noname+16(FP) 0017 (main.go:8) RET , and now generates: --- prog list "sum" --- 0000 (main.go:3) TEXT sum+0(SB),$0-24 0001 (main.go:5) MOVQ s+0(FP),CX 0002 (main.go:5) MOVL s+8(FP),DI 0003 (main.go:5) MOVL s+12(FP),BX 0004 (main.go:4) MOVL $0,SI 0005 (main.go:5) MOVL $0,AX 0006 (main.go:5) JMP ,8 0007 (main.go:5) INCL ,AX 0008 (main.go:5) CMPL AX,DI 0009 (main.go:5) JGE $0,14 0010 (main.go:5) MOVL (CX),BP 0011 (main.go:5) ADDQ $4,CX 0012 (main.go:6) ADDL BP,SI 0013 (main.go:5) JMP ,7 0014 (main.go:8) MOVL SI,.noname+16(FP) 0015 (main.go:8) RET , The key difference is that 0011 (main.go:5) MOVQ $4,BX 0012 (main.go:5) ADDQ CX,BX 0013 (main.go:5) MOVQ BX,CX has changed to 0011 (main.go:5) ADDQ $4,CX R=rsc, dave, remyoudompheng CC=golang-dev https://golang.org/cl/6506089
-
Andrew Gerrand authored
R=golang-dev, dsymonds, campoy CC=golang-dev https://golang.org/cl/6490102
-
Rémy Oudompheng authored
It is enough to load directly the data word and the itab word from memory, so we save a LEA instruction for each method call, and allow elimination of some extra temporaries. Update #1914. R=daniel.morsing, rsc CC=golang-dev, remy https://golang.org/cl/6501110
-
Rémy Oudompheng authored
Removes an extra LEAL/LEAQ instructions there and usually saves a useless temporary in the idiom if err := foo(); err != nil {...} Generated code is also less involved: MOVQ err+n(SP), AX CMPQ AX, $0 (potentially CMPQ n(SP), $0) instead of LEAQ err+n(SP), AX CMPQ (AX), $0 Update #1914. R=daniel.morsing, nigeltao, rsc CC=golang-dev, remy https://golang.org/cl/6493099
-
Nigel Tao authored
This verifies existing behavior. Some replacements are arguably wrong (these are marked with TODO) but changing behavior is left for a follow-up CL. Also fix that BenchmarkGenericMatch wasn't actually matching anything. R=rsc, eric.d.eisner CC=bradfitz, golang-dev https://golang.org/cl/6488110
-
Andrew Gerrand authored
R=iant, nigeltao CC=golang-dev https://golang.org/cl/6492102
-
Alex Brainman authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6506096
-
Russ Cox authored
Fixes #3069. R=golang-dev, n13m3y3r CC=golang-dev https://golang.org/cl/6460044
-
Brian Slesinskya authored
Rationale: for large screens, the convenience of not having to scroll to the top of the page to do a search outweighs having less vertical space. Tested with Chrome, Firefox, Safari with various window and text sizes. R=adg CC=gobot, golang-dev https://golang.org/cl/6493071
-
Andrew Gerrand authored
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/6496103
-
- 10 Sep, 2012 11 commits
-
-
Mikio Hara authored
R=rsc, dave CC=bradfitz, gobot, golang-dev https://golang.org/cl/6497044
-
David Symonds authored
A race between a = "hello, world" and print(a) is not guaranteed to print either "hello, world" or "". Its behaviour is undefined. Fixes #4039. R=rsc CC=dvyukov, gobot, golang-dev, r https://golang.org/cl/6489075
-
Mikio Hara authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6489056
-
Robert Griesemer authored
First set of type checker files for review. The primary concern here is the typechecker API (types.go). R=rsc, adonovan, r, rogpeppe CC=golang-dev https://golang.org/cl/6490089
-
Rob Pike authored
Fixes #4040. R=rsc CC=golang-dev https://golang.org/cl/6497098
-
Adam Langley authored
Broke tests on 386. ««« original CL description 6l/8l: emit correct opcodes to F(SUB|DIV)R?D. When the destination was not F0, 6l and 8l swapped FSUBD/FSUBRD and FDIVD/FDIVRD. R=golang-dev, dave, rsc CC=golang-dev https://golang.org/cl/6498092 »»» R=golang-dev CC=golang-dev https://golang.org/cl/6492100
-
Adam Langley authored
When the destination was not F0, 6l and 8l swapped FSUBD/FSUBRD and FDIVD/FDIVRD. R=golang-dev, dave, rsc CC=golang-dev https://golang.org/cl/6498092
-
Brad Fitzpatrick authored
Also, clear Content-Type and Content-Length on Not Modified responses before server.go strips them and spams the logs with warnings. R=rsc CC=golang-dev https://golang.org/cl/6503090
-
Nigel Tao authored
No longer necessary after https://golang.org/cl/6497073/ removed the `if(n5.op != OXXX) { regfree(&n5); }`. R=remy, r CC=golang-dev, rsc https://golang.org/cl/6498101
-
Adam Langley authored
R=golang-dev CC=golang-dev https://golang.org/cl/6497106
-
Adam Langley authored
R=golang-dev, dave CC=golang-dev https://golang.org/cl/6496099
-
- 09 Sep, 2012 2 commits
-
-
Rémy Oudompheng authored
This makes the compilers code more similar and improves code generation a lot. The number of LEAL instructions generated for cmd/go drops by 60%. % GOARCH=386 go build -gcflags -S -a cmd/go | grep LEAL | wc -l Before: 89774 After: 47548 benchmark old ns/op new ns/op delta BenchmarkAppendFloatDecimal 540 444 -17.78% BenchmarkAppendFloat 1160 1035 -10.78% BenchmarkAppendFloatExp 1060 922 -13.02% BenchmarkAppendFloatNegExp 1053 920 -12.63% BenchmarkAppendFloatBig 1773 1558 -12.13% BenchmarkFormatInt 13065 12481 -4.47% BenchmarkAppendInt 10981 9900 -9.84% BenchmarkFormatUint 3804 3650 -4.05% BenchmarkAppendUint 3506 3303 -5.79% BenchmarkUnquoteEasy 714 683 -4.34% BenchmarkUnquoteHard 5117 2915 -43.03% Update #1914. R=nigeltao, rsc, golang-dev CC=golang-dev, remy https://golang.org/cl/6489067
-
Mikio Hara authored
It might be meaningful, and stable than others. R=golang-dev, agl CC=golang-dev https://golang.org/cl/6499091
-
- 08 Sep, 2012 3 commits
-
-
Marcel van Lohuizen authored
Refactored build + buildTrie into build + buildOrdering. Note that since the tailoring code is not checked in yet, all tailorings are identical to root. The table therefore should not and does not grow at this point. R=r CC=golang-dev https://golang.org/cl/6500087
-
Marcel van Lohuizen authored
R=r CC=golang-dev https://golang.org/cl/6499079
-
Robert Griesemer authored
R=r CC=golang-dev https://golang.org/cl/6493097
-
- 07 Sep, 2012 12 commits
-
-
Robert Griesemer authored
R=r CC=golang-dev https://golang.org/cl/6498106
-
Rob Pike authored
R=golang-dev, 0xjnml, iant, adonovan, aram CC=golang-dev https://golang.org/cl/6500092
-
Robert Griesemer authored
R=r CC=golang-dev https://golang.org/cl/6490095
-
Rob Pike authored
Fixes #4052. R=golang-dev, bradfitz, iant, rsc CC=golang-dev https://golang.org/cl/6490092
-
Albert Strasheim authored
This test was previously removed in 087c6e15702e. R=bradfitz, rsc, mikioh.mikioh CC=golang-dev https://golang.org/cl/6506061
-
Rob Pike authored
After further deliberation, let's back down to the Unicode proposal. Ignoring aBOMinations anywhere means that things like grep unsafe *.go might fail because there's a BOM in the middle: unBOMsafe. R=golang-dev, rsc, 0xjnml, gri, bradfitz CC=golang-dev https://golang.org/cl/6490091
-
Lucio De Re authored
R=r CC=dsymonds, gobot, golang-dev https://golang.org/cl/6495085
-
Rob Pike authored
Fixes #4037. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6488093
-
Rob Pike authored
It's easier just to declare a new variable. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6501103
-
Rémy Oudompheng authored
The main case where it happens is when evaluating &s[i] without bounds checking, which usually happens during range loops (i=0). This allows registerization of the corresponding variables, saving 16 bytes of stack frame for each such range loop and a LEAQ instruction. R=golang-dev, rsc, dave CC=golang-dev, remy https://golang.org/cl/6497073
-
Dave Cheney authored
Fixes #3911. Requires CL 6449127. dfc@qnap:~$ ./runtime.test runtime: this CPU has no floating point hardware, so it cannot run this GOARM=7 binary. Recompile using GOARM=5. R=rsc, minux.ma CC=golang-dev https://golang.org/cl/6442109
-
Joel Sing authored
When generating enums use the debug data section instead of the DWARF debug info, if it is available in the ELF file. This allows mkerrors.sh to work correctly on OpenBSD/386 and NetBSD/386. Fixes #2470. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/6495090
-
- 06 Sep, 2012 1 commit
-
-
Rob Pike authored
The parser depends on it but the client might not import it, so make sure it's there. Fixes #4038. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6497094
-