dk.brics.string.intermediate.operations
Class AliasAnalysis

java.lang.Object
  extended by dk.brics.string.intermediate.operations.AliasAnalysis
All Implemented Interfaces:
FlowAnalysis, StatementVisitor

public class AliasAnalysis
extends Object
implements FlowAnalysis, StatementVisitor

Alias analysis performed on a set of methods. This analysis also determines which variables might have been corrupted.

This is a variable-pair-based may/must context-insensitive alias analysis. Only live variables are considered.


Constructor Summary
AliasAnalysis(Application app, LivenessAnalysis la, FieldUsageAnalysis fieldUsage, AliasAssertionAnalysis assertions)
          Performs alias analysis.
 
Method Summary
 AliasInfo getInfoBefore(Statement s)
          Returns the alias information as inferred just before the given statement.
 void transfer(Statement s)
          The transfer function.
 void visitArrayAddAll(ArrayAddAll s)
          Visit an ArrayAddAll statement.
 void visitArrayAssignment(ArrayAssignment s)
          Visit an ArrayAssignment statement.
 void visitArrayCorrupt(ArrayCorrupt s)
          Visit an ArrayCorrupt statement.
 void visitArrayFromArray(ArrayFromArray s)
          Visit an ArrayFromArray statement.
 void visitArrayNew(ArrayNew s)
          Visit an ArrayNew statement.
 void visitArrayWriteArray(ArrayWriteArray s)
          Visit an ArrayWriteArray statement.
 void visitArrayWriteElement(ArrayWriteElement s)
          Visit an ArrayWriteElement statement.
 void visitAssertAliases(AssertAliases s)
           
 void visitAssertBinaryOp(AssertBinaryOp s)
           
 void visitAssertUnaryOp(AssertUnaryOp s)
           
 void visitBasicBinaryOp(BasicBinaryOp s)
           
 void visitBasicUnaryOp(BasicUnaryOp s)
           
 void visitCall(Call s)
          Visit a Call statement.
 void visitCatch(Catch s)
          Visit a Catch statement.
 void visitExceptionalReturn(ExceptionalReturn s)
          Visit a ExceptionalReturn statement.
 void visitFieldAssignment(FieldAssignment s)
          Visit a FieldAssignment statement.
 void visitFieldReference(FieldReference s)
          Visit a FieldReference statement.
 void visitHotspot(Hotspot s)
          Visit a Hotspot statement.
 void visitMethodHead(MethodHead s)
          Visit a MethodHead statement.
 void visitNop(Nop s)
          Visit a Nop statement.
 void visitObjectAssignment(ObjectAssignment s)
          Visit a ObjectAssignment statement.
 void visitObjectCorrupt(ObjectCorrupt s)
          Visit a ObjectCorrupt statement.
 void visitPrimitiveAssignment(PrimitiveAssignment s)
           
 void visitPrimitiveFromArray(PrimitiveFromArray s)
           
 void visitPrimitiveInit(PrimitiveInit s)
           
 void visitReturn(Return s)
          Visit a Return statement.
 void visitStringAssignment(StringAssignment s)
          Visit a StringAssignment statement.
 void visitStringBufferAppend(StringBufferAppend s)
          Visit a StringBufferAppend statement.
 void visitStringBufferAppendChar(StringBufferAppendChar s)
           
 void visitStringBufferAssignment(StringBufferAssignment s)
          Visit a StringBufferAssignment statement.
 void visitStringBufferBinaryOp(StringBufferBinaryOp s)
          Visit a StringBufferBinaryOp statement.
 void visitStringBufferCorrupt(StringBufferCorrupt s)
          Visit a StringBufferCorrupt statement.
 void visitStringBufferInit(StringBufferInit s)
          Visit a StringBufferInit statement.
 void visitStringBufferPrepend(StringBufferPrepend s)
          Visit a StringBufferPrepend statement.
 void visitStringBufferUnaryOp(StringBufferUnaryOp s)
          Visit a StringBufferUnaryOp statement.
 void visitStringConcat(StringConcat s)
          Visit a StringConcat statement.
 void visitStringFromArray(StringFromArray s)
          Visit a StringFromArray statement.
 void visitStringFromStringBuffer(StringFromStringBuffer s)
          Visit a StringFromStringBuffer statement.
 void visitStringInit(StringInit s)
          Visit a StringInit statement.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AliasAnalysis

public AliasAnalysis(Application app,
                     LivenessAnalysis la,
                     FieldUsageAnalysis fieldUsage,
                     AliasAssertionAnalysis assertions)
