2010-10-17 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* antbuild.properties: 
		- changed the location of bandera related files. 

2009-12-20 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* build.xml:  
	    - removed the requirement to define custom.javadoc.links.

2009-11-30 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* build.xml: 
		- forced the use of Eclipse compiler.
		- added auxiliary files to the source bundle.

2007-10-08 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/SystemDependenceGraphBuilder.java: 
		- publicized INTER_PROCEDURAL_DATA_DEPENDENCE.

2007-09-24 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/processors/AliasedUseDefInfo.java: 
		- when the intersection of alias sets for the primaries of array/field refs (considered for use-def relation) is empty, 
		the analysis concludes no use-def relation.  While this can be correct upto the information from OFA, it can lead
		to unsound result in general.  To be sound, use-def relation is induced in such cases.  We will need to evaluate
		the resulting inaccurate.  Further, we can explore other possibilities to contain the inaccuracy.

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/IdentifierBasedDataDAv2.java: 
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/IdentifierBasedDataDA.java: 
		- args to getDependees(Pair,SootMethod) could be null but they were not being checked. FIXED.

2007-09-19 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* src-xml/edu/ksu/cis/indus/staticanalyses/dependency/StmtAndMethodBasedDependencyXMLizer.java: 
		- Special handling of asymmetry of dependee-dependence information in IdentifierBasedDataDAv2.

2007-07-24 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/OFABasedCallInfoCollector.java: 
		- reachable method was not updated in the previous update. Fixed.

2007-07-23 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/OFABasedCallInfoCollector.java (OFABasedCallInfoCollector.java): 
		- no method was included at the call site when the object binding information was empty for the receiver.  In such cases, the change pessimistically 
		considers the static non-concrete method as being invoked.

2007-07-02 Venkatesh Prasad Ranganath <venkateshprasad.ranganath@gmail.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ReadWriteInfo.java: 
		- implemented the new methods introduced in IReadWriteInfo.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/AliasSet.java: 
		- added overriding implementations for equals and hashCode. 
	* src-xml/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EscapeAndReadWriteCLI.java:
		- extended the logic to use the new methods in ReadWriteInfo. 

2006-12-11 venku <venku@boss.dreamsoft.com>

	* src-xml/edu/ksu/cis/indus/staticanalyses/dependency/StmtAndMethodBasedDependencyXMLizer.java: 
		- Java generics based error reported by Raul Santelices (thread "errors running 0.8.3.5" on help forum).

2006-05-23 venku <venku@boss.dreamsoft.com>

	* src-xml/edu/ksu/cis/indus/staticanalyses/dependency/StmtAndMethodBasedDependencyXMLizer.java: 
		- the use of generics to extract type arguments was incorrect.  FIXED.

2006-05-16 venku <venku@boss.dreamsoft.com>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/DivergenceDA.java: 
		- NPE due to direct unchecked retrieval from map. FIXED.

2006-04-06 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetrieverV3.java: 
		- ripple effect of change to ThreadEscapeInfoBasedCallingContextRetrieverV2 constructor.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetrieverV2.java: 
		- instead of determining the nature of the context retriever based on dependence id, the nature can be set explicitly
		during object construction.
		- changed the logic in shouldCallerSideTokenBeDiscarded().

2006-04-05 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EquivalenceClassBasedEscapeAnalysis.java: 
		- publicized the query methods for atomicity and sealing property.
		- changed the logic to calculate sealed methods.
	* src/edu/ksu/cis/indus/toolkits/bandera/RelativeDependenceInfoTool.java: 
		- added logic to output signatures of atomic methods.
		- added logic to output signatures of non-atomic sealed methods.

2006-04-04 venku <venku@boss.dreamsoft.com>

	* src-xml/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EscapeAndReadWriteCLI.java: 
		- removed the code that instantiated locking based equivalence analysis.
	* src-xml/edu/ksu/cis/indus/staticanalyses/concurrency/DeadlockAnalysisCLI.java: 
		- added a CLI driver to test deadlock analysis.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/DeadlockAnalysis.java: 
		- added a new analysis to detect locks that contribute to deadlocks.
		
