Re: [問題] 關於llvm tutorial

作者: mshockwave (夏克維夫)   2018-10-19 15:10:13
看到標題是 LLVM 差點哭出來
因為台灣真的在做 compiler 的人用手指就數得完
※ 引述《flypaper (一直飛)》之銘言:
: 開發平台(Platform): (Ex: Win10, Linux, ...)
: Ubuntu
: 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
: clang
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: llvm
: 問題(Question):
: 我在看llvm的附帶文件:
: http://llvm.org/docs/WritingAnLLVMPass.html#running-a-pass-with-opt
懶人包:這個教學過時非常非常非常久了
LLVM 現在有一個新的 PassManager 而且在 7.0 之後預設使用
而新的 Pass 的寫法和使用方法蠻不一樣的
我有寫一系列的文章大致講解怎麼寫/使用新的 Pass:
Part1:
https://medium.com/@mshockwave/writing-llvm-pass-in-2018-part-i-531c700e85eb
Part2:
https://medium.com/@mshockwave/writing-llvm-pass-in-2018-part-ii-640f680978ec
當然舊的 Pass 目前還是可以用 但是嘛...現在都預設使用新的了 不學一下嗎
: 裡面有段 Hello.cpp
: 然後我發現 clang++ Hello.cpp是無法成功編譯檔案的
: (錯誤訊息有點多 所以我就不加上了
: 我也試著編譯 關於llvm/lib/Transform裡面 也是無法成功
: 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
: p.s我付的網址裡面有這段code
: #include "llvm/Pass.h"
: #include "llvm/IR/Function.h"
: #include "llvm/Support/raw_ostream.h"
: using namespace llvm;
: namespace {
: struct Hello : public FunctionPass {
: static char ID;
: Hello() : FunctionPass(ID) {}
: bool runOnFunction(Function &F) override {
: errs() << "Hello: ";
: errs().write_escaped(F.getName()) << '\n';
: return false;
: }
: }; // end of struct Hello
: } // end of anonymous namespace
: char Hello::ID = 0;
: static RegisterPass<Hello> X("hello", "Hello World Pass",
: false /* Only looks at CFG */,
: false /* Analysis Pass */);
我還有寫一個小工具 是可以幫你生成一個簡單的 LLVM Pass 專案:
https://github.com/mshockwave/generator-llvm
因為...恩 每次都要打一堆 public FunctionPass 之類的很麻煩XDD
使用方法就如 README 所示
另外我有看到下面推文談到使用 llvm-config + make
恩...我個人是比較推薦用 cmake,因為 LLVM 已經提供一堆方便的
cmake function/macro,例如 add_llvm_loadable_module
比起 gcc pass.cpp `llvm-config
作者: clementchen (Clement Chen)   2018-10-19 15:37:00
覺得cmake好用+1
作者: lc85301 (pomelocandy)   2018-10-19 17:52:00
推一個
作者: dannypsnl (秦書)   2018-10-19 22:08:00
作者: dzwei (Cout<< *p << \n ;)   2018-10-20 00:33:00
推cmake
作者: hare1039 (hare1039)   2018-10-20 04:05:00
作者: a0919610611 (熾)   2018-10-20 05:41:00
gcc 的 pass 寫到起笑 相比LLVM 教學少好多QQ
作者: flypaper (一直飛)   2018-10-21 09:53:00
謝謝大大的幫忙
作者: angerD (丹佐)   2018-10-21 14:31:00
作者: jaid (jaid)   2018-10-23 18:06:00
作者: lc85301 (pomelocandy)   2018-10-24 13:17:00
咦 gcc 有教學嗎XD
作者: ronin728 (浪人)   2018-10-25 15:34:00
正在看JS V8原碼當休閒活動的路過

Links booklink

Contact Us: admin [ a t ] ucptt.com