程序员的人生就是,将工作交给机器来做。
编译器的工作就是,将程序交给机器来做。
我昨天看了几个llvm的简介,大概意思就是,有一群歪果仁学习编译原理的时候,发现gcc太高冷了,让人望而生畏。于是他们就折腾了一个llvm。
虽然llvm是相对gcc还比较年轻的,但llvm的历史还是要从我读幼儿园的时候说起,大概在2000年前后开源的。
我本来在做一个代码的解析器,因为代码的格式真的很固定,应该不难。
然后找资料的时候,看到这个东西其实和llvm下的clang子项目的功能有点相近。
于是寻思这来借鉴一下源码,但是现在水管又小了,发现llvm其实挺大的,然而就几kb的速度。
后来找到了重点 — 清华源 ,将地址替换成了正式地址,下面做个记录:
clone地址:
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/llvm.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/clang.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/libcxx.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lldb.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/clang-tools-extra.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/polly.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/zorg.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/compiler-rt.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/libcxxabi.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lld.git
git clone https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lnt.git
如果本地有代码了,只是要加个远程库,同步代码,可以用下面两组命令:
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/llvm.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/clang.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/libcxx.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lldb.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/clang-tools-extra.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/polly.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/zorg.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/compiler-rt.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/libcxxabi.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lld.git
git remote add tuna https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lnt.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/llvm.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/clang.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/libcxx.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lldb.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/clang-tools-extra.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/polly.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/zorg.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/compiler-rt.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/libcxxabi.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lld.git
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/llvm/lnt.git
llvm的简介:
他们说llvm的IR比较厉害,开始不知道什么叫IR,后来才知道,原来是 Intermediate Representation 的缩写。