簡易檢索 / 詳目顯示

研究生: 簡奕紘
Chien, Yi-Hung
論文名稱: 建立於LLVM上之Java程式分析及轉換
A Java Analysis and Transformation Framework Based on Low Level Virtual Machine (LLVM)
指導教授: 徐爵民
Shyu, Jyuo-Min
口試委員:
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2009
畢業學年度: 97
語文別: 中文
論文頁數: 60
中文關鍵詞: 編譯器
外文關鍵詞: LLVM
相關次數: 點閱:90下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • With the rapid advancement of embedded system design technologies, today's portable devices perform an ever increasing number of functionalities. A clear trend for recent portable devices is to embed multiple processors to provide the required computing power. Reducing the energy consumption for portable devices therefore has become a major concern in system design. On the other hand, Java language has become popular in developing application programs for portable devices. In this thesis, we propose a framework based on Low Level Virtual Machine (LLVM) for the analysis and transformation for Java programs for portable devices. Experimental results are shown to verify the effectiveness of the proposed framework.


    隨著嵌入式系統技術的發展,現今單一手持式裝置可以處理或提供越來越多的功能,單一處理器經常無法滿足系統運算需求,而需有多個處理器來負責複雜的工作,也因此有許多研究將重點放在如何減少這些裝置電源的消耗或是如何提高程式執行的效能上。另一方面我們也發現在手持式平台上面使用Java 撰寫應用程式已經逐漸成為趨勢,因此我們想要提供一建立在LLVM上之Framework,此Framework能夠提供開發者一個對於Java 程式分析或者是優化(如程式執行時記憶體的優化)的環境。我們在實驗的部分展示出,當Java程式進入我們的Framework後能夠得到哪些分析的資訊以及如何對程式作優化轉換,並且實際執行Benchmark。

    第1章 研究動機.................. ...................... 7 第2章 相關研究.......................................... 10 第3章 研究方法.......................................... 11 3.1 LLVM.............................................. 11 3.1.1 LLVM Compiler Infrastructure............... 12 3.1.2 LLVM Optimizer............................. 15 3.1.3 撰寫Pass的方法............................. 18 3.2 在LLVM上建立Framework............................. 22 3.2.1 Stack Based Java Instructions.............. 24 3.2.2 Dynamic Java Instructions.................. 30 3.2.3 Java Exception............................. 33 第4章 實驗結果.......................................... 37 4.1 來自LLVM的分析資訊................................ 38 4.1.1 Control Flow Graph of Java Method.......... 38 4.1.2 Loop Detection............................. 43 4.1.3 Class Field................................ 45 4.1.4 Method Call................................ 47 4.1.5 Java Exception............................. 49 4.2 Transform......................................... 51 4.3 在Framework上執行Java程式......................... 54 第5章 結論與未來研究方向................................ 57 參考文獻................................................ 58

    [1] Chris Lattner, “LLVM: An Infrastructure for Multi- Stage Optimization,” Masters Thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, Dec. 2002.
    [2] Vikram Adve, Chris Lattner, Michael Brukman, Anand Shukla, and Brian Gaeke, “LLVA: A Low-level Virtual Instruction Set Architecture,” Proceedings of the 36th annual ACM/IEEE International Symposium on Microarchitecture (MICRO-36), San Diego, CA, Dec. 2003.
    [3] Chris Lattner and Vikram Adve, “LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation,” Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO'04), Mar. 2004.
    [4] Chris Lattner, “Introduction to the LLVM Compiler Infrastructure,” 2006 Itanium Conference and Expo, San Jose, California, Apr. 2006.
    [5] Chris Lattner, “The LLVM Compiler System,” 2007 Bossa Conference on Open Source, Mobile Internet and Multimedia, Recife, Brazil, Mar. 2007.
    [6] Chris Lattner, “LLVM 2.0 and Beyond! ,” Google Tech Talk, Mountain View, CA, July 2007.
    [7] Sumant Kowshik, Dinakar Dhurjati, and Vikram Adve, “Ensuring Code Safety Without Runtime Checks for Real-Time Control Systems,” Int'l Conf. on Compilers, Architecture and Synthesis for Embedded Systems (CASES02),
    Grenoble, France, Oct. 2002.
    [8] Chris Lattner and Vikram Adve, “Data Structure Analysis: An Efficient Context-Sensitive Heap Analysis,” Technical Report #UIUCDCS-R-2003-2340, Computer Science Dept., Univ. of Illinois, Apr. 2003.
    [9] Dinakar Dhurjati, Sumant Kowshik, Vikram Adve and Chris Lattner, “Memory Safety Without Garbage Collection for Embedded Applications,” ACM Transactions in Embedded Computing Systems (TECS), Feb. 2005.
    [10] Matthew Simpson, Bhuvan Middha and Rajeev Barua, “Segment Protection for Embedded Systems Using Run-time Checks,” Proceedings of the ACM International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES'05), San Francisco, CA, Sep. 2005.
    [11] Nicholas Lewycky, “Checker: a Static Program Checker,” B.Sc. Thesis, Computer Science Dept., Ryerson University, June 2006.
    [12] Bernard Scholz, Chenyi Zhang, and Cristina Cifuentes, “User-Input Dependence Analysis via Graph Reachability,” Technical Report #TR-2008-171, Sun Microsystems, Mar. 2008.
    [13] VMKit
    http://vmkit.llvm.org/
    [14] LLVM
    http://llvm.org/
    [15] Java Native Interface (JNI)
    http://java.sun.com/docs/books/jni/html/jniTOC.html
    [16] Byte Code Engineering Library (BCEL)
    http://jakarta.apache.org/bcel
    [17] The Java Virtual Machine Specification http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.htmll

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)

    QR CODE