• Title/Summary/Keyword: Java Bytecodes

Search Result 15, Processing Time 0.017 seconds

Split Local Variables Using Static Single Assignment Form in CTOC (CTOC에서 정적 단일 배정문 형태를 이용한 지역 변수 분리)

  • Lee Kab-Lae;Yoo Weon-Hee;Kim Ki-Tae
    • The Journal of the Korea Contents Association
    • /
    • v.5 no.3
    • /
    • pp.73-81
    • /
    • 2005
  • CTOC(Classes To Optimized Classes) is a Java bytecode framework for optimization and analysis. Although Java bytecode has a significant amount of type information embedded in it, there are no explicit types for local variables. However, knowing types for local variables is very useful for both program optimization and analysis. This paper is a first part of CTOC framework. In this paper, we present methods for inferring static types for local variables in a 3-address, stackless, representation of Java bytecode. We use SSA Form(Single Static Assignment Form) for spliting local variables. Splited local variables will use to prepare for static type inference.

  • PDF

A Study on Static Type Assignment for Static Single Assignment Form (정적 단일 배정 형태를 위한 정적 타입 배정에 관한 연구)

  • Kim, Ki-Tae;Yoo, Weon-Hee
    • The Journal of the Korea Contents Association
    • /
    • v.6 no.2
    • /
    • pp.117-126
    • /
    • 2006
  • Although the Java bytecode has numerous advantages, there are also shortcomings such as slow execution speed and difficulty in analysis. In order to overcome such disadvantages, bytecode analysis and optimization must be performed. First control flow of the bytecode should be analyzed, after which information is required regarding where the variables are defined and used to conduct data flow analysis and optimization. There may be cases where variables with an identical name contain different values at a different location during the execution according to the value assigned to a variable in each location. Therefore, in order to statically determine the value and type, the variables must be separated according to allocation. In order to do so, the variables can be expressed using a static single assignment form. After the transformation into a static single assignment form, the type information of each node expressed by each variable and expression must be configured to perform static analysis and optimization. Based on the basic type information, this paper proposes a method for finding related equivalent nodes, setting the nodes with strongly connection components and efficiently assigning each node the type.

  • PDF

Constructing A Loop Tree in CTOC (CTOC에서 루프 트리 구성하기)

  • Kim, Ki-Tae;Kim, Je-Min;Yoo, Weong-Hee
    • The KIPS Transactions:PartD
    • /
    • v.15D no.2
    • /
    • pp.197-206
    • /
    • 2008
  • The CTOC framework was implemented to efficiently perform analysis and optimization of the Java bytecode that is often being used lately. In order to analyze and optimize the bytecode from the CTOC, the eCFG was first generated. Due to the bytecode characteristics of difficult analysis, the existing bytecode was expanded to be suitable for control flow analysis, and the control flow graph was drawn. We called eCFG(extended Control Flow Graph). Furthermore, the eCFG was converted into the SSA Form for a static analysis. Many loops were found in the conversion program. The previous CTOC performed conversion directly into the SSA Form without processing the loops. However, processing the loops prior to the SSA Form conversion allows more efficient generation of the SSA Form. This paper examines the process of finding the loops prior to converting the eCFG into the SSA Form in order to efficiently process the loops, and exhibits the procedures for generating the loop tree.

Value Numbering for Java Bytecodes Optimization in CTOC (CTOC에서 자바 바이트코드 최적화를 위한 Value Numbering)

  • Kim, Ki-Tae;Kim, Ji-Min;Kim, Je-Min;Yoo, Weon-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.11 no.6 s.44
    • /
    • pp.19-26
    • /
    • 2006
  • Redundant expressions must be eliminated in order to apply optimization for expressions in SSA Form from CTOC. This paper applied VN(Value Numbering) for this purpose. In order to carry out VN, SSAGraph must be first generated to maintain the information in the SSA Form, equivalent nodes must be found and SCC(Strongly Connected Component) generated. Equivalent nodes are assigned with an identical valnum through SCC. We could confirm elimiations for many nodes that added at SSA Form process after VN. The valnum can be applied in optimization and type inference.

  • PDF

Optimization Using Partial Redundancy Elimination in SSA Form (SSA Form에서 부분 중복 제거를 이용한 최적화)

  • Kim, Ki-Tae;Yoo, Weon-Hee
    • The KIPS Transactions:PartD
    • /
    • v.14D no.2
    • /
    • pp.217-224
    • /
    • 2007
  • In order to determine the value and type statically. CTOC uses the SSA Form which separates the variable according to assignment. The SSA Form is widely being used as the intermediate expression of the compiler for data flow analysis as well as code optimization. However, the conventional SSA Form is more associated with variables rather than expressions. Accordingly, the redundant expressions are eliminated to optimize expressions of the SSA From. This paper defines the partial redundant expression to obtain a more optimized code and also implements the technique for eliminating such expressions.