Performs alias analysis.

Parameters:
app - the application to analyze
la - result from liveness analysis
fieldUsage - result from field usage analysis
Method Detail

getInfoBefore

public AliasInfo getInfoBefore(Statement s)
Returns the alias information as inferred just before the given statement.


transfer

public void transfer(Statement s)
Description copied from interface: FlowAnalysis
The transfer function.

Specified by:
transfer in interface FlowAnalysis
Parameters:
s - the statement to transfer through.

visitArrayAddAll

public void visitArrayAddAll(ArrayAddAll s)
Description copied from interface: StatementVisitor
Visit an ArrayAddAll statement.

Specified by:
visitArrayAddAll in interface StatementVisitor
Parameters:
s - the visited statement.

visitArrayAssignment

public void visitArrayAssignment(ArrayAssignment s)
Description copied from interface: StatementVisitor
Visit an ArrayAssignment statement.

Specified by:
visitArrayAssignment in interface StatementVisitor
Parameters:
s - the visited statement.

visitArrayCorrupt

public void visitArrayCorrupt(ArrayCorrupt s)
Description copied from interface: StatementVisitor
Visit an ArrayCorrupt statement.

Specified by:
visitArrayCorrupt in interface StatementVisitor
Parameters:
s - the visited statement.

visitArrayFromArray

public void visitArrayFromArray(ArrayFromArray s)
Description copied from interface: StatementVisitor
Visit an ArrayFromArray statement.

Specified by:
visitArrayFromArray in interface StatementVisitor
Parameters:
s - the visited statement.

visitArrayNew

public void visitArrayNew(ArrayNew s)
Description copied from interface: StatementVisitor
Visit an ArrayNew statement.

Specified by:
visitArrayNew in interface StatementVisitor
Parameters:
s - the visited statement.

visitArrayWriteArray

public void visitArrayWriteArray(ArrayWriteArray s)
Description copied from interface: StatementVisitor
Visit an ArrayWriteArray statement.

Specified by:
visitArrayWriteArray in interface StatementVisitor
Parameters:
s - the visited statement.

visitArrayWriteElement

public void visitArrayWriteElement(ArrayWriteElement s)
Description copied from interface: StatementVisitor
Visit an ArrayWriteElement statement.

Specified by:
visitArrayWriteElement in interface StatementVisitor
Parameters:
s - the visited statement.

visitAssertAliases

public void visitAssertAliases(AssertAliases s)
Specified by:
visitAssertAliases in interface StatementVisitor

visitAssertBinaryOp

public void visitAssertBinaryOp(AssertBinaryOp s)
Specified by:
visitAssertBinaryOp in interface StatementVisitor

visitAssertUnaryOp

public void visitAssertUnaryOp(AssertUnaryOp s)
Specified by:
visitAssertUnaryOp in interface StatementVisitor

visitBasicBinaryOp

public void visitBasicBinaryOp(BasicBinaryOp s)
Specified by:
visitBasicBinaryOp in interface StatementVisitor

visitBasicUnaryOp

public void visitBasicUnaryOp(BasicUnaryOp s)
Specified by:
visitBasicUnaryOp in interface StatementVisitor

visitCall

public void visitCall(Call s)
Description copied from interface: StatementVisitor
Visit a Call statement.

Specified by:
visitCall in interface StatementVisitor
Parameters:
s - the visited statement.

visitCatch

public void visitCatch(Catch s)
Description copied from interface: StatementVisitor
Visit a Catch statement.

Specified by:
visitCatch in interface StatementVisitor
Parameters:
s - the visited statement.

visitExceptionalReturn

public void visitExceptionalReturn(ExceptionalReturn s)
Description copied from interface: StatementVisitor
Visit a ExceptionalReturn statement.

Specified by:
visitExceptionalReturn in interface StatementVisitor
Parameters:
s - the visited statement.

visitFieldAssignment

public void visitFieldAssignment(FieldAssignment s)
Description copied from interface: StatementVisitor
Visit a FieldAssignment statement.

Specified by:
visitFieldAssignment in interface StatementVisitor
Parameters:
s - the visited statement.

visitFieldReference

public void visitFieldReference(FieldReference s)
Description copied from interface: StatementVisitor
Visit a FieldReference statement.

Specified by:
visitFieldReference in interface StatementVisitor
Parameters:
s - the visited statement.

visitHotspot

public void visitHotspot(Hotspot s)
Description copied from interface: StatementVisitor
Visit a Hotspot statement.

Specified by:
visitHotspot in interface StatementVisitor
Parameters:
s - the visited statement.

