1
0
mirror of https://github.com/golang/go synced 2024-11-19 04:04:47 -07:00
go/pointer/testdata
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
..
a_test.go go.tools/pointer: inclusion-based pointer analysis for Go. 2013-08-22 12:27:55 -04:00
another.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
arrayreflect.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
arrays.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
channels.go go.tools/ssa: fix bad type info in 'for _ = range channel'. 2013-08-27 11:18:31 -04:00
chanreflect1.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
chanreflect.go go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00
context.go go.tools/pointer: inclusion-based pointer analysis for Go. 2013-08-22 12:27:55 -04:00
conv.go go.tools/pointer: inclusion-based pointer analysis for Go. 2013-08-22 12:27:55 -04:00
finalizer.go go.tools/pointer: inclusion-based pointer analysis for Go. 2013-08-22 12:27:55 -04:00
flow.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
fmtexcerpt.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
func.go go.tools/pointer: fix pointer tests (fix build partly) 2013-09-18 11:37:26 -07:00
funcreflect.go go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00
hello.go go.tools/pointer: inclusion-based pointer analysis for Go. 2013-08-22 12:27:55 -04:00
interfaces.go go.tools/pointer: fix pointer tests (fix build partly) 2013-09-18 11:37:26 -07:00
mapreflect.go go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00
maps.go go.tools/pointer: fix pointer tests (fix build partly) 2013-09-18 11:37:26 -07:00
panic.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
recur.go go.tools/pointer: inclusion-based pointer analysis for Go. 2013-08-22 12:27:55 -04:00
reflect.go go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00
structreflect.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00
structs.go go.tools/pointer: reflection, part 1: maps, and some core features. 2013-09-16 09:49:10 -04:00