jzhou [Fri, 20 Jan 2012 01:54:03 +0000 (01:54 +0000)]
changes to MGC classlibrary
jjenista [Fri, 20 Jan 2012 01:42:22 +0000 (01:42 +0000)]
running new experiments
yeom [Fri, 20 Jan 2012 00:30:49 +0000 (00:30 +0000)]
have another way to assign a THIS LOCATION to method: using @THISLOC annotation on the method declaration as the example section of ssjava paper.
jzhou [Wed, 18 Jan 2012 01:17:20 +0000 (01:17 +0000)]
changes to MGC class library
jjenista [Tue, 17 Jan 2012 23:24:05 +0000 (23:24 +0000)]
predicates are not feasible to flip on and off. The entire splicing mechanism for interprocedural analysis uses predicates of callee elements to match fuse points in the caller context. This is critical because all the caller context heap references and variables out of the callee context can commonly reference different nodes after callee analysis. When you remove predicates and bring the entire callee context into the caller, the current system *correctly* has no fuse points for the callee elements and wouldn't reference them.
jjenista [Tue, 17 Jan 2012 22:58:14 +0000 (22:58 +0000)]
fix up summarize-per-class mode
jjenista [Tue, 17 Jan 2012 19:48:51 +0000 (19:48 +0000)]
get set up for experiment: test impact of disabling components
jjenista [Mon, 9 Jan 2012 19:10:15 +0000 (19:10 +0000)]
defreach experiment
jjenista [Mon, 9 Jan 2012 19:09:11 +0000 (19:09 +0000)]
convergence test for defreach
jjenista [Fri, 6 Jan 2012 23:41:12 +0000 (23:41 +0000)]
this little example only parallelizes for oooj with defreach
jzhou [Fri, 6 Jan 2012 22:21:16 +0000 (22:21 +0000)]
add System.nanoTimes() support in MGC version
jjenista [Fri, 6 Jan 2012 21:44:49 +0000 (21:44 +0000)]
get this dir too
jjenista [Fri, 6 Jan 2012 19:02:29 +0000 (19:02 +0000)]
not working out like I wanted
jjenista [Fri, 6 Jan 2012 18:14:26 +0000 (18:14 +0000)]
a useful example that needs defreach
jjenista [Fri, 6 Jan 2012 18:13:30 +0000 (18:13 +0000)]
tweaks for running definite reach
jzhou [Thu, 5 Jan 2012 01:26:50 +0000 (01:26 +0000)]
remove the '$' in the C code as tilera does not allow it
jzhou [Wed, 4 Jan 2012 01:25:14 +0000 (01:25 +0000)]
remove the '$' in the C code as tilera does not allow it
jzhou [Fri, 30 Dec 2011 00:21:56 +0000 (00:21 +0000)]
accidentally changed this makefile, roll it back
jzhou [Fri, 30 Dec 2011 00:18:30 +0000 (00:18 +0000)]
changes to classes
jzhou [Wed, 28 Dec 2011 00:48:54 +0000 (00:48 +0000)]
changes to MGC class library
jzhou [Wed, 21 Dec 2011 02:00:30 +0000 (02:00 +0000)]
Another bug fix for inner class code: when trying to find a field in the surrounding classes, the this was wrongly constructred.
jzhou [Tue, 20 Dec 2011 00:15:20 +0000 (00:15 +0000)]
Fix some inner class related bugs: 1) whenever a class is added into the class list of state, it should check its inner class list to do addOuterClassParam() and addOuterClassReferences() operations, previously a lot of this checking is missing 2) previously the ith lexically enclosing instance for a deeply nested inner class was wrongly passed in to the inner class' constructor
yeom [Fri, 16 Dec 2011 19:58:12 +0000 (19:58 +0000)]
test case for the ownership checking
jzhou [Fri, 16 Dec 2011 01:42:49 +0000 (01:42 +0000)]
changes to MGC class library
yeom [Thu, 15 Dec 2011 21:57:19 +0000 (21:57 +0000)]
Finally, all benchmarks pass the definitely written analysis
yeom [Thu, 15 Dec 2011 21:32:43 +0000 (21:32 +0000)]
New shared loc analysis found a shared location that is not overwritten completely in the synthesis filter. Decoder adds input samples to the Synthesis Filter in circular fashion, which means it needs to keep the last position of the previous loop of the decode to the circular queue. However, the value of start index does not matter because the synthesis filter resumes a normal behavior, as long as data is added to the synthesis filter in a row. Therefore, a workaround solution is that BitStream, which is trusted to ss, assigns the index of header that is incremented by one, and then the decoder overwrites the location of the last position in the Synthesis Filter using the header index. Even the header index value is corrupted, the synthesis filter will resume because BitStream is going to providing following headers.
jzhou [Thu, 15 Dec 2011 02:07:29 +0000 (02:07 +0000)]
changes to MGC class library
yeom [Thu, 15 Dec 2011 01:27:15 +0000 (01:27 +0000)]
associate assignment nodes that writes to the same height location with corresponding flat nodes in order to check definitely written rules easily.
yeom [Thu, 15 Dec 2011 01:21:45 +0000 (01:21 +0000)]
fix mp3decoder: clear memory locations that are not overwritten.
jzhou [Wed, 14 Dec 2011 01:38:54 +0000 (01:38 +0000)]
changes to MGC class library
yeom [Tue, 13 Dec 2011 01:43:14 +0000 (01:43 +0000)]
changes.
jzhou [Tue, 13 Dec 2011 01:02:51 +0000 (01:02 +0000)]
Changes to MGC class library and some missing unit test files for inner class
yeom [Mon, 12 Dec 2011 19:51:01 +0000 (19:51 +0000)]
fix another bug: callee propagated wrong write effects associated with its local vars to the caller's may-write set.
yeom [Mon, 12 Dec 2011 01:18:55 +0000 (01:18 +0000)]
more changes, but still broken with mp3decoder
jzhou [Sat, 10 Dec 2011 01:24:01 +0000 (01:24 +0000)]
Changes to MGC class library and fix a bug regarding nested inline class declaration
yeom [Sat, 10 Dec 2011 00:17:50 +0000 (00:17 +0000)]
changes.
yeom [Fri, 9 Dec 2011 02:28:27 +0000 (02:28 +0000)]
fix a nasty bug: writes on local array elements was treated as field writes.
yeom [Thu, 8 Dec 2011 02:10:50 +0000 (02:10 +0000)]
fix heap path propagation and generate error msg with more information
jzhou [Wed, 7 Dec 2011 01:16:50 +0000 (01:16 +0000)]
changes to MGC class library
yeom [Tue, 6 Dec 2011 18:05:50 +0000 (18:05 +0000)]
changes while trying to compile MP3Decoder
yeom [Tue, 6 Dec 2011 00:35:11 +0000 (00:35 +0000)]
changes for getting the right path of static references
yeom [Tue, 6 Dec 2011 00:00:35 +0000 (00:00 +0000)]
new analysis found one shared location that is not overwritten in the eyetracking benchmark, fixed it.
yeom [Mon, 5 Dec 2011 23:57:49 +0000 (23:57 +0000)]
fixes on analyses to compile the eyetracking benchmark
yeom [Mon, 5 Dec 2011 18:10:30 +0000 (18:10 +0000)]
fixes
yeom [Sat, 3 Dec 2011 01:44:20 +0000 (01:44 +0000)]
it has passed test cases
jzhou [Sat, 3 Dec 2011 01:42:41 +0000 (01:42 +0000)]
Fix another inner class bug: every inner class along the inherited chain has a pointer to its enclosing class; If an inner class inherits from another inner class, when it calls the constructor of its super class, it passes in its enclosing class for the superenclosing class by default
yeom [Fri, 2 Dec 2011 19:56:03 +0000 (19:56 +0000)]
get the right cover set wrt shared location path.
working on transfuncs for event loop analysis.
yeom [Thu, 1 Dec 2011 20:38:19 +0000 (20:38 +0000)]
fix problems of shared loc extension
yeom [Thu, 1 Dec 2011 02:04:35 +0000 (02:04 +0000)]
changes.
jzhou [Wed, 30 Nov 2011 20:09:12 +0000 (20:09 +0000)]
According to Brian's comments, check the lside of assignment operation first to get its type. Then use that type to check the array initialization node.
yeom [Wed, 30 Nov 2011 00:50:58 +0000 (00:50 +0000)]
more changes.
jzhou [Tue, 29 Nov 2011 20:47:41 +0000 (20:47 +0000)]
Array field initialization was accidentally broken. Fix it and add ArrayInitializerTest into the unit test suit in case it is broken again
yeom [Tue, 29 Nov 2011 20:07:16 +0000 (20:07 +0000)]
have n-to-1 mapping from location paths to a set of may-written shared descriptors.
every call site propagates a set of may-written shared descriptors to the caller's arg location paths.
if an argument is bound to the callee's parameter leading to a write effect on shared locations, the corresponding location path that is started with the callee's param location will be bound to the caller's arg location path.
For example, suppose that caller has an arg with location path <A,B> and corresponding callee has param with location <L,C>. If the param leads to an write effect on shared location "F" through the location path <L,C,D,E>, the caller will have an write effect on F with the location path <A,B,C,D,E>.
jzhou [Tue, 29 Nov 2011 01:00:40 +0000 (01:00 +0000)]
Fix a small bug about enumaration type: it should be able to recorgnize access pattern like Classname.EnumName.X
jzhou [Thu, 24 Nov 2011 00:44:20 +0000 (00:44 +0000)]
changes
jzhou [Wed, 23 Nov 2011 00:25:49 +0000 (00:25 +0000)]
Fix another inner class bug: an inner class which is declared in a *static context* should not have lexically enclosing instances, instead, if it is immediately declared within a static method or static initializer then the inner class does have an enclosing block, which is the innermost block statement lexically enclosing the declaration of the inner class.
yeom [Tue, 22 Nov 2011 19:15:28 +0000 (19:15 +0000)]
working on shared loc extension: need to keep additional mappings from shared loc composite location to a set of may written descriptors.
jzhou [Sat, 19 Nov 2011 00:57:39 +0000 (00:57 +0000)]
fix some MGC classes
jjenista [Fri, 18 Nov 2011 21:41:47 +0000 (21:41 +0000)]
vector resize isn't a problem, even without definite reachability, because we have a special case of def reach just for array references
jzhou [Fri, 18 Nov 2011 00:41:22 +0000 (00:41 +0000)]
class library changes
jjenista [Fri, 18 Nov 2011 00:11:32 +0000 (00:11 +0000)]
fixed double negate bug, 3rd case of def reach works now
jjenista [Thu, 17 Nov 2011 23:31:18 +0000 (23:31 +0000)]
case 3 of definite reach, all coded but has bugs because test case does the messy store anyway still
jzhou [Tue, 15 Nov 2011 20:45:39 +0000 (20:45 +0000)]
a missing check
jzhou [Tue, 15 Nov 2011 20:10:26 +0000 (20:10 +0000)]
Bug fix of inner class: only add LIVE local variables that are referred to in an anonymous inner class into the inner class' fields. Previously we add all the local variables into an anonymous inner class which could be buggy. Also add a super(...) invocation into the anonymous constructor of an anonymous inner class according to the Java spec.
jzhou [Tue, 15 Nov 2011 00:41:04 +0000 (00:41 +0000)]
Add a new feature for inner class: an anonymous inner class can now refer to the local variables in its defintion context. The fix is not completely apply to Java specification in that we do not check if the local variables are final. According to the Java spec, only final variables can be referred to by the snonymous inner class
yeom [Mon, 14 Nov 2011 22:27:01 +0000 (22:27 +0000)]
working on shared loc extension
jzhou [Sat, 12 Nov 2011 00:34:57 +0000 (00:34 +0000)]
Need a new inner class feature: let the anonymous inner class be able to access local variable that is final. Add test about this new feature into the unit test of inner class. This feature is not implemented yet. So disable the inner test in Tests/DoTest temorarily. Will add it back when our compiler can pass this unit test. And it seems that the this___enclosing field of inner classes is no longer used, disable it. Add a new method valueOf(int) into Interger class
jzhou [Fri, 11 Nov 2011 21:08:41 +0000 (21:08 +0000)]
Make the compiler to support super.X/L.super.X which access super class' fields. We might still not be able to correctly support access to super class' methods like super.foo(). Also fix another nested class bug. Previously the unit test StaticInnerClassTest was broken because of newly added inner class support. Note that nested class (static inner class) should NOT have reference to its surrounding class in its constructor as it is static and can be created without any outer class instance.
yeom [Fri, 11 Nov 2011 01:36:58 +0000 (01:36 +0000)]
working on the written check.
jjenista [Fri, 11 Nov 2011 00:38:51 +0000 (00:38 +0000)]
got 2nd case of def reach up and running, one to go
jzhou [Fri, 11 Nov 2011 00:18:09 +0000 (00:18 +0000)]
Fix inner class implementation. Now code like inner.this.X/outer.this.X work correctly. And the inner class can correctly refer to the fields/methods defined in the surrounding class.
bdemsky [Thu, 10 Nov 2011 20:18:38 +0000 (20:18 +0000)]
change the email list...stop spamming people
jzhou [Thu, 10 Nov 2011 19:47:42 +0000 (19:47 +0000)]
Change back the inner class test case
jzhou [Thu, 10 Nov 2011 19:33:30 +0000 (19:33 +0000)]
Fix inner class bug: the inner class cannot correctly refer to outer class' fields/methods and cannot refre to its super class' fields too
jjenista [Thu, 10 Nov 2011 18:59:04 +0000 (18:59 +0000)]
working on the second case where definite reach can improve results
jjenista [Thu, 10 Nov 2011 00:38:35 +0000 (00:38 +0000)]
AWESOME. Used just the R relation of definite reach to successfully improve the reachability results of a simple example
jjenista [Thu, 10 Nov 2011 00:16:50 +0000 (00:16 +0000)]
successfully keep def reach info just for the store transform
jjenista [Thu, 10 Nov 2011 00:09:42 +0000 (00:09 +0000)]
bug fix: retrieve by full key returned empty set, now correct
spikeuci [Wed, 9 Nov 2011 02:16:25 +0000 (02:16 +0000)]
Updating the test case files
spikeuci [Wed, 9 Nov 2011 02:14:53 +0000 (02:14 +0000)]
Handling the case NAME DOT THIS for inner classes
jjenista [Wed, 9 Nov 2011 00:34:10 +0000 (00:34 +0000)]
def reach has to use PointerMethod to detect CFG edges that the analysis cares about
jjenista [Tue, 8 Nov 2011 22:14:12 +0000 (22:14 +0000)]
fix silly off-by-one bug
bdemsky [Tue, 8 Nov 2011 00:10:25 +0000 (00:10 +0000)]
push a bunch of old changes i had related to inner classes and such... hope this doesn't break anything for anyone
jjenista [Mon, 7 Nov 2011 22:27:46 +0000 (22:27 +0000)]
found a bug, results still empty
jjenista [Mon, 7 Nov 2011 21:50:35 +0000 (21:50 +0000)]
transfer funcs for the R relation of def reach coded, but buggy, results are empty
yeom [Sat, 5 Nov 2011 19:22:26 +0000 (19:22 +0000)]
fix: the callee can return only its owned obj
yeom [Fri, 4 Nov 2011 21:54:44 +0000 (21:54 +0000)]
add evaluation files
yeom [Fri, 4 Nov 2011 21:22:31 +0000 (21:22 +0000)]
forgot to commit
spikeuci [Fri, 28 Oct 2011 21:03:13 +0000 (21:03 +0000)]
Bug fixed
spikeuci [Fri, 28 Oct 2011 20:35:43 +0000 (20:35 +0000)]
This completes the barebones versions of inner class, we are now able to access fields of surrounding classes in any level, need to check for compatibility with language spec especially use of statics and so forth
yeom [Fri, 28 Oct 2011 18:27:02 +0000 (18:27 +0000)]
update location identifier according to changes of class structure
yeom [Fri, 28 Oct 2011 17:58:43 +0000 (17:58 +0000)]
bug fix:
the last changes for another benchmark causes a problem to mp3decoder: field access through the chain of array generates the composite location with one missing component.
jjenista [Fri, 28 Oct 2011 00:31:49 +0000 (00:31 +0000)]
looks like the output is Left and Right channels interleaved, only sample one for pretty graphs
jjenista [Thu, 27 Oct 2011 18:55:30 +0000 (18:55 +0000)]
make it easy to collect data for the paper's error injection figure
jjenista [Thu, 27 Oct 2011 17:39:48 +0000 (17:39 +0000)]
exploring error injection space
jjenista [Wed, 26 Oct 2011 15:48:44 +0000 (15:48 +0000)]
the static inner classes are not being used, but Subu's work is seeing them and complaining, so I moved them out. Also twiddled the Player code to generate a normal and error output sampling for experiments, WITHOUT SSJAVA notation, so the analysis won't run on this benchmark at the moment
jjenista [Wed, 26 Oct 2011 15:46:28 +0000 (15:46 +0000)]
tweak scripts to take mp3 filename argument
jjenista [Wed, 26 Oct 2011 15:38:49 +0000 (15:38 +0000)]
restrict error injection to non-array primitive types so we can use a random value instead of zero to get a wackier program behavior deviation
yeom [Tue, 25 Oct 2011 23:41:16 +0000 (23:41 +0000)]
add longer mp3 file for test
jjenista [Tue, 25 Oct 2011 22:34:55 +0000 (22:34 +0000)]
def reach coming along