Java Doc for CodeGenerator.java in  » Database-DBMS » db4o-6.4 » EDU » purdue » cs » bloat » codegen » 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.codegen 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   EDU.purdue.cs.bloat.tree.TreeVisitor
      EDU.purdue.cs.bloat.codegen.CodeGenerator

CodeGenerator
public class CodeGenerator extends TreeVisitor implements Opcode(Code)
CodeGenerator performs some final optimizations and is used (via a visitor) to generate bytecode for the contents of a control flow graph.
See Also:   FlowGraph


Field Summary
public static  booleanDB_OPT_STACK
    
public static  booleanDEBUG
    
public static  booleanOPT_STACK
    
public static  booleanUSE_PERSISTENT
    
 StackOptimizercurrentSO
    
protected  MethodEditormethod
    
protected  Blocknext
    
public  booleannowb
    
protected  MappostponedInstructions
    
protected  intstackHeight
    
protected  Setvisited
    

Constructor Summary
public  CodeGenerator(MethodEditor method)
     Constructor.

Method Summary
public  voidallocReturnAddresses(FlowGraph cfg, RegisterAllocator alloc)
     Allocate "registers" (LocalVariables) for the return addresses for each subroutine in the method.
protected  StmtcreateStore(VarExpr target, Expr source)
     Returns an ExprStmt that contains a store of the source into the target.
protected  StmtcreateUndefinedStore(VarExpr target)
     Create a ExprStmt that initializes a target variable to a default value based on the type of the target.
public  voidreplacePhis(FlowGraph cfg)
     Replace PhiStmts with copies that accomplish what the PhiStmts represent.
public  voidsimplifyControlFlow(FlowGraph cfg)
     Simplifies the control flow of a method by changing jump and return statements into gotos where appropriate.
public  voidvisitAddressStoreStmt(AddressStoreStmt stmt)
    
public  voidvisitArithExpr(ArithExpr expr)
    
public  voidvisitArrayLengthExpr(ArrayLengthExpr expr)
    
public  voidvisitArrayRefExpr(ArrayRefExpr expr)
    
public  voidvisitCallMethodExpr(CallMethodExpr expr)
    
public  voidvisitCallStaticExpr(CallStaticExpr expr)
    
public  voidvisitCastExpr(CastExpr expr)
    
public  voidvisitCatchExpr(CatchExpr expr)
    
public  voidvisitConstantExpr(ConstantExpr expr)
    
public  voidvisitDefExpr(DefExpr expr)
    
public  voidvisitExpr(Expr expr)
    
public  voidvisitExprStmt(ExprStmt stmt)
    
public  voidvisitFieldExpr(FieldExpr expr)
    
public  voidvisitFlowGraph(FlowGraph cfg)
     Visits the nodes in the method's control flow graph and ensures that information about the method's basic blocks is consistent and correct.
public  voidvisitGotoStmt(GotoStmt stmt)
    
public  voidvisitIfCmpStmt(IfCmpStmt stmt)
    
public  voidvisitIfZeroStmt(IfZeroStmt stmt)
    
public  voidvisitInitStmt(InitStmt stmt)
    
public  voidvisitInstanceOfExpr(InstanceOfExpr expr)
    
public  voidvisitJsrStmt(JsrStmt stmt)
    
public  voidvisitLabelStmt(LabelStmt stmt)
    
public  voidvisitLocalExpr(LocalExpr expr)
    
public  voidvisitMonitorStmt(MonitorStmt stmt)
    
public  voidvisitNegExpr(NegExpr expr)
    
public  voidvisitNewArrayExpr(NewArrayExpr expr)
    
public  voidvisitNewExpr(NewExpr expr)
    
public  voidvisitNewMultiArrayExpr(NewMultiArrayExpr expr)
    
public  voidvisitPhiStmt(PhiStmt stmt)
    
public  voidvisitRCExpr(RCExpr expr)
    
public  voidvisitRetStmt(RetStmt stmt)
    
public  voidvisitReturnAddressExpr(ReturnAddressExpr expr)
    
public  voidvisitReturnExprStmt(ReturnExprStmt stmt)
    
public  voidvisitReturnStmt(ReturnStmt stmt)
    
public  voidvisitSCStmt(SCStmt stmt)
    
public  voidvisitSRStmt(SRStmt stmt)
    
public  voidvisitShiftExpr(ShiftExpr expr)
    
public  voidvisitStackExpr(StackExpr expr)
    
public  voidvisitStackManipStmt(StackManipStmt stmt)
    
public  voidvisitStaticFieldExpr(StaticFieldExpr expr)
    
public  voidvisitStoreExpr(StoreExpr expr)
    
public  voidvisitSwitchStmt(SwitchStmt stmt)
    
public  voidvisitThrowStmt(ThrowStmt stmt)
    
public  voidvisitUCExpr(UCExpr expr)
    
public  voidvisitZeroCheckExpr(ZeroCheckExpr expr)
    

Field Detail
DB_OPT_STACK
public static boolean DB_OPT_STACK(Code)



DEBUG
public static boolean DEBUG(Code)



OPT_STACK
public static boolean OPT_STACK(Code)
Use information about placement of local variables to eliminate loads and stores in favor of stack manipulations



USE_PERSISTENT
public static boolean USE_PERSISTENT(Code)



currentSO
StackOptimizer currentSO(Code)



method
protected MethodEditor method(Code)



next
protected Block next(Code)



nowb
public boolean nowb(Code)



postponedInstructions
protected Map postponedInstructions(Code)



