aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/base/hashdebug_test.go
AgeCommit message (Collapse)Author
2023-05-23cmd/compile: indicate sense of hash/bisect match in outputDavid Chase
If a hash match is "disabled" (!enabled) indicate that in the output with DISABLED. This is helpful in ensuring that multiple package-directed command-line flags have the intended behavior, e.g. ``` go build -a \ -gcflags=all=-d=gossahash=vn \ -gcflags=runtime=-d=gossahash=vy \ std ``` Output looks like [DISABLED] [bisect-match 0x11d0ee166d9d61b4] or (w/ "v"-prefixed hashcode ) sort/slice.go:23:29 note [DISABLED] [bisect-match 0xa5252e1c1b85f2ec] gossahash triggered sort/slice.go:23:29 note [DISABLED] 100001011111001011101100 Change-Id: I797e02b3132f9781d97bacd0dcd2e80af0035cd8 Reviewed-on: https://go-review.googlesource.com/c/go/+/497216 Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2023-05-10cmd/compile: add ability to print extra information in bisect outputRuss Cox
Change-Id: I619c21ab9754f67b69215cfed238a3e489c7fbcf Reviewed-on: https://go-review.googlesource.com/c/go/+/493955 Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Russ Cox <rsc@golang.org>
2023-05-09cmd/compile: use more of internal/bisect in HashDebugRuss Cox
Using more of internal/bisect gives us more that will be deleted from base/hashdebug.go when we have updated the tools that need the old protocol. It is also cheaper: there is no allocation to make a decision about whether to enable, and no locking unless printing is needed. Change-Id: I43ec398461205a1a9e988512a134ed6b3a3b1587 Reviewed-on: https://go-review.googlesource.com/c/go/+/493736 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
2023-05-05cmd/compile: work with new bisect commandRuss Cox
CL 491875 introduces a new bisect command, which we plan to document for use by end users to debug semantic changes in the compiler and in GODEBUGs. This CL adapts the existing GOSSAHASH support, which bisect is a revision of, to support the specific syntax and output used by bisect as well. A followup CL will remove the old GOSSAHASH syntax and output once existing consumers of that interface have been updated. Change-Id: I99c4af54bb82c91c74bd8b8282ded968e6316f56 Reviewed-on: https://go-review.googlesource.com/c/go/+/491895 Auto-Submit: Russ Cox <rsc@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: David Chase <drchase@google.com>
2022-11-04cmd/compile: change the multiple (gossa)hash separator from ; to /David Chase
Semicolon has bad copy-paste ergonomics; it requires quoting. Slash is okay, and won't be a separator ever in debug strings because it is already used in e.g. ssa/phase/debug=etc. Change-Id: I493360e9282666eea1a342971a77df2ebd6c92ad Reviewed-on: https://go-review.googlesource.com/c/go/+/447975 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: David Chase <drchase@google.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-11-02cmd/compile: renovate GOSSAHASHDavid Chase
Randomized feature enable/disable might be something we use to help users debug any problems with changed loop variable capture, and there's another CL that would like to use it to help in locating places where "fused" multiply add instructions change program behavior. This CL: - adds the ability to include an integer parameter (e.g. line number) - replumbed the environment variable into a flag to simplify go build cache management - but added an environment variable to allow flag setting through the environment - which adds the possibility of switching on a different variable (if there's one built-in for variable capture, it shouldn't be GOSSAHASH) - cleaned up the checking code - adds tests for all the intended behavior - removes the case for GSHS_LOGFILE; TBD whether we'll need to put that back or if there is another way. Change-Id: I8503e1bb3dbc4a743aea696e04411ea7ab884787 Reviewed-on: https://go-review.googlesource.com/c/go/+/443063 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: David Chase <drchase@google.com>