- 07 Sep, 2017 5 commits
-
-
isharipo authored
Change "yshl" and "yshb" immediate oclass from Yi32 to Yu8. This forbids: - negative shift counts - shift counts that not fit into 8bit Affects: RCL{B,L,Q,W} RCR{B,L,Q,W} ROL{B,L,Q,W} ROR{B,L,Q,W} SAL{B,L,Q,W} SAR{B,L,Q,W} SHL{B,L,Q,W} SHR{B,L,Q,W} Issue #21528 has some additional context about this change. Change-Id: I60884cb2b41a860820889fcd878ca6f564006b4a Reviewed-on: https://go-review.googlesource.com/62190 Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Daniel Martí authored
The lexer keeps the byte offset and the line for the rune it's currently on. This was simple enough up until whitespace trimming was introduced. With whitespace trimming, we might skip over newlines. In that case, the lexer wasn't properly updating the line counter. Fix it. Also, TestPos now checks that the line is correct too, which it was ignoring before. This was necessary to test this scenario in the lexer. Fixes #21778. Change-Id: I3880f3adf02662eac8f818d5caa6935cca9cb33b Reviewed-on: https://go-review.googlesource.com/61870 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Daniel Martí authored
The isStar and directory function parameters have been unused ever since they were introduced. Remove them. While at it, apply some other minor simplifications, such as simplifying a HasPrefix if and using an early continue to unindent many lines of code. Change-Id: I8d57353e9ec10cdb59c5388cf6152ce0ec17bdba Reviewed-on: https://go-review.googlesource.com/62030 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Marvin Stenger <marvin.stenger94@gmail.com>
-
Martin Möhrmann authored
mapaccess and mapdelete functions are already optimized to prefer direct key comparison instead of tophash checks when key comparison is cheap. Extended version of golang.org/cl/55235. AMD64: name old time/op new time/op delta MapPopulate/1 42.5ns ± 2% 40.3ns ± 2% -5.37% (p=0.000 n=9+10) MapPopulate/10 558ns ± 1% 556ns ± 1% ~ (p=0.157 n=10+10) MapPopulate/100 7.75µs ± 1% 7.66µs ± 2% -1.19% (p=0.001 n=10+10) MapPopulate/1000 92.6µs ± 1% 92.0µs ± 1% -0.61% (p=0.016 n=10+8) MapPopulate/10000 817µs ± 1% 814µs ± 1% ~ (p=0.247 n=10+10) MapPopulate/100000 8.02ms ± 1% 7.90ms ± 2% -1.47% (p=0.007 n=10+10) Change-Id: If0eca9931379cbbd37eb753e9bcd2888d8272153 Reviewed-on: https://go-review.googlesource.com/62050 Run-TryBot: Martin Möhrmann <moehrmann@google.com> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Heschi Kreinick authored
This reverts commit 84188296 AKA CL 60530. Fixes #21783 Change-Id: I68038a77de7446dea68419a40dd25982ea6d7df5 Reviewed-on: https://go-review.googlesource.com/62151Reviewed-by: Heschi Kreinick <heschi@google.com>
-
- 06 Sep, 2017 13 commits
-
-
Hana Kim authored
Change-Id: I0d02e5e44053f02fee3d84c782995ea4ce209a80 Reviewed-on: https://go-review.googlesource.com/62070Reviewed-by: Heschi Kreinick <heschi@google.com>
-
Matthew Dempsky authored
There shouldn't be any problems setting error's "Orig" (underlying) type to a separate anonymous interface, as this is already how go/types defines it. Change-Id: I44e9c4048ffe362ce329e8306632e38b5ccfecff Reviewed-on: https://go-review.googlesource.com/61790 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Alan Donovan <adonovan@google.com>
-
Daniel Martí authored
Change-Id: Ia0479f65a6ef033a65acf9ac8692777839a53b8c Reviewed-on: https://go-review.googlesource.com/61990 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Agniva De Sarker authored
This adds the VFMADD[213|231]SD, VFNMADD[213|231]SD, VADDSD, VSUBSD instructions This will allow us to write a fast path for exp_amd64.s where these optimizations can be applied in a lot of places. Change-Id: Ide292107ab887bd1e225a1ad60880235b5ed7c61 Reviewed-on: https://go-review.googlesource.com/61810Reviewed-by: Ilya Tocar <ilya.tocar@intel.com> Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Alessandro Arzilli authored
Now that all functions have a DW_AT_frame_base defined we can use DW_OP_fbreg to specify the location of variables and formal parameters, instead of the DW_OP_call_frame_cfa/DW_OP_consts/DW_OP_plus, saving 2 bytes for every variable and 2 bytes for every formal parameter after the first one. Change-Id: I2c7395b67e4a814a0131ab1520df11ca48ff9327 Reviewed-on: https://go-review.googlesource.com/60550 Run-TryBot: Heschi Kreinick <heschi@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
-
Alessandro Arzilli authored
DWARF version 4 allows DW_AT_high_pc to be represented as a constant offset from DW_AT_low_pc, this can help save up to 7 bytes per function/lexical scope. Change-Id: I93638d83638ecad4d0d1bfe27348eae6139820c9 Reviewed-on: https://go-review.googlesource.com/60530 Run-TryBot: Heschi Kreinick <heschi@google.com> Reviewed-by: Heschi Kreinick <heschi@google.com>
-
isharipo authored
Instructions added: INSERTPS immb, r/m, xmm MPSADBW immb, r/m, xmm BLENDPD immb, r/m, xmm BLENDPS immb, r/m, xmm DPPD immb, r/m, xmm DPPS immb, r/m, xmm MOVNTDQA r/m, xmm PACKUSDW r/m, xmm PBLENDW immb, r/m, xmm PCMPEQQ r/m, xmm PCMPGTQ r/m, xmm PCMPISTRI immb, r/m, xmm PCMPISTRM immb, r/m, xmm PMAXSB r/m, xmm PMAXSD r/m, xmm PMAXUD r/m, xmm PMAXUW r/m, xmm PMINSB r/m, xmm PMINSD r/m, xmm PMINUD r/m, xmm PMINUW r/m, xmm PTEST r/m, xmm PCMPESTRM immb, r/m, xmm Note: only 'optab' table is extended. `EXTRACTPS immb, xmm, r/m` is not included in this change due to new ytab set 'yextractps'. This should simplify code review. 4-operand instructions are a subject of upcoming changes that make 4-th (and so on) operands explicit. Related TODO note in asm6.go: "dont't hide 4op, some version have xmm version". Part of the mission to add missing amd64 SSE4 instructions to Go asm. Change-Id: I71716df14a8a5332e866dd0f0d52d43d7714872f Reviewed-on: https://go-review.googlesource.com/57470 Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ilya Tocar <ilya.tocar@intel.com>
-
isharipo authored
3rd change out of 3 to cover AMD64 SSSE3 instruction set in Go asm. This commit adds instruction that do require new ytab variable. Change-Id: I0bc7d9401c9176eb3760c3d59494ef082e97af84 Reviewed-on: https://go-review.googlesource.com/56870 Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ilya Tocar <ilya.tocar@intel.com> Reviewed-by: Russ Cox <rsc@golang.org>
-
isharipo authored
This is the last instruction I found missing in SSE2 set. It does not reuse 'yprefetch' ytabs due to differences in operands SRC/DST roles: - PREFETCHx: ModRM:r/m(r) -> FROM - CLFLUSH: ModRM:r/m(w) -> TO unaryDst map is extended accordingly. Change-Id: I89e34ebb81cc0ee5f9ebbb1301bad417f7ee437f Reviewed-on: https://go-review.googlesource.com/56833 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ilya Tocar <ilya.tocar@intel.com> Reviewed-by: Russ Cox <rsc@golang.org>
-
isharipo authored
instructions 1st change out of 3 to cover AMD64 SSSE3 instruction set in Go asm. This commit adds instructions that do not require new named ytab sets. Change-Id: I0c3dfd8d39c3daa8b7683ab163c63145626d042e Reviewed-on: https://go-review.googlesource.com/56834 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ilya Tocar <ilya.tocar@intel.com> Reviewed-by: Russ Cox <rsc@golang.org>
-
Joe Kyo authored
Functions like NewCBCDecrypter, NewCBCEncrypter, NewCFBDecrypter, NewCFBEncrypter and NewCTR all panic when IV length does not equal block size. This commit changes NewOFB to panic too, instead of returning nil silently. Change-Id: Ic4d3ebfad79bb0cf4759fa1c1a400c1a8d043490 Reviewed-on: https://go-review.googlesource.com/61850Reviewed-by: Filippo Valsorda <hi@filippo.io> Run-TryBot: Filippo Valsorda <hi@filippo.io> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Martin Möhrmann authored
runtime.makemap will allocate map buckets on the heap for hints larger than the number of elements a single map bucket can hold. Do not allocate any map bucket on the stack if it is known at compile time that hint is larger than the number of elements one map bucket can hold. This avoids zeroing and reserving memory on the stack that will not be used. Change-Id: I1a5ab853fb16f6a18d67674a77701bf0cf29b550 Reviewed-on: https://go-review.googlesource.com/60450 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Martin Möhrmann authored
The compiler and reflect already zero hiter before mapiterinit. While here expand the documentation for mapiterinit. Change-Id: I78b05d4d14bf78e8091e5353cdac80ffed30ca1e Reviewed-on: https://go-review.googlesource.com/60673 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
- 05 Sep, 2017 7 commits
-
-
Martin Möhrmann authored
Previously the type was first set to uint8 and then corrected later in walkrange. Change-Id: I9e4b597710e8a5fad39dde035df85676bc8d2874 Reviewed-on: https://go-review.googlesource.com/61032 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Martin Möhrmann authored
Remove the runtime ismapkey check from makemap and add a check that the map key type supports comparison to the hmap construction in the compiler. Move the ismapkey check for the reflect code path into reflect_makemap. Change-Id: I718f79b0670c05b63ef31721e72408f59ec4ae86 Reviewed-on: https://go-review.googlesource.com/61035 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
alexpantyukhin authored
Fixes #21763. Change-Id: I59ee4f24c8064df64d9ede11aac02bc7ce4995b3 Reviewed-on: https://go-review.googlesource.com/61491Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Martin Möhrmann authored
Move memclr to a separate file to make it consistent with other platforms asm function to file organization. Remove nacl from the memmove filename as the implementation is generic for the amd64p32 platform even if currently only nacl is supported for amd64p32. Change-Id: I8930b76da430a5cf2664801974e4f5185fc0f82f Reviewed-on: https://go-review.googlesource.com/61031 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Matthew Dempsky authored
Change-Id: I7054bbec080708c3a11ed62d7f6594e82aa33747 Reviewed-on: https://go-review.googlesource.com/61691 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
-
Matthew Dempsky authored
Currently, we handle "x op= y" by rewriting as "x = x op y", while ensuring that any calls or receive operations in 'x' are only evaluated once. Notably, pointer indirection, indexing operations, etc. are left alone as it's typically safe to re-evaluate those. However, those operations were interleaved with evaluating 'y', which could include function calls that might cause re-evaluation to yield different memory addresses. As a fix, simply ensure that we order side-effecting operations in 'y' before either evaluation of 'x'. Fixes #21687. Change-Id: Ib14e77760fda9c828e394e8e362dc9e5319a84b2 Reviewed-on: https://go-review.googlesource.com/60091 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Matthew Dempsky authored
The previous logic was overly complicated, generated suboptimally encoded struct type descriptors, and mishandled embeddings of predeclared universal types. Fixes #21122. Fixes #21353. Fixes #21696. Fixes #21702. Updates #21357. Change-Id: If34761fa6dbe4af2af59dee501e7f30845320376 Reviewed-on: https://go-review.googlesource.com/60410 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
- 04 Sep, 2017 1 commit
-
-
Mark Pulford authored
Avoid counting nodes that don't generate code (eg, constants) against the inlining budget. Fixes #21749 Change-Id: I10fca073e64be7d304709ef33e125eb8c78d5e4d Reviewed-on: https://go-review.googlesource.com/61250Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 03 Sep, 2017 4 commits
-
-
Matthew Dempsky authored
Fixes #21747. Change-Id: I6a68370be3b7510ce364ddd1e41a1d767ce3a67f Reviewed-on: https://go-review.googlesource.com/61311 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Andrii Soldatenko authored
First sentence of https://golang.org/doc/effective_go.html#maps dot is missing. Change-Id: Ic93b407945a6ad24a73ae9f7b6076ac9619871db Reviewed-on: https://go-review.googlesource.com/61020Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
-
Keith Randall authored
Bad merge, missed changing to keyed literal structs. Bug introduced in CL 56252 Change-Id: I55cccff4990bd25e6387f6c90919ee5866900d7f Reviewed-on: https://go-review.googlesource.com/61290 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Cholerae Hu authored
Do the similar thing to CL 55143 to reduce IMUL. Change-Id: I1bd38f618058e3cd74fac181f003610ea13f2294 Reviewed-on: https://go-review.googlesource.com/56252 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
- 02 Sep, 2017 2 commits
-
-
Mark Pulford authored
This function avoids subtle faults found in many ad-hoc implementations, and is simple enough to be inlined by the compiler. Fixes #20100 Change-Id: Ib320254e9b1f1f798c6ef906b116f63bc29e8d08 Reviewed-on: https://go-review.googlesource.com/43652Reviewed-by: Robert Griesemer <gri@golang.org>
-
Keith Randall authored
overLoadFactor wasn't really doing what it says it does. It was reporting overOrEqualToLoadFactor. That's actually what we want when adding an entry to a map, but it isn't what we want when constructing a map in the first place. The impetus for this change is that if you make a map with a hint of exactly 8 (which happens, for example, with the unitMap in time/format.go), we allocate 2 buckets for it instead of 1. Instead, make overLoadFactor really report when it is > the max allowed load factor, not >=. Adjust the callers who want to ensure that the map is no more than the max load factor after an insertion by adding a +1 to the current (pre-addition) size. Change-Id: Ie8d85344800a9a870036b637b1031ddd9e4b93f9 Reviewed-on: https://go-review.googlesource.com/61053 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Martin Möhrmann <moehrmann@google.com>
-
- 01 Sep, 2017 8 commits
-
-
Guilherme Garnier authored
Change-Id: Ia557771272a8ef3602f0281b8c89d2cfe146c8b3 Reviewed-on: https://go-review.googlesource.com/60470Reviewed-by: Adrian Hesketh <adrianhesketh@hushmail.com> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ilya Tocar authored
Currently we only use 1 and 4 as a scale for indexed 4-byte load. In code generated in #20711 we can use indexed load with scale=8, to improve performance: name old time/op new time/op delta GM-6 108µs ± 0% 95µs ± 0% -12.06% (p=0.000 n=10+10) So add new ops and combine loadidx1(shift 3..).. into loadidx8, same for stores. Change-Id: I5ed1c250ac40960e20606580cf9de221e75b72f1 Reviewed-on: https://go-review.googlesource.com/46134 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
David Crawshaw authored
When compiling a plugin, package main gets a new name so as not to conflict with the main package in the host binary, or any other plugins. It is already defined by cmd/go, and used by cmd/link when filling out the "" package placeholder in symbols. With this CL, the plugin-specific name for main is also passed to cmd/compile's -p flag. This is used to fill out the pkgpath field of types, and ensures that two types defined in two different plugin mains with the same name will not be mistaken for one another at runtime. Fixes #21386 Change-Id: I8a646d8d7451caff533fe0007343ea8b8e1704ed Reviewed-on: https://go-review.googlesource.com/60910 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
griesemer authored
The spec is not conclusive about whether a non-constant shift of certain untyped constant left operands is valid when the shift expression appears as an index in an index or slice expression, or as a size in a `make` function call. Despite identical spec rules in all these cases, cmd/compile accepts make([]byte, 1.0 << s) but pronounces an error for a[1.0 << s] (go/types accepts both). This change clarifies the spec by explicitly stating that an untyped constant left operand in a non-constant shift (1.0 in the above examples) will be given type `int` in these contexts. A separate issue #21693 addresses the cmd/compile bug. Fixes #14844. Change-Id: I4b52125e487a607fae377fcbed55463cdce9836c Reviewed-on: https://go-review.googlesource.com/60230Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Tobias Klauser authored
Extract device major/minor number on Darwin and set Devmajor and Devminor in FileInfoHeader. Code based on the Major/Minor functions for Darwin in golang.org/x/sys/unix. Change-Id: I51b65f607bfa2e6b177b8b66e2b246b771367b84 Reviewed-on: https://go-review.googlesource.com/60850Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
griesemer authored
Packages of dot imports don't appear in the Info.Implicits map since they are already taken care of by the Info.Defs map. Fix documentation. Implicitly dot-imported objects of a package shouldn't appear in the Info.Implicits map because the documentation never said so and there's no way to map multiple objects to the same *ast.ImportSpec with the current data structure. Added missing test for Info.Implicits. The fix is a trivial one-line deletion, the rest is documentation and test. Fixes #21591. Change-Id: I12a37dab85c531911c9363ec3d58daa095c7eb24 Reviewed-on: https://go-review.googlesource.com/60672Reviewed-by: Alan Donovan <adonovan@google.com>
-
Rob Pike authored
The "build flags" mentioned in the documentation are only those that apply to analyzing packages and executing the tool. Fixes #21711. Change-Id: Ie7b2a354f1e30c928b40888c51fc68e599a5444a Reviewed-on: https://go-review.googlesource.com/60830Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Hiroshi Ioka authored
The approach of https://golang.org/cl/43476 turned out incorrect. The problem is that the sniff introduced by the CL only work for simple expression. And when it fails it fallback to uint64, not int64, which breaks backward compatibility. In this CL, we use DWARF for guessing kind instead. That should be more reliable than previous approach. And importanly, it fallbacks to int64 even if it fails to guess kind. Fixes #21708 Change-Id: I39a18cb2efbe4faa9becdcf53d5ac68dba180d46 Reviewed-on: https://go-review.googlesource.com/60510 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-