34 lines
		
	
	
		
			906 B
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			906 B
		
	
	
	
		
			Plaintext
		
	
	
	
| -*- 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.
 | |
| 
 | |
| 
 |