LLVMを利用してCbCコンパイラを開発した時のメモ

インストール

インストールしないでllvmのバージョンを調べる方法

makeすると時間かかるからね。

% configure -V

gdbで動かす場合の手順

lldbで動かす場合の手順

実行時の引数は一緒なのでgdbで動かす場合のとこ見て。

gdbのちょっとしたテクニック

何度も引っかかるタイプのブレークポイントの最後の一回が見たいとき

distcleanについて

LLVMの場合distcleanではなくdist-clean。なのでconfigureからやり直したかったりで綺麗にしたい場合は

% make dist-clean

但し間違ってソースファイルと同じ場所に入れちゃった場合はできない。

clang ASTを見る方法

% clang -cc1 -ast-dump (source file)

もしくは

% clang -Xclang -ast-dump -c (source file)

最終的に生成されるASTと対応したコードの出力方法

% clang -cc1 -ast-print (source file)

内部でコードを生成したときにそれが実際に上手くいったかどうか確認するときとか使える。

LLVM IRのアセンブリ表現として出力する方法

% clang (source file) -S -emit-llvm

LLVM IRをlliで実行するためのバイナリとして出力する方法

% llvm-as (アセンブリ表現のbit code)

Machine Codeを見る方法

% llc -print-machineinstrs (LLVM IR file)

標準エラー出力に出力される。

CbC on LLVM のアップデート方法

% cmake -G Ninja -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_INSTALL_PREFIX:PATH=`pwd` ~/hg/CbC/LLVM_original 

memo

ヘッダファイルが見つからないと言われた時(stdio.h file not found 等)

homebrewでのインストール方法

% brew tap ie-developers/ie
% brew install cbc

でcbcがインストールされる。

% brew install cbc --HEAD

でRepositoryのHEADがインストールされる.

llvm 3.8.0 lldb 用tar ball

http://www.cr.ie.u-ryukyu.ac.jp/software/debug/CbCM.tgz

lldbがソースを見つけられるようにsymbolic link が必要。

 % sudo  mkdir  -p  /Users/kono/src/public
 % sudo   ln -s `pwd`/CbC  /Users/kono/src/public
 % sudo  ln -s `pwd`/CbC_llvm  /Users/kono/src/public

で、

 %  sudo lldb -- ./Debug+Asserts/bin/clang -cc1 -S hello.c

l main で main が表示されれば Ok 。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS