The FSCI trace seems to work now
Rewrite Variable interface. Remove StructVar.
Added files needed to be tracked. Fix a use-after-free bug and a deref-NULL bug.
Added trace for k-CFA. We need to add command-line support so that user can switch between different traces. However, the current implementation is found to be incorrect because variables are treated context-insensitively. Need to add Environment.
Add command-line support to specify traces.
Rewrite the reference count framework using smart pointers. Made every class that needs reference counting a subclass of RefCountObject. Added Environment. Move every alloca instruction to DataFlowGraph. Need to add nextState() support for CALL and RETURN node.
Minor bug fixes
Finally the k-CFA analysis is working! This version passed every small test case that I have. If tested more heavily and no error is found, then we could take this commit as the basic "oracle" version whose output can be compared with that of future version for future correctness test.
Add get() function to class RefCountPtr
Implement sparse analysis but seems to be incorrect.
(Almost) fix all issues with semi-sparse analysis. More tests required though.
Minor bug fixes. Still has bug with structs_by_ref test case.
State.join() now also join any saved Env inside retK on the kontStack
Intraprocedural worklist reverse postordering added
Add equivalent top-level variable merging
Add empty node removal
Fixed a self-reference bug in nodeMerge(). Add trace reverse-postordering. The order is obtained by a recursive procedure now. Need to transform it into a non-recursive version.
This commit has passed more than 30 random test cases at 10K lines of LLVM IR.
Update to build with latest LLVM svn version
Fixed assignPriority RetNode bug?