2006-03-28 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/MonitorAnalysis.java: 
		- the condition that checked types on enter and exit monitor was weak in shouldCollectInfo().  Further, the result
		was used conservatively. FIXED.

2006-03-25 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EquivalenceClassBasedEscapeAnalysis.java: 
		- null is returned instead of raising an exception an unanalyzed method is provided as input to queryAliasSet() 
		method.

2006-03-22 venku <venku@boss.dreamsoft.com>

	* src-xml/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EscapeAndReadWriteCLI.java: 
		- added logic to extract and output atomiticity and sealing information.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ValueProcessor.java: 
		- the change to MethodContext resulted elimination of notification of global data reading in the processor.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/MethodContext.java: 
		- added logic to improve soundness and accuracy of read/write info about global data.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/AliasSet.java: 
		- added features to capture global-ness and to provide information about shared data for purpose of sealing and 
		atomicity.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EquivalenceClassBasedEscapeAnalysis.java: 
		- added new methods to provide atomicity and sealing information.
		
2006-03-18 venku <venku@boss.dreamsoft.com>

	* src-xml/edu/ksu/cis/indus/staticanalyses/dependency/StmtAndMethodBasedDependencyXMLizer.java: 
		- Genericized this class.  This required we have access to type arguments to the class.  We facilitated this via the
		reflection API.  This further requires that type arguments be provided when creating instances of this class.
	* src-xml/edu/ksu/cis/indus/staticanalyses/dependency/DependencyXMLizer.java: 
		- ripple effect of changes to StmtAndMethodBasedDependencyXMLizer.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/DataAliasBasedCallingContextRetrieverV2.java: 
		- ripple effect of change in DataAliasBasedCallingContextRetriever
		- bug fix for the reopening of #768 on 03/11/2006
	* src/edu/ksu/cis/indus/staticanalyses/impl/DataAliasBasedCallingContextRetriever.java: 
		- ripple effect of change to CFGAnalysis.isReachableViaInterProceduralControlFlow().
		- refactored getCallSitesThatCanReachSource() and getCallerSideTokenFor() to facilitate changes in 
		DataAliasBasedCallingContextRetrieverV2.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/processors/AliasedUseDefInfov2.java: 
	* src/edu/ksu/cis/indus/toolkits/bandera/DependenceAndMayFollowInfoCalculator.java: 
	* src/edu/ksu/cis/indus/staticanalyses/cfg/CFGAnalysis.java: 
		- added a new parameter to isReachableViaInterProceduralControlFlow() method to control exclusion of source
		and destination when calculating reachability.  Most invocations to this method use false as the argument to stay
		loyal to the previous default behavior.

2006-03-16 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/DataAliasBasedCallingContextRetrieverV2.java: 
		- superclass checks were not being performed and this led to inaccurracy.  This has been addressed, but the
		inaccuracy is persisting.
	* src/edu/ksu/cis/indus/staticanalyses/impl/DataAliasBasedCallingContextRetriever.java: 
		- refactored the class to enable subclasses to check control flow reachability.

2006-03-15 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EscapeInfo.java: 
		- exception was thrown if the queried entiy did not have an alias set.  FIXED.

2006-03-10 venku <venku@boss.dreamsoft.com>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/IdentifierBasedDataDA.java: 
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/IdentifierBasedDataDAv2.java: 
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/IdentifierBasedDataDAv3.java: 
		- changed the type of the dependents to Pair<Local, Stmt>
		- changed the type of the input to dependee query to Pair<Local, Stmt>	
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/LocalStmtPairRetriever.java: 
		- changed the type of the dependents to Pair<Local, Stmt>
	* src/edu/ksu/cis/indus/staticanalyses/cfg/LocalUseDefAnalysis.java: 
		- I had incorrectly assumed every definition will be used in the method.  FIXED.
	* src/edu/ksu/cis/indus/staticanalyses/cfg/LocalUseDefAnalysisv2.java: 
		- Both versions of LocalUseDefAnalysis now provide dependents of type Pair<Local, Stmt>.

