Lines Matching defs:analysis

109 type analysis struct {  struct
110 config *Config // the client's control/observer interface
111 prog *ssa.Program // the program being analyzed
112 log io.Writer // log stream; nil to disable
113 panicNode nodeid // sink for panic, source for recover
114 nodes []*node // indexed by nodeid
115 flattenMemo map[types.Type][]*fieldInfo // memoization of flatten()
116 trackTypes map[types.Type]bool // memoization of shouldTrack()
117 constraints []constraint // set of constraints
118 cgnodes []*cgnode // all cgnodes
119 genq []*cgnode // queue of functions to generate constraints for
120 intrinsics map[*ssa.Function]intrinsic // non-nil values are summaries for intrinsic fns
121 globalval map[ssa.Value]nodeid // node for each global ssa.Value
122 globalobj map[ssa.Value]nodeid // maps v to sole member of pts(v), if singleton
123 localval map[ssa.Value]nodeid // node for each local ssa.Value
124 localobj map[ssa.Value]nodeid // maps v to sole member of pts(v), if singleton
125 atFuncs map[*ssa.Function]bool // address-taken functions (for presolver)
126 mapValues []nodeid // values of makemap objects (indirect in HVN)
127 work nodeset // solver's worklist
128 result *Result // results of the analysis
129 track track // pointerlike types whose aliasing we track
130 deltaSpace []int // working space for iterating over PTS deltas
133 hasher typeutil.Hasher // cache of type hashes
134 reflectValueObj types.Object // type symbol for reflect.Value (if present)
135 reflectValueCall *ssa.Function // (reflect.Value).Call
136 reflectRtypeObj types.Object // *types.TypeName for reflect.rtype (if present)
137 reflectRtypePtr *types.Pointer // *reflect.rtype
138 reflectType *types.Named // reflect.Type
139 rtypes typeutil.Map // nodeid of canonical *rtype-tagged object for type T
140 reflectZeros typeutil.Map // nodeid of canonical T-tagged object for zero value
141 runtimeSetFinalizer *ssa.Function // runtime.SetFinalizer
147 func (a *analysis) enclosingObj(id nodeid) nodeid {
163 func (a *analysis) labelFor(id nodeid) *Label {
170 func (a *analysis) warnf(pos token.Pos, format string, args ...interface{}) {
179 func (a *analysis) computeTrackBits() {
365 func (a *analysis) callEdge(caller *cgnode, site *callsite, calleeid nodeid) {
398 func (a *analysis) dumpSolution(filename string, N int) {
426 func (a *analysis) showCounts() {