Java Doc for VerifyCFG.java in  » Database-DBMS » db4o-6.4 » EDU » purdue » cs » bloat » cfg » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Database DBMS » db4o 6.4 » EDU.purdue.cs.bloat.cfg 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   EDU.purdue.cs.bloat.tree.TreeVisitor
      EDU.purdue.cs.bloat.cfg.VerifyCFG

VerifyCFG
public class VerifyCFG extends TreeVisitor (Code)
VerifyCFG visits the nodes in a control flow graph and verifies that certain properties of the graph are true. For instance, value numbers of expressions are not equal to -1, node connections are consistent, exception handlers are set up correctly, etc. Mostly used for debugging purposes.


Field Summary
 Blockblock
    
 FlowGraphcfg
    
 booleancheckValueNumbers
    
 Setnodes
    
 Nodeparent
    
 Setuses
    

Constructor Summary
public  VerifyCFG()
     Constructor.
public  VerifyCFG(boolean checkValueNumbers)
     Constructor.

Method Summary
public  voidvisitBlock(Block block)
     First make sure that the Block indeed is in the CFG.
public  voidvisitDefExpr(DefExpr expr)
     Keep track of all the uses of the expression defined by the DefExpr.
public  voidvisitExpr(Expr expr)
     If desired, make sure that the value number of the Expr is not -1.
public  voidvisitFlowGraph(FlowGraph cfg)
     Visit the blocks and expression trees in a control flow graph.
public  voidvisitGotoStmt(GotoStmt stmt)
     Make sure that the target of goto is valid.
public  voidvisitIfStmt(IfStmt stmt)
     Make sure that the targets of the if statement are valid.
public  voidvisitJsrStmt(JsrStmt stmt)
     Make sure that all of the targets of the jsr are valid.
public  voidvisitNode(Node node)
     Make sure that the Node resides in the block that we expect it to and that it has the expected parent expression tree Node.
public  voidvisitRetStmt(RetStmt stmt)
     Make sure that all of targets of the ret are valid.
public  voidvisitStoreExpr(StoreExpr node)
     If desired, makes sure that the store expression's value number is not -1.
public  voidvisitSwitchStmt(SwitchStmt stmt)
     Make sure that that all of the targets of the switch are valid.
public  voidvisitVarExpr(VarExpr expr)
     Make sure that the VarExpr either defines a local variable, is defined by another expression, or is the child of a PhiStmt (therefore making the VarExpr a phi-variable).

Field Detail
block
Block block(Code)



cfg
FlowGraph cfg(Code)



checkValueNumbers
boolean checkValueNumbers(Code)



nodes
Set nodes(Code)



parent
Node parent(Code)



uses
Set uses(Code)




Constructor Detail
VerifyCFG
public VerifyCFG()(Code)
Constructor. Don't check value numbers.



VerifyCFG
public VerifyCFG(boolean checkValueNumbers)(Code)
Constructor. Since value numbers are not strictly part of the control flow graph, they may or may not be checked. For instance, if a CFG is being verfied before value numbers are assigned, we would not want to check them.
Parameters:
  checkValueNumbers - Are the value numbers of expressions checked?




Method Detail
visitBlock
public void visitBlock(Block block)(Code)
First make sure that the Block indeed is in the CFG. If the block begins an exception handler, then make sure that all edges from protected blocks lead to the handler block. Also make sure that all of the handler block's predacessor lead to protected blocks. Finally, make sure that the successor/predacessor relationship holds.



visitDefExpr
public void visitDefExpr(DefExpr expr)(Code)
Keep track of all the uses of the expression defined by the DefExpr. This information is used when verifying the FlowGraph.



visitExpr
public void visitExpr(Expr expr)(Code)
If desired, make sure that the value number of the Expr is not -1.



visitFlowGraph
public void visitFlowGraph(FlowGraph cfg)(Code)
Visit the blocks and expression trees in a control flow graph. Examine the uses of a variable that is defined in the CFG. Make that all uses are reachable (i.e. are in the CFG).



visitGotoStmt
public void visitGotoStmt(GotoStmt stmt)(Code)
Make sure that the target of goto is valid.



visitIfStmt
public void visitIfStmt(IfStmt stmt)(Code)
Make sure that the targets of the if statement are valid. Targets consist of the true target, the false target, and the first blocks of any exceptions that may be thrown by the if statement.



visitJsrStmt
public void visitJsrStmt(JsrStmt stmt)(Code)
Make sure that all of the targets of the jsr are valid. The only target is the entry block of the subroutine.



visitNode
public void visitNode(Node node)(Code)
Make sure that the Node resides in the block that we expect it to and that it has the expected parent expression tree Node. Make sure that the children of this Node are also correct.



visitRetStmt
public void visitRetStmt(RetStmt stmt)(Code)
Make sure that all of targets of the ret are valid. The targets are the blocks to which the subroutine can return.



visitStoreExpr
public void visitStoreExpr(StoreExpr node)(Code)
If desired, makes sure that the store expression's value number is not -1. Makes sure that the store expression's block and parent Node are what we expect them to be. If the type of the StoreExpr is void, then make sure that its parent is an ExprStmt (i.e. make sure it is not nested within another expression).



visitSwitchStmt
public void visitSwitchStmt(SwitchStmt stmt)(Code)
Make sure that that all of the targets of the switch are valid.