2006-03-05 venku <venku@boss.dreamsoft.com>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/DivergenceDA.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/ExitControlDA.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/IdentifierBasedDataDA.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/InterferenceDAv1.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/InterProceduralDivergenceDA.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/NonTerminationInsensitiveEntryControlDA.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/NonTerminationSensitiveEntryControlDA.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/ReadyDAv1.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/ReferenceBasedDataDA.java:
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/SynchronizationDA.java:
		- added a singleton predicate based on instanceof checks.

2006-02-28 venku <venku@boss.dreamsoft.com>

	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/processors/NewExpr2InitMapper.java:
		- it is possible for non-new expressions (NewArrayExpr, NewMultiArrayExpr, and StringConstant) to flow into the
		receiver variable at an invocation site.  This was not being handled. FIXED.

2006-02-23 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/LockAcquisitionBasedEquivalence.java:
		- the processor was registered for processing method interfaces, hence, the information was inaccurate. FIXED.

2006-02-21 venku <venku@boss.dreamsoft.com>

	* src/edu/ksu/cis/indus/toolkits/bandera/DependenceAndMayFollowInfoCalculator.java:
		- may-follow relation was only considering the dependent transitions as the destination instead of considering
		every transitions. This lead to inaccurate search results.  FIXED.

2006-02-20 venku <venku@boss.dreamsoft.com>

	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/MethodVariant.java:
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/FlowSensitiveExprSwitch.java:
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/FlowInsensitiveExprSwitch.java:
		- changed some incorrect types in filter setting expressions.

2006-02-19 venku <venku@boss.dreamsoft.com>

	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/AbstractFGNode.java:
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/IFGNode.java:
		- collapsed setInFilter() and setOutFilter() into setFilter().  Now, the same filter will be applied to both incoming
		and outgoing values.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/MethodVariant.java:
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/FlowSensitiveExprSwitch.java:
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/FlowInsensitiveExprSwitch.java:
		- leveraged the new setFilter() method in places where setIn(Out)Filter() methods were used.
		- added logic to inject filters into almost all nodes.
	* src-xml/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/OFAXMLizerCLI.java:
		- changed the pattern for the output file.

2006-02-18 venku <venku@boss.dreamsoft.com>

	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/FlowSensitiveExprSwitch.java:
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/FlowInsensitiveExprSwitch.java:
		- In most cases, a variables evaluates to multiple objects (allocations sites) of the same type.  This is multiplicity is
		relevant for points-to/alias analysis, hence, for accuracy of object flow info.  However, this multiplicity  is irrelevant
		for analysis such as call graph analysis.  In such cases, we can optimize the object flow by canonicalizing the
		allocation site for each type, i.e. we use a canonical allocation site to represent all allocation sites of a particular
		type.  This is useful if we want to start with a precise call graph analysis and then use Coupling style alias analysis.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/OFAnalyzer.java:
		- In conjuction with the changes to Flow(In)SensitiveExprSwitch, new factory methods were added to create flow
		analyzers that would perform object-insensitive, object-transparent (rapid-type), object flow anlaysis.  This is
		useful if we want to start with a precise call graph analysis and then use Coupling style alias analysis.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/Type2CanonicalValueMapper.java:
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/Type2ValueMapper.java:
		- These mappers were used to facilitate the object-insensitive, object-transparent (rapid-type), object flow analysis.
	* src-xml/edu/ksu/cis/indus/staticanalyses/callgraphs/CallGraphXMLizerCLI.java:
	* src-xml/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/OFAXMLizerCLI.java:
		- Added logic to execute object-transparent/rapid-type style object flow analysis.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/AbstractMemberDataAccessExprWork.java (execute):
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/SendTokensWork.java(execute):
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/InvokeExprWork.java (execute):
		- AbstractTokenProcessingWork.tokens was not cleared after IWork.execute() finished execution, and this led to
		poor performance. FIXED.

