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.
bdemsky [Tue, 1 Mar 2011 05:39:54 +0000 (05:39 +0000)]
changes...
yeom [Tue, 1 Mar 2011 01:48:09 +0000 (01:48 +0000)]
add java 1.5 annotation grammar for all types of annotation(marker, single value, and value pairs) but the current implementation only supports marker annotations which have no variables, just the annotation name.
bdemsky [Mon, 28 Feb 2011 21:48:36 +0000 (21:48 +0000)]
missing include
bdemsky [Mon, 28 Feb 2011 06:45:25 +0000 (06:45 +0000)]
changes
bdemsky [Mon, 28 Feb 2011 05:15:56 +0000 (05:15 +0000)]
changes
bdemsky [Mon, 28 Feb 2011 05:07:05 +0000 (05:07 +0000)]
add garbage collector support...
bdemsky [Mon, 28 Feb 2011 04:52:09 +0000 (04:52 +0000)]
setup globals as a garbagelist...split primitives into separate file
bdemsky [Mon, 28 Feb 2011 04:39:52 +0000 (04:39 +0000)]
work towards turning MGC enhancements on all the time
jzhou [Sat, 26 Feb 2011 02:53:46 +0000 (02:53 +0000)]
Remove the extra copy of static field in the object structures and change the classobj in global_defs_p as pointers. Also take interfaces into consider when do instanceof check in MGC runtime. There are still bugs to check instanceof for arrays
bdemsky [Sat, 26 Feb 2011 00:49:58 +0000 (00:49 +0000)]
tabbing
bdemsky [Sat, 26 Feb 2011 00:41:54 +0000 (00:41 +0000)]
big code reorg...get TM out of buildcode
jzhou [Sat, 26 Feb 2011 00:28:37 +0000 (00:28 +0000)]
My changes to add interface affect to FieldShadow
jzhou [Fri, 25 Feb 2011 19:39:33 +0000 (19:39 +0000)]
Make new field naming strategy work for MGC
bdemsky [Fri, 25 Feb 2011 01:26:17 +0000 (01:26 +0000)]
make static fields work
bdemsky [Fri, 25 Feb 2011 01:24:46 +0000 (01:24 +0000)]
commit bug fix
bdemsky [Fri, 25 Feb 2011 01:15:48 +0000 (01:15 +0000)]
fix tabbing
bdemsky [Fri, 25 Feb 2011 01:12:31 +0000 (01:12 +0000)]
throw away commented code
bdemsky [Fri, 25 Feb 2011 01:06:18 +0000 (01:06 +0000)]
rename a few fields
bdemsky [Fri, 25 Feb 2011 01:05:41 +0000 (01:05 +0000)]
make field shadowing work
bdemsky [Fri, 25 Feb 2011 01:00:44 +0000 (01:00 +0000)]
changes
bdemsky [Fri, 25 Feb 2011 00:51:21 +0000 (00:51 +0000)]
change
bdemsky [Fri, 25 Feb 2011 00:50:30 +0000 (00:50 +0000)]
bug fix
bdemsky [Fri, 25 Feb 2011 00:45:44 +0000 (00:45 +0000)]
rename field names
bdemsky [Fri, 25 Feb 2011 00:42:59 +0000 (00:42 +0000)]
new approach to field shadowing
bdemsky [Fri, 25 Feb 2011 00:22:36 +0000 (00:22 +0000)]
changes
jzhou [Thu, 24 Feb 2011 20:09:26 +0000 (20:09 +0000)]
Fix a bug of default constructor: the default constructor should construct the super class if there is any and also initialize the fields with initializers.
jzhou [Thu, 24 Feb 2011 01:04:32 +0000 (01:04 +0000)]
Fix a shadow field related bug in the compiler. Defined in Java language specification, if the class declares a field with a certain name, then the declaration of that field is said to hide any and all accessible declarations of fields with the same name in superclasses, and superinterfaces of the class. However, the hidden fields in superclasses or superinterfaces can still be accessed by using a qualified name (if it is static) or by using a field access expression that contains the keyword super or a cast to a superclass type. Previously, our compiler simply discarded all the hidden fields so that the hidden fields can never be accessed. Now we maitain all the fields including the hidden ones. We prefix the name of the class that defines the field to the field's name to differentiate the shadow field and the hidden fields. Some of the hard coded fields dereference in the Runtime C code are fixed accordingly. Now the unit tests, multicore benchmarks and oooJava related benchmarks are checked to be OK. But (D)STM related Runtime code are NOT checked yet.
jzhou [Sat, 19 Feb 2011 00:55:50 +0000 (00:55 +0000)]
Add some runtime support for MGC
jzhou [Fri, 18 Feb 2011 18:53:13 +0000 (18:53 +0000)]
Bug fix in array initialization: handle the special case like {{null,null}}
jzhou [Fri, 18 Feb 2011 01:45:00 +0000 (01:45 +0000)]
Bug fixes for MGC
jzhou [Fri, 18 Feb 2011 01:32:38 +0000 (01:32 +0000)]
Updates of the class library for MGC
jzhou [Sat, 12 Feb 2011 00:43:15 +0000 (00:43 +0000)]
some bug fix
jzhou [Sat, 12 Feb 2011 00:40:45 +0000 (00:40 +0000)]
Make special MGC versions of some library class like HashMap and Vector etc. to avoid braking compilation of non-MGC build
jzhou [Sat, 12 Feb 2011 00:14:54 +0000 (00:14 +0000)]
*** empty log message ***
jzhou [Sat, 12 Feb 2011 00:06:13 +0000 (00:06 +0000)]
More class library support for SPECjbb
jzhou [Fri, 4 Feb 2011 01:43:36 +0000 (01:43 +0000)]
As static blocks is compiled as a method without returntype, previous isConstructor check should be updated
jzhou [Fri, 4 Feb 2011 01:36:33 +0000 (01:36 +0000)]
Class library for SPECjbb
bdemsky [Fri, 4 Feb 2011 01:05:05 +0000 (01:05 +0000)]
take pointer analysis out of the build for now
jjenista [Fri, 4 Feb 2011 01:02:49 +0000 (01:02 +0000)]
improve code gen to omit empty switch cases for stall sites
jzhou [Fri, 4 Feb 2011 00:47:47 +0000 (00:47 +0000)]
Roll back to use the simple Class constructor to support class lock. Fix a bug for static field initialization: the initialization of a static field was invoked each time the field is used. The initialization of a static field should be invoked only once and be invoked before it is used. To simplify the implementation, we create a static block to contain the initializations of all the static fields of a class and invoke this static block at the beginning of the main method.
bdemsky [Fri, 4 Feb 2011 00:23:00 +0000 (00:23 +0000)]
changes
jjenista [Thu, 3 Feb 2011 23:07:40 +0000 (23:07 +0000)]
fixing bugs from task code cleanup
jjenista [Thu, 3 Feb 2011 22:15:00 +0000 (22:15 +0000)]
This is a compile-stable update of OoOJava code, there are almost certainly bugs lurking...
jjenista [Thu, 3 Feb 2011 08:33:30 +0000 (08:33 +0000)]
bringing ooojava code gen around, some todos still to work out
jjenista [Wed, 2 Feb 2011 22:06:41 +0000 (22:06 +0000)]
BuildCode, with the monkey of OoOJava off its back
jjenista [Tue, 1 Feb 2011 20:28:31 +0000 (20:28 +0000)]
bringing analysis up to clean model, buildcode is left
jjenista [Tue, 1 Feb 2011 16:38:28 +0000 (16:38 +0000)]
starting to get into memory conflicts where cleaned up task model has more impact
jjenista [Tue, 1 Feb 2011 00:54:30 +0000 (00:54 +0000)]
honor the easy request of suppressing output for the disjoint reach pass that is the points-to only pass
jjenista [Tue, 1 Feb 2011 00:46:30 +0000 (00:46 +0000)]
pushing cleaned code further through analyses...
jjenista [Mon, 31 Jan 2011 23:41:31 +0000 (23:41 +0000)]
clean Pointer classes
jjenista [Mon, 31 Jan 2011 21:31:44 +0000 (21:31 +0000)]
cleaning up OoOJava and related systems, touching lots of files, these systems are PARTIALLY updated, the system is stable but won't compile user programs correctly until fully updated
bdemsky [Fri, 28 Jan 2011 08:13:04 +0000 (08:13 +0000)]
more changes...
jzhou [Fri, 28 Jan 2011 01:58:29 +0000 (01:58 +0000)]
Fix the bug of assignment conversion: 'short s = 12' should be allowed. And for such case, in BuildFlat.java the right side of the assignment is replaced with the value.
stephey [Thu, 27 Jan 2011 23:39:33 +0000 (23:39 +0000)]
Removed vestigial code left over from "waiting queues". Scratch previous comment about removing the need to coalesce weakly connected groups.
jzhou [Thu, 27 Jan 2011 23:15:27 +0000 (23:15 +0000)]
A missing file
stephey [Thu, 27 Jan 2011 22:12:49 +0000 (22:12 +0000)]
The second to last check in for the refactoring process. This moved/renamed some things to make the code more obvious. The last checkin will eliminate the need to coalesce connected heap groups.
bdemsky [Thu, 27 Jan 2011 19:46:30 +0000 (19:46 +0000)]
more changes
jzhou [Thu, 27 Jan 2011 19:26:16 +0000 (19:26 +0000)]
Enable array creation with initialization for MGC. Now array initialization is fully supported in MGC.
jzhou [Thu, 27 Jan 2011 19:05:30 +0000 (19:05 +0000)]
Enable field array initialization for MGC
bdemsky [Thu, 27 Jan 2011 00:54:44 +0000 (00:54 +0000)]
more changes
jzhou [Thu, 27 Jan 2011 00:51:49 +0000 (00:51 +0000)]
Basic implementation of array initialization for mgc: local array declaration with array initialization is OK now. Need more work to enable array field declaration with initialization and array creation with initialization. Also fix a bug: previously do not support static fields that are object/array.
bdemsky [Wed, 26 Jan 2011 23:04:52 +0000 (23:04 +0000)]
more work towards new points to analysis
bdemsky [Wed, 26 Jan 2011 09:48:53 +0000 (09:48 +0000)]
changes
bdemsky [Tue, 25 Jan 2011 09:11:59 +0000 (09:11 +0000)]
more changes
bdemsky [Tue, 25 Jan 2011 08:18:59 +0000 (08:18 +0000)]
more changes
bdemsky [Tue, 25 Jan 2011 00:37:09 +0000 (00:37 +0000)]
more changes
jzhou [Mon, 24 Jan 2011 22:14:25 +0000 (22:14 +0000)]
Some changes to enable SPECjbb for MGC version. Enable the compilation for 1. class type, 2. try-catch-finally, 3. transient modifier, 4. array-create-init statement. Now the compiler can parse code with these features but does not process them. Also add some interfaces for String, FileOutputStream classes.
bdemsky [Sat, 22 Jan 2011 06:27:41 +0000 (06:27 +0000)]
beginning of points-to analysis
stephey [Sat, 22 Jan 2011 00:58:26 +0000 (00:58 +0000)]
We fixed the bug of where to find the stallsite reachgraph. \n\n We found an even BIGGER, SYSTEM-WIDE BUG whereby the Conflict Graph of stallsites were stored with the stallsite's parent's parent. However, since many components rely on this bug, we decided to leave it alone but left giant notes explaining the situation.
stephey [Fri, 21 Jan 2011 04:11:23 +0000 (04:11 +0000)]
Corrected reach graph issue with SESE BLOCKS ONLY. There seems to be an error with stallsites that I'll fix with Jim later. I've merged some redundant functions and broke up complicated ones. There's just more organizational work to do now for it to make more intuitive sense.
stephey [Thu, 20 Jan 2011 07:49:49 +0000 (07:49 +0000)]
Split graph construction into 2 steps (one for pruned creation and one for marking conflicts). Dumbed down the logic in ConcreteRuntimeObjNode. Found a inefficiency whereby the graph is recreated with EVERY INSET VARIABLE, but I'll fix that another night.
stephey [Fri, 14 Jan 2011 01:58:39 +0000 (01:58 +0000)]
RCR was only one using Tuple.java so I renamed it to Pair.java. Checked that nothing broke.
jjenista [Wed, 12 Jan 2011 22:46:28 +0000 (22:46 +0000)]
tests for playing around with analysis with respect to empty reach states
jjenista [Mon, 10 Jan 2011 23:31:49 +0000 (23:31 +0000)]
just a little change to keep genreach debug node from getting wiped out during optimization
jjenista [Mon, 10 Jan 2011 23:29:26 +0000 (23:29 +0000)]
test that the genreach flat node doesn't get wiped away by java optimization
jjenista [Mon, 10 Jan 2011 22:55:43 +0000 (22:55 +0000)]
just checking that the genreach debug statement works
jjenista [Mon, 10 Jan 2011 19:41:07 +0000 (19:41 +0000)]
put optional stuff for debugging disjoint reachability analysis into the makefile
jjenista [Mon, 10 Jan 2011 19:40:35 +0000 (19:40 +0000)]
enforce monotonicity in heap contributions from call sites
jjenista [Mon, 10 Jan 2011 19:39:50 +0000 (19:39 +0000)]
make reach graph visualizations tractable
jzhou [Mon, 10 Jan 2011 18:25:25 +0000 (18:25 +0000)]
Add support for try-catch-finally statement for MGC version. Do not fully support exceptions yet. Only guarantee the execution when there are no exceptions
stephey [Sun, 9 Jan 2011 00:04:56 +0000 (00:04 +0000)]
Checking in the small changes before I work on the big ones.