visitVarExpr
public void visitVarExpr(VarExpr expr)(Code)
Make sure that the VarExpr either defines a local variable, is defined by another expression, or is the child of a PhiStmt (therefore making the VarExpr a phi-variable).



Fields inherited from EDU.purdue.cs.bloat.tree.TreeVisitor
final public static int FORWARD(Code)(Java Doc)
final public static int REVERSE(Code)(Java Doc)

Methods inherited from EDU.purdue.cs.bloat.tree.TreeVisitor
public int direction()(Code)(Java Doc)
public boolean forward()(Code)(Java Doc)
public boolean prune()(Code)(Java Doc)
public boolean reverse()(Code)(Java Doc)
public void setPrune(boolean prune)(Code)(Java Doc)
public void visitAddressStoreStmt(AddressStoreStmt stmt)(Code)(Java Doc)
public void visitArithExpr(ArithExpr expr)(Code)(Java Doc)
public void visitArrayLengthExpr(ArrayLengthExpr expr)(Code)(Java Doc)
public void visitArrayRefExpr(ArrayRefExpr expr)(Code)(Java Doc)
public void visitBlock(Block block)(Code)(Java Doc)
public void visitCallExpr(CallExpr expr)(Code)(Java Doc)
public void visitCallMethodExpr(CallMethodExpr expr)(Code)(Java Doc)
public void visitCallStaticExpr(CallStaticExpr expr)(Code)(Java Doc)
public void visitCastExpr(CastExpr expr)(Code)(Java Doc)
public void visitCatchExpr(CatchExpr expr)(Code)(Java Doc)
public void visitCheckExpr(CheckExpr expr)(Code)(Java Doc)
public void visitConstantExpr(ConstantExpr expr)(Code)(Java Doc)
public void visitDefExpr(DefExpr expr)(Code)(Java Doc)
public void visitExpr(Expr expr)(Code)(Java Doc)
public void visitExprStmt(ExprStmt stmt)(Code)(Java Doc)
public void visitFieldExpr(FieldExpr expr)(Code)(Java Doc)
public void visitFlowGraph(FlowGraph graph)(Code)(Java Doc)
public void visitGotoStmt(GotoStmt stmt)(Code)(Java Doc)
public void visitIfCmpStmt(IfCmpStmt stmt)(Code)(Java Doc)
public void visitIfStmt(IfStmt stmt)(Code)(Java Doc)
public void visitIfZeroStmt(IfZeroStmt stmt)(Code)(Java Doc)
public void visitInitStmt(InitStmt stmt)(Code)(Java Doc)
public void visitInstanceOfExpr(InstanceOfExpr expr)(Code)(Java Doc)
public void visitJsrStmt(JsrStmt stmt)(Code)(Java Doc)
public void visitLabelStmt(LabelStmt stmt)(Code)(Java Doc)
public void visitLocalExpr(LocalExpr expr)(Code)(Java Doc)
public void visitMemExpr(MemExpr expr)(Code)(Java Doc)
public void visitMemRefExpr(MemRefExpr expr)(Code)(Java Doc)
public void visitMonitorStmt(MonitorStmt stmt)(Code)(Java Doc)
public void visitNegExpr(NegExpr expr)(Code)(Java Doc)
public void visitNewArrayExpr(NewArrayExpr expr)(Code)(Java Doc)
public void visitNewExpr(NewExpr expr)(Code)(Java Doc)
public void visitNewMultiArrayExpr(NewMultiArrayExpr expr)(Code)(Java Doc)
public void visitNode(Node node)(Code)(Java Doc)
public void visitPhiCatchStmt(PhiCatchStmt stmt)(Code)(Java Doc)
public void visitPhiJoinStmt(PhiJoinStmt stmt)(Code)(Java Doc)
public void visitPhiStmt(PhiStmt stmt)(Code)(Java Doc)
public void visitRCExpr(RCExpr expr)(Code)(Java Doc)
public void visitRetStmt(RetStmt stmt)(Code)(Java Doc)
public void visitReturnAddressExpr(ReturnAddressExpr expr)(Code)(Java Doc)
public void visitReturnExprStmt(ReturnExprStmt stmt)(Code)(Java Doc)
public void visitReturnStmt(ReturnStmt stmt)(Code)(Java Doc)
public void visitSCStmt(SCStmt stmt)(Code)(Java Doc)
public void visitSRStmt(SRStmt stmt)(Code)(Java Doc)
public void visitShiftExpr(ShiftExpr expr)(Code)(Java Doc)
public void visitStackExpr(StackExpr expr)(Code)(Java Doc)
public void visitStackManipStmt(StackManipStmt stmt)(Code)(Java Doc)
public void visitStaticFieldExpr(StaticFieldExpr expr)(Code)(Java Doc)
public void visitStmt(Stmt stmt)(Code)(Java Doc)
public void visitStoreExpr(StoreExpr expr)(Code)(Java Doc)
public void visitSwitchStmt(SwitchStmt stmt)(Code)(Java Doc)
public void visitThrowStmt(ThrowStmt stmt)(Code)(Java Doc)
public void visitTree(Tree tree)(Code)(Java Doc)
public void visitUCExpr(UCExpr expr)(Code)(Java Doc)
public void visitVarExpr(VarExpr expr)(Code)(Java Doc)
public void visitZeroCheckExpr(ZeroCheckExpr expr)(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.