2006-02-04 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetrieverV3.java:
		- missing null checks in methods process1 and process2 were added.
	* src/edu/ksu/cis/indus/staticanalyses/impl/DataAliasBasedCallingContextRetriever.java:
		- terminal (null-terminated) contexts should be considered asis when calculating context-coupled calling contexts.
		This is facililated by injecting null into the ancestors/tokens when def-use occur in the same method with null as
		the TOS on the src end and leveraging this information while generting caller side token. (Bug #750)
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetrieverV2.java:
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetrieverV3.java:
		- the logic determined if the context should be considered while the variable/method naming suggested otherwise.
		FIXED.

2006-02-01 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetrieverV3.java:
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/DataAliasBasedCallingContextRetrieverV3.java:
		- added new implementation that checks entity based coupling at each step of building the context.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/DataAliasBasedCallingContextRetrieverV2.java:
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetriever.java:
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ThreadEscapeInfoBasedCallingContextRetrieverV2.java:
		- refactoring to enable context coupling extension.

2006-01-29 venku <venku@boss.dreamsoft.com>

	* src/edu/ksu/cis/indus/staticanalyses/cfg/CFGAnalysis.java (doesMethodLiesOnTheDataFlowPathBetween):
		- incorrectly changed the correct logic :-(  FIXED.
	* src/edu/ksu/cis/indus/staticanalyses/impl/DataAliasBasedCallingContextRetriever.java:
		- the context calculation now considers the reachability during each step of building the calling context to improve
		  accuracy.  This may be expensive.  We will need to add memoization support in CFGAnalysis to alleviate the cost.
	* src/edu/ksu/cis/indus/staticanalyses/cfg/CFGAnalysis.java (doesMethodLiesOnTheDataFlowPathBetween):
		- while checking if sm is the common ancestor along the interprocedural control flow path between two methods,
		  it is more accurate to not consider the site that invokes the source method.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/DataAliasBasedCallingContextRetrieverV2.java:
		- this context retriever is inaccurate, hence, it has been pulled back. (in the context of Bug #768)
	* src/edu/ksu/cis/indus/staticanalyses/impl/DataAliasBasedCallingContextRetriever.java:
		- token generation was inaccurate, hence, the generated calling contexts.  This has been addressed with new
		  logic to utilize source end calling context. (in the context of Bug #768)

2006-01-22 venku <venku@boss.dreamsoft.com>

	- The ripple effect of changing the direct access to ToStringBasedComparator.SINGLETON via a getter method.

2006-01-17 venku <venku@boss.dreamsoft.com>

	* src-xml/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/OFAXMLizerCLI.java:
		- removed "-l" option as method body loading is the default behavior in SootBasedDriver.loadClassesAndCollectMains().
	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/RTABasedCallInfoCollector.java:
		- ripple effect of removal of IProcessor.processLocals()
		- minor fix ups.
	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/CHABasedCallInfoCollector.java:
		- logging and Java generics.

2006-01-14 venku <venku@boss.dreamsoft.com>

	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/modes/sensitive/allocation/AllocationContext.java:
		- comparison based on referential equality improves accuracy.
	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/CallGraphInfo.java:
		- caching was overestimated for graphCache. This has been fixed.

	* src/edu/ksu/cis/indus/staticanalyses/cfg/LocalUseDefAnalysisv2.java:
		- Java 5 adoption.
		- Due to a bug in Soot, "r78=@caughtException" statement in java.lang.reflect.Proxy#getProxyClass() is not
		included in a basic block.  For this reason, we need to handle this condition and produce a warning when
		appropriate.
	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/CallGraphInfo.java (calleeCallSiteReachabilityCache):
		- changed the cache size to be sufficient to hold all mappings under the assumption that each method will be
		called at most 3 times.

2006-01-13 venku <venku@boss.dreamsoft.com>

	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/CallGraphInfo.java:
		- altered callee-to-callsite cache size
		- used weak reference to cache SCC in a memory optimal manner

2005-12-30 venku <venku@boss.dreamsoft.com>

	* src-test/edu/ksu/cis/indus/staticanalyses/flow/FATestSetup.java:
		- used getEnvironment() instead of getScene()
	* src-temp/ase05/InfluenceChecker.java:
	* src-xml/edu/ksu/cis/indus/staticanalyses/callgraphs/CallGraphXMLizerCLI.java:
	* src-xml/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EscapeAndReadWriteCLI.java:
	* src-xml/edu/ksu/cis/indus/staticanalyses/concurrency/independence/IndependenceDetectionCLI.java:
	* src-xml/edu/ksu/cis/indus/staticanalyses/dependency/DependencyXMLizerCLI.java:
	* src-xml/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/OFAXMLizerCLI.java:
		- used getEnvironment() instead of getScene()
		- support for cfg-level scoping.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/SendTokensWork.java:
		- publicized the constructor for internal used in SCCBasedOptimizer.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/IFGNode.java:
		- added a new method in IFGNode that can be used to signal that the node belongs to a SCC containing multiple
		flow nodes in the flow graph.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/AbstractFGNode.java:
		- added a new method in AbstractFGNode that can be used set a token sending work.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/optimizations/SCCBasedOptimizer.java:
		- added optimization to statically associate a common token sending work to all nodes in an SCC.
		- The changes in this file and the above 3 files were made to facilitate this optimization.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/FlowInsensitiveExprSwitch.java:
		- added logic to use a canonical instance of StringConstant values.

2005-12-26 venku <venku@boss.dreamsoft.com>

	* NOTE - the tracking of concurrent access of static variables is broken in AliasSets and ECBA.
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/InterferenceDAv1.java:
		-  (isStaticFieldDependentOn) changed the condition to check for static field interference.
		- deleted the use and implementation of method considerEffectOfClassInitializers.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/processors/AliasedUseDefInfo.java (doesDefReachUse):
		- changed the condition used to determine if the def reaches the use site.
	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/processors/ThreadGraph.java:
		- added some more detail to the result of toString()
		- injectMainThreads() was incorrectly using putIntoCollectionInMap() instead of putAllIntoCollectionIMap(), hence,
		causing incorrect results on <clinit> thread.  FIXED.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EquivalenceClassBasedEscapeAnalysis.java:
		- added call to ValueProcessor.reset()
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/MethodContext.java:
		- unification of null argument alias sets belonging to method contexts raise an exception.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ValueProcessor.java:
		- Not injecting a alias set for StringConstant and NullConstant will result in unification of null with alias sets while
		unifying MethodContexts. This has been addressed by plugging in a new alias set for these constants.
		- added a cache from string constant to alias sets along with a method to reset this map.
	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/CallGraphInfo.java:
	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/CallInfo.java:
	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/OFABasedCallInfoCollector.java:
		- logging more info.
		- recast logging levels.

2005-12-21 venku <venku@boss.dreamsoft.com>

	* src-flow/edu/ksu/cis/indus/staticanalyses/flow/instances/ofa/MethodVariant.java:
		- the fix for Bandera bug 742 did not make its way into the main trunk.  This has been fixed.

2005-12-20 venku <venku@boss.dreamsoft.com>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/ReadyDAv1.java:
		- used type information to further prune inter-thread ready dependence stemming from monitors.

2005-12-19 venku <venku@boss.dreamsoft.com>

	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/SafeLockAnalysis.java:
		- strengthened the pre-condition of isLockSafe() by changing the type of its parameter -- ripple effect of the
		change to IMonitorInfo interface
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/MonitorAnalysis.java:
		- formatting
		- strengthened the pre-condition of getInterProcedurallyEnclosedStmts() by changing the type of its parameter
		- used MonitorStmt instead of Stmt wherever possible
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/ReadyDAv1.java:
		- logging
		- comments
		- fixed an error introduced during Java 5 adoption in processRule2() method
	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/SynchronizationDA.java:
		- weakened few type checks from Enter/ExitMonitorStmt to MonitorStmt

2005-12-15  venku  <rvprasad@cis.ksu.edu>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/InterferenceDAv1.java:
		- Final instance fields were being considered for interference dependence.  FIXED.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/EquivalenceClaapeAnalysis.java:
		- Added logic to canonicalize class level alias sets after phase 3
		- Added logic to unify class level alias sets after phase 2
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/ValueProcessor.java:
		- Ripple effect of removing global field in AliasSet
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/MethodContext.java:
		- Removed updation of class level alias sets while unifying method contexts.
	* src-concurrency/edu/ksu/cis/indus/staticanalyses/concurrency/escape/AliasSet.java:
		- Removed global field in AliasSet as it was not serving any purpose.

2005-06-27  venku  <rvprasad@cis.ksu.edu>

	* assumed that class initializers are always simple and will not lead to interference with other class initializers.
	* deleted EscapeInfo.staticfieldAccessShared(SootClass, SootMethod, SootClass, SootMethod)
	* moved AnalysesController from impl package to processing package.
	* added an intraprocedural reachability method to CFGAnalysis and used it in AliasedUseDefInfo.
	* refactored AliasedUseDefInfo and AliasedUseDefInfoV2 to accomodate change to CFGAnalysis.
	* DataAliasBasedCallingContextRetriever was missing the corner case where use and def occurred in the same
	method when there were no callers. FIXED.
	* refactored concurrency.atomicity package to concurrency.independence
	* renamed AtomicXXXX classes as IndependentXXXX.

2005-04-15  venku  <rvprasad@cis.ksu.edu>

	* src/edu/ksu/cis/indus/staticanalyses/callgraphs/CHABasedCallInfoCollector.java : ripple effect of changes to IClassHierarchy.
	* src/edu/ksu/cis/indus/staticanalyses/impl/ClassHierarchy.java :  renamed methods and added a new method to retrieve the
	classes in the hierarchy in topological order.

2005-03-19  venku  <rvprasad@cis.ksu.edu>

	* Changes pertaining to Class Hierarchy calculation, class hierarchy based call graph construction, rapid-type	analysis based
	call graph construction, and refactoring of call graph constructione.

2005-03-14  venku  <rvprasad@cis.ksu.edu>

	* src/edu/ksu/cis/indus/staticanalyses/impl/ClassHierarchy.java: Added an implementation of class hierarchy.

2005-02-27  venku  <rvprasad@cis.ksu.edu>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/DivergenceDA.java (getDependees): enhanced the
	implementation to return empty divergence dependence information if the given dependees statement does not occur
	in 	the given method's basic block graph.

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/InterProceduralDivergenceDA.java (getDependees): enhanced
	 the implementation to return empty divergence dependence information if the given dependees statement does not occur in
	 the given method's basic block graph.

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/ReadyDAv1.java: Addressed task #275 - converted ready
	dependence info pertaining to ready dependence relating synchronized methods to be non-statement based.

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/AbstractControlDA.java:  Added a new helper function and
	enhanced the implementation to return empty control dependence information if the given dependee/dependent statement does
	not occur in the given method's basic block graph.

2005-02-26  venku  <rvprasad@cis.ksu.edu>

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/DivergenceDA.java: Although divergence is captured in non-
	termination sensitive control dependence, it's mixed with control dependence.  Hence, it is best to calculate divergence
	dependence separately.  This seems like an overhead, but it is useful in program comprehension.  Hence, I reverted to the
	old code base of both intra- and inter-procedural flavour.
		I also changed the manner in which new instances of this class wer created.

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/InterProceduralDivergenceDA.java: Created a pure
	Interprocedural divergence dependence analysis.
		I also changed the manner in which new instances of this class wer created.

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/NonTerminationInsensitiveEntryControlDA.java: Added support
	to toggle between direct	and indirect version of non-termination sensitive control dependence used to calculate non-termination
	insensitive control dependence.

2005-02-25  venku  <rvprasad@cis.ksu.edu>

	* src-xml/edu/ksu/cis/indus/staticanalyses/dependency/DependencyXMLizerCLI.java: Ripple effect from changes to
	DivergenceDA.java.

	* src-dependence/edu/ksu/cis/indus/staticanalyses/dependency/DivergenceDA.java: Trimmed the DivergenceDA to calculate
	simple inter-procedural Divergence dependence.  This can be used in conjunction with non-termination-sensitive control
	dependence to arrive at intra- plus inter-procedural divergence dependence information.