You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
garble/testdata/scripts
Daniel Martí 21bd89ff73 slight simplifications and alloc reductions
Reuse a buffer and a map across loop iterations, because we can.

Make recordTypeDone only track named types, as that is enough to detect
type cycles. Without named types, there can be no cycles.

These two reduce allocs by a fraction of a percent:

	name      old time/op         new time/op         delta
	Build-16          10.4s ± 2%          10.4s ± 1%    ~     (p=0.739 n=10+10)

	name      old bin-B           new bin-B           delta
	Build-16          5.51M ± 0%          5.51M ± 0%    ~     (all equal)

	name      old cached-time/op  new cached-time/op  delta
	Build-16          391ms ± 9%          407ms ± 7%    ~     (p=0.095 n=10+9)

	name      old mallocs/op      new mallocs/op      delta
	Build-16          34.5M ± 0%          34.4M ± 0%  -0.12%  (p=0.000 n=10+10)

	name      old sys-time/op     new sys-time/op     delta
	Build-16          5.87s ± 5%          5.82s ± 5%    ~     (p=0.182 n=10+9)

It doesn't seem like much, but remember that these stats are for the
entire set of processes, where garble only accounts for about 10% of the
total wall time when compared to the compiler or linker. So a ~0.1%
decrease globally is still significant.

linkerVariableStrings is also indexed by *types.Var rather than types.Object,
since -ldflags=-X only supports setting the string value of variables.
This shouldn't make a significant difference in terms of allocs,
but at least the map is less prone to confusion with other object types.
To ensure the new code doesn't trip up on non-variables, we add test cases.

Finally, for the sake of clarity, index into the types.Info maps like
Defs and Uses rather than calling ObjectOf if we know whether the
identifier we have is a definition of a name or the use of a defined name.
This isn't better in terms of performance, as ObjectOf is a tiny method,
but just like with linkerVariableStrings before, the new code is clearer.
3 years ago
..
asm.txt all: drop support for Go 1.17 3 years ago
basic.txt add missing context to two unmarshal errors 3 years ago
cgo.txt fix TODOs about code which is now unused 3 years ago
crossbuild.txt all: drop support for Go 1.17 3 years ago
debugdir.txt all: drop support for Go 1.17 3 years ago
embed.txt all: drop support for Go 1.17 3 years ago
goenv.txt properly quote the path to garble in -toolexec 3 years ago
gogarble.txt all: drop support for Go 1.17 3 years ago
goversion.txt all: drop support for Go 1.17 3 years ago
help.txt fix support with the latest Go master version 3 years ago
implement.txt all: drop support for Go 1.17 3 years ago
imports.txt support import paths ending with ".go" 3 years ago
init.txt all: drop support for Go 1.17 3 years ago
ldflags.txt slight simplifications and alloc reductions 3 years ago
linkname.txt all: drop support for Go 1.17 3 years ago
literals.txt Disable seed obfuscator (#535) 3 years ago
modinfo.txt all: drop support for Go 1.17 3 years ago
plugin.txt all: drop support for Go 1.17 3 years ago
position.txt all: drop support for Go 1.17 3 years ago
reflect.txt fix support with the latest Go master version 3 years ago
reverse.txt all: drop support for Go 1.17 3 years ago
seed-cache.txt all: drop support for Go 1.17 3 years ago
seed.txt all: drop support for Go 1.17 3 years ago
syntax.txt all: drop support for Go 1.17 3 years ago
test.txt skip unnecessary "refusing to list" test errors 3 years ago
tiny.txt all: drop support for Go 1.17 3 years ago
typeparams.txt fix hashing of generic field names 3 years ago