| -*- text -*- | |
| Pointer analysis to-do list | |
| =========================== | |
| CONSTRAINT GENERATION: | |
| - support reflection: | |
| - a couple of operators are missing | |
| - reflect.Values may contain lvalues (CanAddr) | |
| - implement native intrinsics. These vary by platform. | |
| - add to pts(a.panic) a label representing all runtime panics, e.g. | |
| runtime.{TypeAssertionError,errorString,errorCString}. | |
| OPTIMISATIONS | |
| - pre-solver: | |
| pointer equivalence: extend HVN to HRU | |
| location equivalence | |
| - solver: HCD, LCD. | |
| - experiment with map+slice worklist in lieu of bitset. | |
| It may have faster insert. | |
| MISC: | |
| - Test on all platforms. | |
| Currently we assume these go/build tags: linux, amd64, !cgo. | |
| MAINTAINABILITY | |
| - Think about ways to make debugging this code easier. PTA logs | |
| routinely exceed a million lines and require training to read. | |
| BUGS: | |
| - There's a crash bug in stdlib_test + reflection, rVCallConstraint. | |