0

Function::Createメソッドを使用して入力パラメーターの型llvm::Instruction*class Type誰かヒントを教えてくれませんか?

また、具体的な比較については、Instruction *pi試しpi->getType()->print(errs())てみたところi1、タイプとして返​​されました。しかし、関数を別の cpp ファイルに書き、int externalCall(Instruction *p)IR にコンパイルしたとき。この IR は、タイプが であると述べていclass.llvm::Instructionます。この 2 つが異なるのはなぜですか?API から後者を取得するにはどうすればよいですか?

4

1 に答える 1

0

C スタイルのリンクを使用している限り、ポインターの型はほとんど関係ありません。

  • llvm側でi8へのポインタにキャスト
  • c/c++ 呼び出し側で必要な型を受け取ります。 Instruction *大丈夫です

BitcastInst(次のように、llvm 側で to ケースを使用するだけです。

BitCastInst *bitcast = new BitCastInst(value, PointerType::get(IntegerType::get(context, 8), 0));

(...あなたのオブジェクトはどこvalueですかInstruction *

于 2016-11-13T22:25:01.453 に答える