jzhou [Thu, 24 Mar 2011 00:12:27 +0000 (00:12 +0000)]
Bug fixes for gc
bdemsky [Wed, 23 Mar 2011 23:52:28 +0000 (23:52 +0000)]
get rid of length field....
jzhou [Wed, 23 Mar 2011 19:15:59 +0000 (19:15 +0000)]
Bug fixes for gc
jzhou [Wed, 23 Mar 2011 17:28:24 +0000 (17:28 +0000)]
Bug fix
stephey [Wed, 23 Mar 2011 12:56:25 +0000 (12:56 +0000)]
Moved all unused methods to the bottom of the file.
NOT yet ready to DELETE them for 2 reasons:
1) Some code is relevant to Jim's task of finding weakly connected heap groups.
2) If Jim ever decides that a state can have effects that go deeper than just 1 level (i.e. if we have effects that tell us that we can visit a.b.c without changing states), then we'd need to use the code to generate traversal graphs before printing. They've already been modified to (mostly) work with states, but just have a few small bugs from me changing other parts of the code.
stephey [Wed, 23 Mar 2011 10:22:39 +0000 (10:22 +0000)]
Changed a lot of things in RCR. It works for the most part (manually inspected with the state diagram from the power benchmark). There are minor issues with the printout such as empty { } and nothing being inlined since the refCount for states seems to NOT work. Also, there seems to be states with empty effects... which is weird. The major issue is that the buildcode has problems interfacing with the new code. Some problems, not even Jim could figure them out.
bdemsky [Wed, 23 Mar 2011 09:43:45 +0000 (09:43 +0000)]
bug fix
bdemsky [Wed, 23 Mar 2011 09:25:46 +0000 (09:25 +0000)]
bug fixes...
bdemsky [Wed, 23 Mar 2011 01:31:38 +0000 (01:31 +0000)]
bug fixes
jzhou [Wed, 23 Mar 2011 01:05:04 +0000 (01:05 +0000)]
Bug fixes in MGC verison. SPECjbb2005 is now working with 62-core gc.
stephey [Wed, 23 Mar 2011 01:00:01 +0000 (01:00 +0000)]
Jim told me to do this...
jjenista [Wed, 23 Mar 2011 00:35:14 +0000 (00:35 +0000)]
changed options in code to actually print reach states on genreach output graphs
jjenista [Wed, 23 Mar 2011 00:34:25 +0000 (00:34 +0000)]
a bug, fix it later
jjenista [Tue, 22 Mar 2011 23:44:06 +0000 (23:44 +0000)]
cc paper example, THERE IS A BUG
bdemsky [Tue, 22 Mar 2011 22:34:11 +0000 (22:34 +0000)]
bug fix
bdemsky [Tue, 22 Mar 2011 22:33:47 +0000 (22:33 +0000)]
bug fixes
bdemsky [Tue, 22 Mar 2011 09:26:25 +0000 (09:26 +0000)]
small bug
bdemsky [Tue, 22 Mar 2011 09:15:09 +0000 (09:15 +0000)]
fix mistake....allocnodes are like disjoint heapregionnodes...
create new class allocsitenode which is like allocsite from disjointness...
hacked rcr file so it would compile with this change..unclear if it will work correctly
bdemsky [Tue, 22 Mar 2011 07:15:49 +0000 (07:15 +0000)]
changes to give compiler run times for phases....
bdemsky [Tue, 22 Mar 2011 04:53:59 +0000 (04:53 +0000)]
change so that new analysis runs for all benchmarks
yeom [Tue, 22 Mar 2011 01:04:32 +0000 (01:04 +0000)]
bug fix on the glb function of the lattice + working on the checking with the composite lattice
stephey [Mon, 21 Mar 2011 09:15:53 +0000 (09:15 +0000)]
Work in progress... I need to rework how to handle the case if we have more than 1 starting location for each state.
Here's a TODO list for things out of my control:
1) Need total number of independent heaproots (for hashtable creation).
2) Need to be able to get connected component ID (heaproot ID) from current state.
3) Need to get to get Demsky's Pointer Analysis Graph (and someone should check the way I used it is correct, see createTraversalGraph and addToTraversalGraphStartingAt)
4) Fix the way BuildCodeOoOJavaCode gets a weakmap on line 1822
5) Need a list a list of Allocs that have transitions leading into them per state (needed to know where to start traversal from a transitioned-to state.)
6) See TODOs in SMFEState.java
bdemsky [Mon, 21 Mar 2011 07:44:46 +0000 (07:44 +0000)]
don't need to do pointer analysis in Main
bdemsky [Mon, 21 Mar 2011 06:22:37 +0000 (06:22 +0000)]
fixing bugs...
stephey [Sat, 19 Mar 2011 23:47:41 +0000 (23:47 +0000)]
Updated hashRCR and Queue_RCR to conform with new standards (i.e. storing both a ptr and a state). Fixed a bug in Queue_RCR where the first dequeue is a null.... Don't know how that could have been overlooked for so long and not cause an error...
yeom [Sat, 19 Mar 2011 01:44:14 +0000 (01:44 +0000)]
changes.
jjenista [Sat, 19 Mar 2011 01:21:49 +0000 (01:21 +0000)]
we took DFJ and broke its arm, and we'll reset the bones in an upcoming patch
bdemsky [Sat, 19 Mar 2011 00:55:37 +0000 (00:55 +0000)]
changes...extra accessible analysis
jzhou [Sat, 19 Mar 2011 00:18:11 +0000 (00:18 +0000)]
Fix bug for MGC garbage collection
jjenista [Fri, 18 Mar 2011 21:14:45 +0000 (21:14 +0000)]
changing to new traversers/examiners
bdemsky [Fri, 18 Mar 2011 21:14:12 +0000 (21:14 +0000)]
more bug fixes
bdemsky [Fri, 18 Mar 2011 09:47:08 +0000 (09:47 +0000)]
more changes...
bdemsky [Fri, 18 Mar 2011 08:53:34 +0000 (08:53 +0000)]
changes
bdemsky [Fri, 18 Mar 2011 08:37:57 +0000 (08:37 +0000)]
more changes
bdemsky [Fri, 18 Mar 2011 08:37:40 +0000 (08:37 +0000)]
add rcr-pointer option
bdemsky [Fri, 18 Mar 2011 08:32:33 +0000 (08:32 +0000)]
commit hacks to effect analysis...interfaces to allow disjoint/pointer analysis to be exchanged
bdemsky [Fri, 18 Mar 2011 05:23:19 +0000 (05:23 +0000)]
Patch in effects analysis hooks....have to add new accessor methods...add interface for allocsite...
bdemsky [Fri, 18 Mar 2011 01:40:40 +0000 (01:40 +0000)]
need to decouple effects from AllocSite
yeom [Fri, 18 Mar 2011 00:17:01 +0000 (00:17 +0000)]
a new compiler flag, "-printlinenum", has been added to print out line numbers in the generated C codes
jzhou [Fri, 18 Mar 2011 00:13:10 +0000 (00:13 +0000)]
Remove compilation errors for MGC code with gc
bdemsky [Fri, 18 Mar 2011 00:01:17 +0000 (00:01 +0000)]
my changes
yeom [Thu, 17 Mar 2011 19:18:55 +0000 (19:18 +0000)]
changes: propagating line number references to flatnodes
bdemsky [Thu, 17 Mar 2011 10:01:18 +0000 (10:01 +0000)]
more changes...
bdemsky [Thu, 17 Mar 2011 07:42:02 +0000 (07:42 +0000)]
more changes...do node-based taints...taint edges...change taintset...
bdemsky [Thu, 17 Mar 2011 05:44:05 +0000 (05:44 +0000)]
compiling again...
yeom [Thu, 17 Mar 2011 01:39:34 +0000 (01:39 +0000)]
keep the current snapshot before making further changes.
jzhou [Thu, 17 Mar 2011 00:49:19 +0000 (00:49 +0000)]
Fix compilation problems for multicore code
bdemsky [Thu, 17 Mar 2011 00:26:38 +0000 (00:26 +0000)]
changes towards taints
yeom [Wed, 16 Mar 2011 23:41:46 +0000 (23:41 +0000)]
changes on the java grammar. the line number of a source code propagates to the ParserNode
jzhou [Wed, 16 Mar 2011 23:18:16 +0000 (23:18 +0000)]
Bug fix. Now the SPECjbb2005 can run with small workload that does not invoke gc
bdemsky [Wed, 16 Mar 2011 22:56:56 +0000 (22:56 +0000)]
pushing changes
bdemsky [Wed, 16 Mar 2011 19:14:06 +0000 (19:14 +0000)]
starting towards taints
bdemsky [Tue, 15 Mar 2011 10:45:12 +0000 (10:45 +0000)]
bug fix...can now analyze specjbb...~44,000 lines of source code files in 42 seconds...
bdemsky [Tue, 15 Mar 2011 10:26:57 +0000 (10:26 +0000)]
small hacks to speed up stuff...don't compute graphs for primitive field read/writes...just reuse other graphs that are the same
bdemsky [Tue, 15 Mar 2011 09:53:19 +0000 (09:53 +0000)]
bug fixes for the day....lots of them
yeom [Tue, 15 Mar 2011 02:05:04 +0000 (02:05 +0000)]
refactoring the lattice implementation / having a way to declare the variable with delta locations(declared by using single-value annotation) / working on comparison of single,composite, and delta locations.
jzhou [Tue, 15 Mar 2011 00:10:53 +0000 (00:10 +0000)]
Fix bug for synchronized blocks. Inside a synchronized block, there could have return statements. Need to make sure that the locks grabbed should have been released before these return statements execute
bdemsky [Mon, 14 Mar 2011 02:26:47 +0000 (02:26 +0000)]
bug fix
bdemsky [Mon, 14 Mar 2011 02:26:34 +0000 (02:26 +0000)]
lots of bugs
jzhou [Sat, 12 Mar 2011 00:40:03 +0000 (00:40 +0000)]
Fix bug in Class Library
jjenista [Fri, 11 Mar 2011 23:20:52 +0000 (23:20 +0000)]
bug fixes
jjenista [Fri, 11 Mar 2011 22:15:56 +0000 (22:15 +0000)]
put together parts of DFJ that assumed we did not know the interprocedural parent set of a given task
bdemsky [Fri, 11 Mar 2011 07:34:02 +0000 (07:34 +0000)]
running on some benchmarks....
bdemsky [Fri, 11 Mar 2011 06:51:27 +0000 (06:51 +0000)]
another benchmark working
bdemsky [Fri, 11 Mar 2011 06:31:55 +0000 (06:31 +0000)]
a few more bugs fixed...lots of debug code
jjenista [Thu, 10 Mar 2011 23:02:35 +0000 (23:02 +0000)]
public interface for the later compiler phases
jjenista [Thu, 10 Mar 2011 22:12:05 +0000 (22:12 +0000)]
state machines for traverers seem to be working for small examples
bdemsky [Thu, 10 Mar 2011 09:46:04 +0000 (09:46 +0000)]
more bug fixes...
bdemsky [Thu, 10 Mar 2011 09:23:17 +0000 (09:23 +0000)]
even more bug fixes...3 test cases work
bdemsky [Thu, 10 Mar 2011 08:13:27 +0000 (08:13 +0000)]
more bug fixes...two examples working
bdemsky [Thu, 10 Mar 2011 07:40:55 +0000 (07:40 +0000)]
bug fixes...
jzhou [Thu, 10 Mar 2011 03:09:09 +0000 (03:09 +0000)]
Fix a bug of field initialization. Previously the field initializations are done in a reverse definition order. This could cause problem when a field's initialization depends on another fields initialization. As in the Java language specification, it is only specified that a instance field's initialization should be before its first usage in the field initializations, we simply change to do the field initializations in the same order as they are defined
bdemsky [Thu, 10 Mar 2011 02:10:12 +0000 (02:10 +0000)]
bug fixes
bdemsky [Wed, 9 Mar 2011 23:29:37 +0000 (23:29 +0000)]
changes
bdemsky [Wed, 9 Mar 2011 21:54:19 +0000 (21:54 +0000)]
changes
jzhou [Sun, 6 Mar 2011 01:56:03 +0000 (01:56 +0000)]
Fix bugs in Class Library
jzhou [Sun, 6 Mar 2011 00:24:45 +0000 (00:24 +0000)]
Shrink the size of the final binary. If it is too large it will have problem executing on Tilera. We compress the virtual dispatch table: we use one row to represent the methods defined in interfaces that have the same prototype; and we do not generate colums for interfaces as there can not be instances of interfaces. Moreover, we do not generate methods that are never invoked.
yeom [Sat, 5 Mar 2011 00:44:10 +0000 (00:44 +0000)]
introduce new flag -ssjava for enabling SSJava feature and start working on the implementation of flow-down rule checking plus minor updates.
jjenista [Sat, 5 Mar 2011 00:02:19 +0000 (00:02 +0000)]
more code for state machines in dfj traversers
jjenista [Fri, 4 Mar 2011 23:10:03 +0000 (23:10 +0000)]
extend taints for a new mode in DFJ that helps build the state machine traversers
jjenista [Fri, 4 Mar 2011 23:09:19 +0000 (23:09 +0000)]
a tiny example to show if the state machines are working
jjenista [Fri, 4 Mar 2011 23:08:40 +0000 (23:08 +0000)]
add a second task to generate conflicts
bdemsky [Fri, 4 Mar 2011 07:15:39 +0000 (07:15 +0000)]
changes
jzhou [Fri, 4 Mar 2011 02:30:57 +0000 (02:30 +0000)]
Fix bugs for interfaces. \n\nFor methods declared in interfaces, there always need virtual dispatch.\n\n The other bug is that previously the method numbering strategy always start from 0 when numbering a class'es method. When there are no interfaces, all classes form a tree with Object as the root and the numbering works fine. But with interfaces, the inherit hierachy would no longer be a tree and there will have serious problems. #0 would be always assigned to some method of Object and every interfaces. If a Class implements any interfaces, it would have at least two methods with #0 and it would only be able to access one of it and lose the others. Also we need to make sure that each method of a interface should have a distinguished number so that when a class implements multiple interfaces, it would not lose access of any of the methods defined in the interfaces. So when numbering the methods in Virtual, we first numbering all the methods in the interfaces and give them a distinguished number. Then we numbering the classes and start from the following number. As interfaces could have methods with the same name, a method in a class could match multiple entries in its super interfaces/classes. We record all these entries in order to fill in the virtual table correctly
yeom [Thu, 3 Mar 2011 19:33:42 +0000 (19:33 +0000)]
add grammar for the definition of location hierarchy. location hierarchy is stored in the lattice data structure. class descriptor has a lattice object since each class maintains its own location hierarchy,
jjenista [Thu, 3 Mar 2011 19:33:29 +0000 (19:33 +0000)]
a functioning test program for stephen that produces a bad traverser for current dfj system
jjenista [Thu, 3 Mar 2011 18:31:32 +0000 (18:31 +0000)]
a test case showing a bug in disjoint analysis basic points-to stuff
bdemsky [Thu, 3 Mar 2011 09:10:19 +0000 (09:10 +0000)]
more code changes
jzhou [Thu, 3 Mar 2011 02:44:16 +0000 (02:44 +0000)]
Add unit tests for Abstract class support, Enum type support, Field Initializer support, Interface support, Static inner class support, static field/block support, switch-case statement support, and try-catch support
jzhou [Thu, 3 Mar 2011 02:19:59 +0000 (02:19 +0000)]
Remove commented out code
bdemsky [Thu, 3 Mar 2011 02:08:11 +0000 (02:08 +0000)]
changes
jzhou [Thu, 3 Mar 2011 02:07:49 +0000 (02:07 +0000)]
Fix bugs for interfaces and a bug in the Class library
bdemsky [Thu, 3 Mar 2011 01:56:17 +0000 (01:56 +0000)]
more changes
bdemsky [Wed, 2 Mar 2011 23:20:17 +0000 (23:20 +0000)]
more code cleanup
bdemsky [Wed, 2 Mar 2011 22:53:45 +0000 (22:53 +0000)]
code cleanup
bdemsky [Wed, 2 Mar 2011 22:05:52 +0000 (22:05 +0000)]
changes towards making this work
jzhou [Wed, 2 Mar 2011 19:29:10 +0000 (19:29 +0000)]
A small bug for Enum
jzhou [Wed, 2 Mar 2011 19:28:38 +0000 (19:28 +0000)]
Fix the field name for object.c and thread.c, there are no Class name prefix anymore
jzhou [Wed, 2 Mar 2011 00:42:13 +0000 (00:42 +0000)]
Fix bugs for static fields/blocks and instanceof operation. To effectively support static fields/blocks, we need to generate a special version for methods that could be invoked in static blocks or when initializing static fields. In the special version, if there are classes with static fields/blocks are involved, we'll check if the static fields have been initialized and if the static blocks have been executed. Previously we misused C micros to implement this(MGC_STATIC_INIT_CHECK). Now we remove this wrong macro and generate the required special version. For instanceof operation, we fix two bugs. One is that previously we did not take interfaces into consider and the other is that in the instanceof(struct Object *, int) function we did not check if the Object is NULL or not. If the Object is NULL, we shall always return false.
yeom [Tue, 1 Mar 2011 22:49:11 +0000 (22:49 +0000)]
add annotation descriptor. type descriptor is responsible for keeping corresponding annotations.