LLVMの使い方を学びたいと思って、 LLVMで遊んでいます。
しかし、インターフェースの複雑さのレベルに頭がおかしくなりました。
たとえば、フィボナッチ関数を考えてみましょう
int fib(int x) {
if(x<=2)
return 1;
return fib(x-1) + fib(x-2);
}
これを LLVM IR に出力するには、61 行のコードが必要です!!!
また、最小のコンパイラ (200 バイト) で知られる BrainFuck も含まれています。残念ながら、LLVM では600 行(18 kb) を超えています。
これはコンパイラ バックエンドの標準ですか? これまでのところ、アセンブリまたは C バックエンドを実行する方がはるかに簡単であるように思われます。