stackHeight
protected int stackHeight(Code)



visited
protected Set visited(Code)




Constructor Detail
CodeGenerator
public CodeGenerator(MethodEditor method)(Code)
Constructor.
Parameters:
  method - The method for which bytecode is generated.




Method Detail
allocReturnAddresses
public void allocReturnAddresses(FlowGraph cfg, RegisterAllocator alloc)(Code)
Allocate "registers" (LocalVariables) for the return addresses for each subroutine in the method.
Parameters:
  cfg - Control flow graph for the method
Parameters:
  alloc - Allocation (and information about) the local variables in themethod.
See Also:   LocalVariable
See Also:   LocalExpr



createStore
protected Stmt createStore(VarExpr target, Expr source)(Code)
Returns an ExprStmt that contains a store of the source into the target.



createUndefinedStore
protected Stmt createUndefinedStore(VarExpr target)(Code)
Create a ExprStmt that initializes a target variable to a default value based on the type of the target.



replacePhis
public void replacePhis(FlowGraph cfg)(Code)
Replace PhiStmts with copies that accomplish what the PhiStmts represent. Then remove the PhiStmts from the control flow graph.



simplifyControlFlow
public void simplifyControlFlow(FlowGraph cfg)(Code)
Simplifies the control flow of a method by changing jump and return statements into gotos where appropriate.



visitAddressStoreStmt
public void visitAddressStoreStmt(AddressStoreStmt stmt)(Code)



visitArithExpr
public void visitArithExpr(ArithExpr expr)(Code)



visitArrayLengthExpr
public void visitArrayLengthExpr(ArrayLengthExpr expr)(Code)



visitArrayRefExpr
public void visitArrayRefExpr(ArrayRefExpr expr)(Code)



visitCallMethodExpr
public void visitCallMethodExpr(CallMethodExpr expr)(Code)



visitCallStaticExpr
public void visitCallStaticExpr(CallStaticExpr expr)(Code)



visitCastExpr
public void visitCastExpr(CastExpr expr)(Code)



visitCatchExpr
public void visitCatchExpr(CatchExpr expr)(Code)



visitConstantExpr
public void visitConstantExpr(ConstantExpr expr)(Code)



visitDefExpr
public void visitDefExpr(DefExpr expr)(Code)



visitExpr
public void visitExpr(Expr expr)(Code)



visitExprStmt
public void visitExprStmt(ExprStmt stmt)(Code)



visitFieldExpr
public void visitFieldExpr(FieldExpr expr)(Code)



visitFlowGraph
public void visitFlowGraph(FlowGraph cfg)(Code)
Visits the nodes in the method's control flow graph and ensures that information about the method's basic blocks is consistent and correct.
Parameters:
  cfg - The control flow graph associated with this method.



visitGotoStmt
public void visitGotoStmt(GotoStmt stmt)(Code)



visitIfCmpStmt
public void visitIfCmpStmt(IfCmpStmt stmt)(Code)



visitIfZeroStmt
public void visitIfZeroStmt(IfZeroStmt stmt)(Code)



visitInitStmt
public void visitInitStmt(InitStmt stmt)(Code)



visitInstanceOfExpr
public void visitInstanceOfExpr(InstanceOfExpr expr)(Code)



visitJsrStmt
public void visitJsrStmt(JsrStmt stmt)(Code)



visitLabelStmt
public void visitLabelStmt(LabelStmt stmt)(Code)



visitLocalExpr
public void visitLocalExpr(LocalExpr expr)(Code)



visitMonitorStmt
public void visitMonitorStmt(MonitorStmt stmt)(Code)



visitNegExpr
public void visitNegExpr(NegExpr expr)(Code)



visitNewArrayExpr
public void visitNewArrayExpr(NewArrayExpr expr)(Code)



visitNewExpr
public void visitNewExpr(NewExpr expr)(Code)



visitNewMultiArrayExpr
public void visitNewMultiArrayExpr(NewMultiArrayExpr expr)(Code)



visitPhiStmt
public void visitPhiStmt(PhiStmt stmt)(Code)



visitRCExpr
public void visitRCExpr(RCExpr expr)(Code)



visitRetStmt
public void visitRetStmt(RetStmt stmt)(Code)



visitReturnAddressExpr
public void visitReturnAddressExpr(ReturnAddressExpr expr)(Code)



visitReturnExprStmt
public void visitReturnExprStmt(ReturnExprStmt stmt)(Code)



visitReturnStmt
public void visitReturnStmt(ReturnStmt stmt)(Code)



visitSCStmt
public void visitSCStmt(SCStmt stmt)(Code)



visitSRStmt
public void visitSRStmt(SRStmt stmt)(Code)



visitShiftExpr
public void visitShiftExpr(ShiftExpr expr)(Code)



visitStackExpr
public void visitStackExpr(StackExpr expr)(Code)



visitStackManipStmt
public void visitStackManipStmt(StackManipStmt stmt)(Code)



visitStaticFieldExpr
public void visitStaticFieldExpr(StaticFieldExpr expr)(Code)



visitStoreExpr
public void visitStoreExpr(StoreExpr expr)(Code)



visitSwitchStmt
public void visitSwitchStmt(SwitchStmt stmt)(Code)



visitThrowStmt
public void visitThrowStmt(ThrowStmt stmt)(Code)



visitUCExpr
public void visitUCExpr(UCExpr expr)(Code)



visitZeroCheckExpr
public void visitZeroCheckExpr(ZeroCheckExpr expr)(Code)



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.