You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Pythonにはllvmliteというパッケージがあり、これが非常に便利だった! なんてったってLLVM IRが楽に出力できる!LLVMの最初の一歩にはすごくいいと思う。 そんなわけで「llvmliteのインストール」〜「ちょっと動かしてみる」までやってみる! 環境 Windows7にVirtualBoxでUbuntuを仮想化してインストールした。 基本的にUbuntu派生のディストリなら動くと思う。実際、自分はLinuxMint 17.3(Cinnamon 64bit)でも同様の手順でインストールしたが、ちゃんと動いている。 ホスト Windows7 64bit 仮想化ソフトウェア VirtualBox ゲストOS Ubuntu 14.04.3 64bit プロセッサ数 1 メモリ 2GB※ ※2GBほどないと、LLVMのmakeがメモリ不足でこけます。 とりあえずapt-getで必要な
LLDBとの出会い LLVMを読むためのサポートとしてデバッガを使おう、と思い立ち調べていたら、GDBではなくLLDBという代物があるらしい。知らなかった。しかも結構前からあるみたい。 以下、LLDBのページより抜粋したものを我的翻訳。 LLDBとは? LLDBは次世代の高性能デバッガである。Clang expressionパーサとかLLVM Disassemblerのような、より大きなLLVMプロジェクトにおいて再利用しやすいコンポーネントとしてビルドされる。 今のところ何が嬉しいのかよくわかんねぇけど。 LLDBは次世代の高性能デバッガである。 この一文だけで十分なモチベーションになる。 以降、LLDBチュートリアルをまとめていく。飽くまで筆者の理解であり、メモ程度。 LLDBチュートリアル コマンドの構造 LLDBのコマンドは、GDBより構造的な構文になっている。コマンドは、全て以下
始めに 原題は「Obfuscator-LLVM — Software Protection for the Masses」[1] で、ICSE2015[2]のワークショップ[3]で今年からはじまったSPRO[4]で発表された論文です。OHPはこちら[5]です 内容は LLVM の中間コードを難読化する拡張を オープンソースとして作りましたという報告の 作りました論文です。実装なしで 手法の提案だけをされるよりも 使える実装のある論文のほうが 読んでてワクワクするので私は好きです 商用開発で必用な技術なのにこれまでオープンソースの適切な実装がなく、それを提供したことが Contributionと主張されてますが全くその通りだと思います。 私もこんなの欲しかった コードはこちらのgithubで公開されています インストールして使ってみた記事をこちらに用意いたしました 前提知識 Obfuscat
小ネタ 2015-008 LLVM中間コードを生成するTiny BASICコンパイラを作ってみた 以前、CIL(MSIL)中間コードを生成するTiny BASICコンパイラというのを作ってみた。(2012-09-01) それを元にJavaバイトコードを生成するTiny BASICコンパイラを作ってみた。(2013-03-01) 今回、これらをベースにLLVM中間コード(LLVM-IR)を生成するTiny BASICコンパイラを作ってみた。(2015-12-04) 1. つくってみたもの Tiny Basic Compiler (LLVM中間コード版) [ Tiny Basic Compiler 実行ファイル+ソースコード tinybas_llvm-ir_01.zip (download) ] 特徴 ・整数型の小型なBASIC ・シンプルな言語仕様なのでソースコードも短く、コンパイラの仕組み
(注:2017/07/06、いただいたフィードバックを元に翻訳を修正いたしました。) この記事は、 LLVM コンパイラ基盤を使ってリサーチをする人のための入門書です。これを読めば、コンパイラに全く興味のない大学院生も、楽しみながらLLVMを使って優れた功績をあげられるようになるでしょう。 LLVMとは何か? LLVMは非常に優れていて、ハックしやすく、C言語やC++のような”ネイティブ”言語向けの、時代の先端を行くコンパイラです。 LLVMの素晴らしさに関しては他にも様々な話を聞くのではないでしょうか(JITコンパイラとしても使えるとか、C言語系列以外の様々な言語を強化できるとか、 App Storeからの新しい配信形態 であるとか、などなど)。もちろん全部本当のことですが、今回の記事の目的としては、上述の定義が重要です。 LLVMが他のコンパイラと差別化される理由には、いくつかの大きな
今回、ちょっとした縁によりBonanzaをブラウザで動かしてみました。Bonanza 6.0のソースコードをほぼそのまま利用して、EmscriptenでJavaScriptに変換しています。 技術的なことに興味はない、すぐに遊んでみたい!という方はこちらからどうぞ。初回に45Mほどダウンロードが発生します!ご注意ください。 http://tkihira.github.io/embona/index.html 上のURLに行くとCPU vs CPUの戦いが始まります。自分で戦いたい方は新規対局で設定してください UI周りは相当手を抜いて実装したために多数バグがあるかと思います。ご容赦ください ブラウザが固まったりしませんが、CPU思考中に手を入力したり新規対局するのには大変反応が重い(というか思考が終わるまで反応しない)のにご注意ください データダウンロードで43Mbyte、さらに内部で展開
(#JuliaLang) Julia Advent Calendar 2014 12月5日担当 kimrin(twitter:kimrin) やっぴー♡ きむりんだよ♡ 小六女子のおっさん(40)だよ♡ (ここで読者おおいに混乱w) 今日はJulia言語に興味のある方だけでなく、組み込みとか低レベルのAPI/ABIに興味のある方にも見ていただきたい内容となっております。れっつちぇきらっちょーw さて、結論から言います。 実はJulia言語、REPLで定義した関数の LLVM IR(LLVMの中間表現)と Native Code(マシン語)が リアルタイムで観れますー!!! すごいでしょ! (俺はすごくないけどw) さて、興味湧きまくりんぐの視聴者のみなさんはここでJuliaの処理系をダウンロードするのです! そしてREPL(Julia本体)を起動するのです!!\(^o^)/ じゃ、準備はい
Over the past year, the WebKit project made tremendous progress on the ability to optimize JavaScript applications. A major part of that effort was the introduction of the Fourth Tier LLVM (FTL) JIT. The Fourth Tier JIT targets long-running JavaScript content and performs a level of optimization beyond WebKit's interpreter, baseline JIT, and high-level optimizing JIT. See the FTL Optimization Stra
Effective Android開発トラックの発表資料まとめです。 5つのセッションすべてでほぼ満員。立ち見がでるほど盛況でした。 EclipseでAndroidアプリケーション開発が許されるのは小学生までだよね / @sys1yagi タイトルは釣りですが内容は濃いです。 Android Studio First Step Guide / @mhidaka Android Studio First Step Guide from mhidaka Android Studioのレイアウト、パネルなど最初の一歩を解説。Eclipseから乗り換えよう!(埋め込みになぜか失敗するのでリンク先から見ていただけると…) できる!ART! / @checkela でむやんが贈るAndroidのART話。これであなたもARTマスター! ヒトが教える!LLVM / @sui_moti きつねさんでもわか
このエントリーは以下の「Webの未来 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること〜」というスライドへのアンサーエントリーです。 ひょんなことからまとめはじめたのですが、とりあえずタイトルにあがっているようなasm.js(あせむじぇいえす)やPNaCl(ぴなくる)、LLVMという単語が知らない人でもわかないひとがわかった気になれるように書きました。つまりわかってないやつとはエントリを書いている本人のことだよ! PNaClとasm.jsでカワルミライ Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること from Kei Nakazawa 結構ブクマが多いのでみんな気になっているんだろうなぁ、という雰囲気があります。 でも読んでみると良く分からない単語があったり、業界背景を理解して
Numba makes Python code fast Numba is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code. Learn More Try Numba » Accelerate Python Functions Numba translates Python functions to optimized machine code at runtime using the industry-standard LLVM compiler library. Numba-compiled numerical algorithms in Python can approach the speeds of C or FORTRAN.
先日llvm 3.3がリリースされました。aarch64(arm 64bit)のコードが生成できるようになったということなので、ソースからビルドして遊んでいたのですが、さりげなく凄く最適化されたコードが生成されているのに気がつきました。aarch64だと今は実行して確認できる環境が手元に無いので、普通のarmv7-aで同じことを試しました。 ここで使ったコードとその結果はgistに貼りました。 https://gist.github.com/tetsu-koba/5835724 ソースコード int sum(int x) { int sum = 0; int i; for (i = 1; i <= x; i++) { sum += i; } return sum; } 1からnまでの総和を求める関数です。1から100までの総和が5050なのはガウス少年の逸話で有名ですね。 gcc 4.8.
こんにちはサイボウズ・ラボの光成です。 今回は3月30日に開催された「x86/x64最適化勉強会5」の模様についてお伝えします。 x86/x64最適化勉強会会場 プログラム開発においては、開発の段階において早すぎる最適化は悪、本当に必要になってから最小限だけ行いなさいと言われています。 また今どきのコンパイラは優秀なので、下手な小細工はせずにコンパイラに任せておくのがよいとも言われています。 もちろん一般的にはそれは正しいのですが、普段動画や音声を利用するときに使われているコーデック、ネット上での決済時に利用される暗号ライブラリなどは、人の手によるアセンブリ言語で開発されていることが多いのもまた事実です。 私が主催しているこの勉強会はそういう下回りのライブラリを開発するときに必要な技術や情報の交換のために行っています。 ustreamで過去の会の動画も含めてみることができます。 以下、やや
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く