• Title/Summary/Keyword: SSA form

Search Result 23, Processing Time 0.02 seconds

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.

Processing of Code Optimization in CTOC (CTOC에서 코드 최적화 수행)

  • Kim, Ki-Tae;Yoo, Weon-Hee
    • Journal of Korea Multimedia Society
    • /
    • v.10 no.5
    • /
    • pp.687-697
    • /
    • 2007
  • Although the Java bytecode has numerous advantages, there are also shortcomings such as slow execution speed and difficulty in analysis. Therefore, in order for the Java class file to be effectively executed under the execution environment such as the network, it is necessary to convert it into optimized code. We implemented CTOC for transforming to optimized code. In Optimization, SSA Form that distinguish variable by assignment is used to determine value and type statically. Copy propagation, dead code elimination optimization is applied to SSA Form. However, existing SSA Form is related to variable than expression. Therefore, in this paper, to performing optimization to SSA Form expression, after performing copy propagation and dead code elimination, in addition to that, partial redundant expression elimination is performed

  • PDF

Implementation of Loop Peeling in CTOC (CTOC에서 루프 벗기기 구현)

  • Kim, Ki-Tae;Kim, Je-Min;Yoo, Weon-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.13 no.5
    • /
    • pp.27-35
    • /
    • 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.

  • 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.

Static Type Inference Based on Static Single Assignment for Bytecode (바이트코드를 위한 정적 단일 배정문 기반의 정적 타입 추론)

  • Kim Ji-Min;Kim Ki-Tea;Kim Je-Min;Yoo Weon-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.11 no.4 s.42
    • /
    • pp.87-96
    • /
    • 2006
  • Although bytecode has many good features, it has slow execution speed and it is not an ideal representation for program analysis or optimization. For analysises and optimizations. bytecode must be translated to a Static Single Assignment Form(SSA Form) But when bytecode is translated a SSA Form it has lost type informations of son variables. For resolving these problem in this paper, we create extended control flow graph on bytecode. Also we convert the control flow graph to SSA Form for static analysis. Calculation about many informations such as dominator, immediate dominator. dominance frontier. ${\phi}$-Function. renaming are required to convert to SSA Form. To obtain appropriate type for generated SSA Form, we proceed the followings. First. we construct call graph and derivation graph of classes. And the we collect information associated with each node. After finding equivalence nodes and constructing Strongly Connected Component based on the collected informations. we assign type to each node.

  • PDF

Copy Propagation in CTOC (CTOC에서 복사 전파)

  • Kim, Ki-Tae;Kim, Je-Min;Yoo, Won-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.12 no.1 s.45
    • /
    • pp.1-8
    • /
    • 2007
  • Although the Java bytecode has numerous advantages. there ate also shortcomings such as slow execution speed and difficulty in analysis. Therefore. in order for the Java class file to be effectively executed under the execution environment such as the network, it is necessary to convert it into optimized code. We implements CTOC. CTOC generated CFG using the existing bytecode then created the SSA Form for analysis and optimization. However. due to insertion or the ${\phi}$-function in the process of conversion into the SSA Form, the number of nodes increased. As a means of reducing the number of nodes, we performed copy propagation, which is an optimization method applicable to the SSA form. Copy propagation is the process of a value of a variable being topied to another variable. There are cases where conversion due to copy propagation alone does not yield significant effects. However, when variables are not used in the later optimization stages, copy propagation provides a means for eliminating the copy statement for the corresponding variable, making it an important step. This paper shows the copy propagation to obtain a more optimized code in SSA Form.

  • PDF

An Efficient Application o of Static Single Assignment Form (SSA Form의 효율적 적용)

  • Du, Li-Dan;Kim, Ki-Tae;Kim, Je-Min;Yoo, Weon-Hee
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2007.06c
    • /
    • pp.505-509
    • /
    • 2007
  • Static Single Assignment (SSA) form is an intermediate representation which encodes information about data and control flow that is use used to facilitate program analysis and optimization. SSA form simplifies this process with its size linear to program size. Thus we use SSA form to efficiently facilitate bytecode level analysis and optimizations in our CTOC program processor project. In this paper, we illustrate the application and implement implementation of SSA form using an example. We give the conclusion after experimental results.

  • PDF

Static Single Assignment Form for Java Bytecodes in CTOC (CTOC에서 자바 바이트코드를 위한 정적 단일 배정 형태)

  • Kim, Ki-Tae;Yoo, Weon-Hee
    • The KIPS Transactions:PartD
    • /
    • v.13D no.7 s.110
    • /
    • pp.939-946
    • /
    • 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. We implements CTOC for optimized codes. An extended CFG must be first created in order to analyze and optimize a bytecode. Due to unique bytecode properties, the existing CFG must be expanded according to the bytecode. Furthermore, the CFG must be converted into SSA Form for a static analysis, for which calculation is required for various information such as the dominate relation, dominator tree, immediate dominator, $\phi$-function, rename, and dominance frontier. This paper describes the algorithm and the process for converting the existing CFG into the SSA From. The graph that incorporates the SSA Form is later used for type inference and optimization.

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

Implementation of SSA Form for Array in CTOC (CTOC에서 배열을 위한 SSA Form 의 구현)

  • Kim, Je-Min;Kim, Ki-Tae;Yoo, Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • pp.1531-1534
    • /
    • 2007
  • 자바 바이트코드는 인터넷에서 바로 내려 받아 사용할 수 있는 형태로서 많이 사용된다. 따라서 그것에 대한 최적화가 중요하다. 따라서 이를 효율적으로 수행하기 위한 CTOC 프레임워크를 구현하였다. CTOC 에서 자바 바이트코드에 대한 스칼라 변수에 대한 최적화는 이미 많이 존재하지만, 배열에 대한 최적화는 그렇지 않다. 이 논문에서는 기존의 CTOC 에서의 배열 최적화를 위한 SSA form 에 대한 적용과 구현을 위해 기존에 있는 Array SSA form 과 Region Array SSA 의 사용을 보다 간단하게 하는 방법을 제안한다.

  • PDF