visitMethodHead

public void visitMethodHead(MethodHead s)
Description copied from interface: StatementVisitor
Visit a MethodHead statement.

Specified by:
visitMethodHead in interface StatementVisitor
Parameters:
s - the visited statement.

visitNop

public void visitNop(Nop s)
Description copied from interface: StatementVisitor
Visit a Nop statement.

Specified by:
visitNop in interface StatementVisitor
Parameters:
s - the visited statement.

visitObjectAssignment

public void visitObjectAssignment(ObjectAssignment s)
Description copied from interface: StatementVisitor
Visit a ObjectAssignment statement.

Specified by:
visitObjectAssignment in interface StatementVisitor
Parameters:
s - the visited statement.

visitObjectCorrupt

public void visitObjectCorrupt(ObjectCorrupt s)
Description copied from interface: StatementVisitor
Visit a ObjectCorrupt statement.

Specified by:
visitObjectCorrupt in interface StatementVisitor
Parameters:
s - the visited statement.

visitPrimitiveAssignment

public void visitPrimitiveAssignment(PrimitiveAssignment s)
Specified by:
visitPrimitiveAssignment in interface StatementVisitor

visitPrimitiveFromArray

public void visitPrimitiveFromArray(PrimitiveFromArray s)
Specified by:
visitPrimitiveFromArray in interface StatementVisitor

visitPrimitiveInit

public void visitPrimitiveInit(PrimitiveInit s)
Specified by:
visitPrimitiveInit in interface StatementVisitor

visitReturn

public void visitReturn(Return s)
Description copied from interface: StatementVisitor
Visit a Return statement.

Specified by:
visitReturn in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringAssignment

public void visitStringAssignment(StringAssignment s)
Description copied from interface: StatementVisitor
Visit a StringAssignment statement.

Specified by:
visitStringAssignment in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringBufferAppend

public void visitStringBufferAppend(StringBufferAppend s)
Description copied from interface: StatementVisitor
Visit a StringBufferAppend statement.

Specified by:
visitStringBufferAppend in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringBufferAppendChar

public void visitStringBufferAppendChar(StringBufferAppendChar s)
Specified by:
visitStringBufferAppendChar in interface StatementVisitor

visitStringBufferAssignment

public void visitStringBufferAssignment(StringBufferAssignment s)
Description copied from interface: StatementVisitor
Visit a StringBufferAssignment statement.

Specified by:
visitStringBufferAssignment in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringBufferBinaryOp

public void visitStringBufferBinaryOp(StringBufferBinaryOp s)
Description copied from interface: StatementVisitor
Visit a StringBufferBinaryOp statement.

Specified by:
visitStringBufferBinaryOp in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringBufferCorrupt

public void visitStringBufferCorrupt(StringBufferCorrupt s)
Description copied from interface: StatementVisitor
Visit a StringBufferCorrupt statement.

Specified by:
visitStringBufferCorrupt in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringBufferInit

public void visitStringBufferInit(StringBufferInit s)
Description copied from interface: StatementVisitor
Visit a StringBufferInit statement.

Specified by:
visitStringBufferInit in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringBufferPrepend

public void visitStringBufferPrepend(StringBufferPrepend s)
Description copied from interface: StatementVisitor
Visit a StringBufferPrepend statement.

Specified by:
visitStringBufferPrepend in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringBufferUnaryOp

public void visitStringBufferUnaryOp(StringBufferUnaryOp s)
Description copied from interface: StatementVisitor
Visit a StringBufferUnaryOp statement.

Specified by:
visitStringBufferUnaryOp in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringConcat

public void visitStringConcat(StringConcat s)
Description copied from interface: StatementVisitor
Visit a StringConcat statement.

Specified by:
visitStringConcat in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringFromArray

public void visitStringFromArray(StringFromArray s)
Description copied from interface: StatementVisitor
Visit a StringFromArray statement.

Specified by:
visitStringFromArray in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringFromStringBuffer

public void visitStringFromStringBuffer(StringFromStringBuffer s)
Description copied from interface: StatementVisitor
Visit a StringFromStringBuffer statement.

Specified by:
visitStringFromStringBuffer in interface StatementVisitor
Parameters:
s - the visited statement.

visitStringInit

public void visitStringInit(StringInit s)
Description copied from interface: StatementVisitor
Visit a StringInit statement.

Specified by:
visitStringInit in interface StatementVisitor
Parameters:
s - the visited statement.


Copyright © 2003-2009 Anders Møller, Aske Simon Christensen, Asger Feldthaus.