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