| DSA is changed since PLDI07 in (at least) the following ways: |
| |
| 1) DSA tracks types per offset. |
| 2) DSA does not assume that all clients will want to collapse a node if types |
| conflict. Many clients don't care that an offset is used as an int or a |
| double, they just care about the points-to result. |
| |
| In Progress: |
| |
| 1) DSA handles multiple entry points in a module. |
| 2) Optional assumption that only legal targets are called at indirect call sites |
| 3) Positional arguments, rather than pointer relative arguments. This handles |
| the case where pointer and ints are assumed compatible and function pointers |
| containing them are cast freely. |
| |