llvm

    2

    2答えて

    私はコンパイラをビルドします。私はすでにbnfcを使って文法と型チェッカーを書いています。そして今、私はllvmを使って、bnfcによって生成された抽象構文木を使ってllvm IRコードを生成したいと思います。 LLVMのチュートリアルは、次のようにコンパイルすると言う: clang++ -g -O3 toy.cpp `llvm-config --cxxflags --ldflags --syst

    2

    1答えて

    私は間接呼び出しを探すためにいくつかのLLVMコードを書いています。今の私はLLVM :: loadinstructions、LLVMをトリガーCコード:: bitcast命令など を作成しましたが、私はこれをトリガー任意の間接的なCのコードを書くことができないよ: if(CallInst *CI = dyn_cast<CallInst>(&*S)) { if(!CI->getCalle

    0

    1答えて

    私はソースでいくつかのclangを書き直しています。ステートメントの前に1行挿入したい。私は次のようにif文の内側からの呼び出しがある場合のように:、 //there are call inside if (cmp(a,b) > 0 && cmp(c,d) < 0){ //do something } を私は今までに何ができるか: if (cmp(a,b) > 0 && cmp(c,d)

    0

    1答えて

    私はLLVM関数のパスを書いて、ある計測をやろうとしています。 はしたがって、私は、関数がdecalredされているソースファイルの機能が 行番号(開始と終了)を宣言している ファイル名を取得する必要があります。 私はすでにgetMetadata( "dbg")を見つけて試しましたが、コンパイラフラグ-gを使用したくありません。 これらの情報を取得する別の方法はありますか?

    1

    1答えて

    Ubuntu 16.04でLLVMソースコードを作成しようとしています。私はhereからのソースでバージョン4.0.1,4.0.0、および3.9.0を試しました。私はまた、いくつかのチュートリアルで示されているようにsvnのソースを使ってみました。ここで は私が取得エラーです: [1480/1747] Linking CXX executable bin/clang-3.9 FAILED: :

    0

    1答えて

    if文の中に関数呼び出しがあるかどうかを検出しようとしています。次のように: if (cmp(a, b)){ \\do something } I have found I could do this with AST matcher in following manner: Matcher.addMatcher(ifStmt(hasCondition(callExpr().bin

    3

    2答えて

    のローカル変数の実際の値を取得する: int a=0, b=0; とbはローカル変数であり、そのように、それらの値に任意の変更を行います。私は必要 a++; b++; MCJITの実行中にこの行コードの値を取得します。 実際の整数または任意の型の値ではなく、値がValueではありません。

    1

    1答えて

    をコンパイルすることなく、私はこれを正しく理解していないですが、これは私の理解です: (例えばソース翻訳者へのソースとして)打ち鳴らすのコードを使用してツールをコンパイルするために、あなたがする必要はありclangのソースを取得し、それを作成し、コードをclangのソースにリンクします。 私の理解は正しいのですか、代わりにダウンロードしてコードをリンクするだけのライブラリがありますか?

    2

    1答えて

    cmakeのバージョン3.5.1 のubuntu 16.04LTS をコンパイル: $ gitのクローン-b LLVM-4.0 https://github.com/obfuscator-llvm/obfuscator.git $ます。mkdir を構築 $ CDを構築します $ cmakeの-DCMAKE_BUILD_TYPE =リリース../obfuscator/ 私はcmake -DCMAK

    0

    1答えて

    clang libtoolingを使用して関数を解析しようとしています。ここで は私が分析したいソースコードです:私は、上記のファイル内の供述のすべての機能を得るために、私のツールを実行するとき #include <stdio.h> int main(){ int a = 100; printf("a==%d", a); } 、私は、ビルドイン/システム機能の多くは同