2009-04-01から1ヶ月間の記事一覧

Module.hのメモ

Moduleとは? LLVM Moduleに関する情報をすべて持つ、IRのトップレベルコンテナ 以下のリストを持つ globals variables functions, moduleが依存するlibraryや他のモジュール シンボルテーブルを持つ その他もろもろを持つ endianessとか、size of a pointer…

練習: bcを読んで書くだけ

llvm-as,disを参考に。エラー処理等々は無視。idchange.cpp #include "llvm/Analysis/Verifier.h" #include "llvm/Assembly/Parser.h" #include "llvm/Assembly/PrintModulePass.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Bitcode/ReaderWr…

練習: 関数一覧

llvm-asを参考に。無駄なincludeは多いはず&エラー処理は無視。funclist.cpp #include "llvm/Analysis/Verifier.h" #include "llvm/Assembly/Parser.h" #include "llvm/Assembly/PrintModulePass.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/…

opt -predsimplify

predsimplify(Predicate Simplifier)を指定したら静的解析ツール的な事ができないか、と思ったので実験。 sample.cpp #include #include int *nonfail_malloc() { int *p = (int *)malloc(sizeof(int)); if(p == 0) { exit(0); } return p; } int foo(int *r…

optコマンド

optコマンドの最適化をひとつずつ試してみたいが、いまひとつ意味がわからないのが多い。とりあえず、標準的なものをひととおりやってくれそうな'-std-compile-opts'を試す。sample.cpp int foo() { int i = 5; int ret; if(i command line llvm-gcc -O0 -S …

C++ソースコード上の位置を復元する方法がわからない

llvm-gccに-gオプションをつければ、デバッグ情報としてソースコード上の位置は残るらしい(普通のgccのように)。sample.cpp #include void foo(); int main() { foo(); return 0; } command line llvm-gcc -S -g -emit-llvm sample.cpp -o sample.ll sample.…

LLVMを試してみる

# C++ source(sample.cpp) -> LLVM assembly language(sample.ll) llvm-gcc -S -emit-llvm sample.cpp -o sample.ll # LLVM assembly language(sample.ll) -> LLVM bitcode(sample.bc) llvm-as sample.ll -o sample.bc # (remove sample.ll) rm -f sample.ll…

llvmインストール

llvmダウンロードページ http://llvm.org/releases/download.htmlDownload LLVM 2.5 より、 LLVM source code (6M) llvm-2.5.tar.gz をDL。普通に以下で完了。 ./configure make make install 全部入りかと思いきや、llvm-gccはこれに含まれてないようだ。別…

VMWare Player & CentOS5 インストールメモ

VMWare Playerのダウンロード 以下より。特に迷うところはない。 http://www.vmware.com/jp/products/player/ VMWareインストール インストーラ実行のみ。特に迷う事なし。 CentOS DVDのISOファイルのダウンロード 以下より適当なサイトを選びダウンロード。…

はてな記法実験場

はてな記法一覧 http://hatenadiary.g.hatena.ne.jp/keyword/%e3%81%af%e3%81%a6%e3%81%aa%e8%a8%98%e6%b3%95%e4%b8%80%e8%a6%a7 pre記法 pre記法 pre記法

ソフトウェア工学

高価な静的解析ツールを導入したり、ソフトウェア開発プロセスに凝ってみたりする前に、まずはコンパイラの吐く警告を消してみた方が良くはないか。

PASMO

PASMO定期を作れない区間もあるのに、PASMO専用改札増やすのはやめてほしいところ。

VMWare Player

VMWare Player関連リンク。VMWare Playerダウンロード http://www.vmware.com/jp/products/player/vmwareイメージをDLできるサービス? http://www.easyvmx.com/CentOSをセットアップするまでの手順記事 http://mkosaki.blog46.fc2.com/blog-entry-32.html

C Statical Analysis Tools

仕事関連でC言語の静的解析に興味をもったので、参考になりそうなサイトのメモ。 C Statical Analysis Tools http://jprvita.wordpress.com/tag/msc/LLVM/Clangというのがお勧めらしい。 参考URLGetting Started: Building and Running Clang http://clang.l…

携帯から送る

携帯から送る実験。

開設

ブログの練習をしてみたいので開設。 みんながやってる記事のジャンルわけとかどうやるんだろ? カテゴリ機能、詳細編集の左上のフォルダのアイコンらしい。とりあえず「実験」カテゴリで。