1
0
mirror of https://github.com/golang/go synced 2024-10-05 23:11:21 -06:00
go/src/cmd
Josh Bleecher Snyder 8c6abfeacb [dev.ssa] cmd/compile/ssa: separate logging, work in progress, and fatal errors
The SSA implementation logs for three purposes:

	* debug logging
	* fatal errors
	* unimplemented features

Separating these three uses lets us attempt an SSA
implementation for all functions, not just
_ssa functions. This turns the entire standard
library into a compilation test, and makes it
easy to figure out things like
"how much coverage does SSA have now" and
"what should we do next to get more coverage?".

Functions called _ssa are still special.
They log profusely by default and
the output of the SSA implementation
is used. For all other functions,
logging is off, and the implementation
is built and discarded, due to lack of
support for the runtime.

While we're here, fix a few minor bugs and
add some extra Unimplementeds to allow
all.bash to pass.

As of now, SSA handles 20.79% of the functions
in the standard library (689 of 3314).

The top missing features are:

 10.03%  2597 SSA unimplemented: zero for type error not implemented
  7.79%  2016 SSA unimplemented: addr: bad op DOTPTR
  7.33%  1898 SSA unimplemented: unhandled expr EQ
  6.10%  1579 SSA unimplemented: unhandled expr OROR
  4.91%  1271 SSA unimplemented: unhandled expr NE
  4.49%  1163 SSA unimplemented: unhandled expr LROT
  4.00%  1036 SSA unimplemented: unhandled expr LEN
  3.56%   923 SSA unimplemented: unhandled stmt CALLFUNC
  2.37%   615 SSA unimplemented: zero for type []byte not implemented
  1.90%   492 SSA unimplemented: unhandled stmt CALLMETH
  1.74%   450 SSA unimplemented: unhandled expr CALLINTER
  1.74%   450 SSA unimplemented: unhandled expr DOT
  1.71%   444 SSA unimplemented: unhandled expr ANDAND
  1.65%   426 SSA unimplemented: unhandled expr CLOSUREVAR
  1.54%   400 SSA unimplemented: unhandled expr CALLMETH
  1.51%   390 SSA unimplemented: unhandled stmt SWITCH
  1.47%   380 SSA unimplemented: unhandled expr CONV
  1.33%   345 SSA unimplemented: addr: bad op *
  1.30%   336 SSA unimplemented: unhandled OLITERAL 6

Change-Id: I4ca07951e276714dc13c31de28640aead17a1be7
Reviewed-on: https://go-review.googlesource.com/11160
Reviewed-by: Keith Randall <khr@golang.org>
2015-06-21 02:56:36 +00:00
..
addr2line cmd/addr2line: skip fork test on darwin/arm64 2015-04-12 11:53:24 +00:00
api go/importer: added go/importer package, adjusted go/types 2015-04-15 02:28:53 +00:00
asm all: fix misprints in comments 2015-06-11 14:18:57 +00:00
cgo cmd/cgo: wrap generated exports with extern "C" for C++ 2015-05-08 04:23:43 +00:00
compile [dev.ssa] cmd/compile/ssa: separate logging, work in progress, and fatal errors 2015-06-21 02:56:36 +00:00
cover cmd/cover: fix missing error check in test 2015-06-02 05:23:55 +00:00
dist [dev.ssa] Merge remote-tracking branch 'origin/master' into mbranch 2015-06-11 11:06:21 -07:00
doc cmd/doc: do not show unexported constants 2015-06-04 21:51:49 +00:00
fix all: use "reports whether" in place of "returns true if(f)" 2015-03-18 15:14:06 +00:00
go cmd/go: reject relative paths that don't start with a dot (.) 2015-06-11 16:13:37 +00:00
gofmt cmd/gofmt, go/format: refactor common pieces into internal/format 2015-04-01 17:35:26 +00:00
internal [dev.ssa] Merge remote-tracking branch 'origin/master' into mbranch 2015-06-11 11:06:21 -07:00
link all: fix misprints in comments 2015-06-11 14:18:57 +00:00
newlink cmd/link: move to cmd/newlink 2015-05-21 17:31:40 +00:00
nm cmd/nm: skip fork test on darwin/arm64 2015-04-12 11:52:22 +00:00
objdump all: fix misprints in comments 2015-06-11 14:18:57 +00:00
old5a cmd/old5a, cmd/old8a, cmd/old9a: rebuild y.go 2015-05-29 17:36:43 +00:00
old6a cmd/internal/obj: make Prog.From3 a pointer 2015-05-29 16:19:02 +00:00
old8a cmd/old5a, cmd/old8a, cmd/old9a: rebuild y.go 2015-05-29 17:36:43 +00:00
old9a cmd/old5a, cmd/old8a, cmd/old9a: rebuild y.go 2015-05-29 17:36:43 +00:00
pack all: retire architecture letter in file names, public API 2015-05-21 17:32:17 +00:00
pprof all: fix misprints in comments 2015-06-11 14:18:57 +00:00
trace cmd/...: fix vet issues and cull dead code 2015-04-18 01:47:28 +00:00
vet cmd/vet: skip another test on Android 2015-06-11 16:30:56 +00:00
yacc all: fix misprints in comments 2015-06-11 14:18:57 +00:00