2017-03-05 13 views
1

戻り値の型と引数を持つ関数をuint32_tとlong doubleとして作成する方法はありますか? たとえば、次のように我々はint型の引数を作成することができます:LLVMリンクで引数を指定してllvm passの関数を作成し、型uint32_tとlong double型を返します

std::vector<Type*>FuncTy_args; 
FuncTy_args.push_back(IntegerType::get(M.getContext(), 32)); 

http://llvm.org/docs/doxygen/html/classllvm_1_1Type.htmlを。私はすべての種類のビットの種類及び数の点で表され、LLVM IRにおいてのみ

static PointerType * getInt32PtrTy (LLVMContext &C, unsigned AS=0)

static PointerType * getDoublePtrTy (LLVMContext &C, unsigned AS=0) 

答えて

1

を見ることができます。それらがコンパイルされると、署名付きおよび署名なしの情報が失われます。したがって、CコードをLLVM IRにコンパイルすると、uint32_tのようなタイプはi32になり、long doubleは80ビット浮動フォーマットなのでx86_fp80になります。 typesに関する情報があります。 long doubleにはfunctionを使用できると思います。 uint32_tは、this機能を使用できます。

関連する問題