1
0
mirror of https://github.com/golang/go synced 2024-11-18 18:14:43 -07:00
The Go programming language
Go to file
Alan Donovan 3371b79a96 go.tools/pointer: reflect, part 2: channels.
(reflect.Value).Send
        (reflect.Value).TrySend
        (reflect.Value).Recv
        (reflect.Value).TryRecv
        (reflect.Type).ChanOf
        (reflect.Type).In
        (reflect.Type).Out
        reflect.Indirect
        reflect.MakeChan

Also:
- specialize genInvoke when the receiver is a reflect.Type under the
  assumption that there's only one possible concrete type.  This
  makes all reflect.Type operations context-sensitive since the calls
  are no longer dynamic.
- Rename all variables to match the actual parameter names used in
  the reflect API.
- Add pointer.Config.Reflection flag
  (exposed in oracle as --reflect, default false) to enable reflection.
  It currently adds about 20% running time.  I'll make it true after
  the presolver is implemented.
- Simplified worklist datatype and solver main loop slightly
  (~10% speed improvement).
- Use addLabel() utility to add a label to a PTS.

(Working on my 3 yr old 2x2GHz+4GB Mac vs 8x4GHz+24GB workstation,
one really notices the cost of pointer analysis.
Note to self: time to implement presolver.)

R=crawshaw
CC=golang-dev
https://golang.org/cl/13242062
2013-09-23 16:13:01 -04:00
blog go.tools/blog: use atom and present packages from go.tools 2013-09-19 10:58:36 +10:00
cmd go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00
dashboard go.tools/dashboard: add option to build gccgo revisions 2013-09-11 16:45:24 -07:00
go go.tools/go/types: enable more std lib tests 2013-09-20 10:09:40 -07:00
godoc go.tools/blog: use atom and present packages from go.tools 2013-09-19 10:58:36 +10:00
importer go.tools/go/types: separate package descriptor from package object 2013-09-13 09:52:57 -07:00
oracle go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00
playground go.tools/playground/socket: move package from go.talks 2013-09-19 10:59:00 +10:00
pointer go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00
present go.tools/godoc/present: move present package from go.talks 2013-09-19 10:55:46 +10:00
ssa go.tools/ssa: fix ssa tests (fix build partly) 2013-09-18 11:39:55 -07:00
.hgignore go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
codereview.cfg go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README go.tools: provide the right README 2013-05-17 12:55:10 -07:00

This subrepository holds the source for various packages and tools that support
the Go programming language.

Although at least some of the tools themselves will be included in binary Go distributions,
the packages from which they are built are of little interest to most Go programmers.

To submit changes to this repository, see http://golang.org/doc/contribute.html.