tools/go/pointer
Alan Donovan 9b38eafe60 go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization.
This reduces solver time by about 40%.
See hvn.go for detailed description.

Also in this CL:
- Update package docs.
- Added various global opt/debug options for maintainer convenience.
- Added logging of phase timing.
- Added stdlib_test, disabled by default, that runs the analysis
  on all tests in $GOROOT.
- include types when dumping solution

LGTM=crawshaw
R=crawshaw, dannyb
CC=golang-codereviews
https://golang.org/cl/96650048
2014-06-16 15:46:07 -04:00
..
testdata go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
TODO go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
analysis.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
api.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
callgraph.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
constraint.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
doc.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
example_test.go go.tools/go/loader: add Config.ParserMode configuration parameter. 2014-03-27 12:50:26 -04:00
gen.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
hvn.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
intrinsics.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
labels.go go.tools: fix various typos 2014-05-02 14:38:08 -07:00
opt.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
pointer_test.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
print.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
reflect.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
solve.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
stdlib_test.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00
util.go go/pointer: implement pointer equivalence via hash-value numbering, a pre-solver optimization. 2014-06-16 15:46:07 -04:00