目錄
- 簡介
- 背景知識
- 重要跟有用的 LLVM API
- 為你的程式挑個正確的資料結構
- 常用操作的小提示集
- 執行緒與 LLVM
- 進階議題
- LLVM 核心類別的族譜
Written by Chris Lattner, Dinakar Dhurjati, Gabor Greif, Joel Stanley, Reid Spencer and Owen Anderson
Translated by Kito Cheng (kito at 0xlab.org)
WIKI 版本
簡介
這份文件主要列出一些 LLVM 中重要的類別跟界面,而這邊並不會解釋 LLVM 是甚麼東西,它內部怎麼運作以及 LLVM 的程式碼看起來如何。對於本文件的閱讀者我們假設你對於 LLVM 已經有一些基礎的了解,並且對於寫最佳化、分析或玩弄程式碼有興趣。這份文件主要引導你如何擴充 LLVM 來達到你想要作的事。另外閱讀這份文件並不能取代啃 Source Code。如果你想看某個 Class 有哪些 Method 並且在幹嘛,那建議可以直接去看線上 doxygen 文件比較符合你的需求。
接下來的第一個章節主要介紹一些背景知識,第二章節則列出一些 LLVM 中核心的一些 Class ,未來這份文件會撰寫有關如何擴充整個 LLVM ,例如使用 Dominator 的資訊, Control Flow Graph 的走訪以及一些有用的小工具例如 InstVisitor template。
背景知識
這個章節放了一些有幫助你玩弄 LLVM 相關資訊的連結,但裡面沒提到 LLVM 相關的 API。譯註:會寫 C++ 的話直接跳過吧,另外沒用過 STL 的話不算在會 C++ 的範圍內
The C++ Standard Template Library
LLVM 大量使用 C++ 的 Standard Template Library (STL),所以基本上你需要一些對於 C++ STL 的基礎知識以及一些相關使用慣例,下面提供一些相關資訊的連結可以給你惡補一下。下面是惡補專區:
- C++ Library Dinkumware C++ Library reference - an excellent reference for the STL and other parts of the standard C++ library.
- C++ In a Nutshell - This is an O'Reilly book in the making. It has a decent Standard Library Reference that rivals Dinkumware's, and is unfortunately no longer free since the book has been published.
- C++ Frequently Asked Questions
- SGI's STL Programmer's Guide - Contains a useful Introduction to the STL.
- Bjarne Stroustrup's C++ Page
- Bruce Eckel's Thinking in C++, 2nd ed. Volume 2 Revision 4.0
沒有留言:
張貼留言