• Title/Summary/Keyword: 정적 타입 배정

Search Result 8, Processing Time 0.021 seconds

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

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

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

A Study on Informediated code for Analyzing Bytecodes (바이트코드 분석을 위한 중간코드에 관한 연구)

  • Kim, Kyung-Soo;Yoo, Weon-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.11 no.1 s.39
    • /
    • pp.107-117
    • /
    • 2006
  • Java language creates class files through Java compiler. Class files include informations involved with achievement of program. We can do analysis and optimization for efficient codes by analyzing class files. This paper analyzes bytecodes using informations of Java class files. We translate stack-based Java bytecodes into 3-address codes. Then we translate into static single assignment form using the 3-address codes. Static single assignment form provides a compact representation of a variable's definition-use information. Static single assignment form is often used as an intermediate representation during code optimization. Static sing1e assignment form renames each occurrence of a variable such that each variable is defined only once.

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

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.

Implementation of Dead Code Elimination in CTOC (CTOC에서 죽은 코드 제거 구현)

  • Kim, Ki-Tae;Kim, Je-Min;Yoo, Won-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.12 no.2 s.46
    • /
    • pp.1-8
    • /
    • 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 implements CTOC. In order to statically determine the value and type, CTOC uses the SSA Form which separates the variable according to assignment. Also, it uses a Tree Form for statements. But, due to insertion of the $\phi$-function in the process of conversion into the SSA Form, the number of nodes increased. This paper shows the dead code elimination to obtain a more optimized code in SSA Form. We add new live field in each node and achieve dead code elimination in tree structures. We can confirm after dead code elimination though test results that nodes decreases.

  • PDF

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