2017-03-05 14 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을. 난 단지

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

LLVM IR에서
static PointerType * getDoublePtrTy (LLVMContext &C, unsigned AS=0) 

답변

1

, 모든 유형의 종류와 비트의 수를 기준으로 표시됩니다 볼 수 있습니다. 일단 컴파일되면 서명 된 정보와 서명되지 않은 정보가 손실됩니다. 따라서 C 코드가 LLVM IR로 컴파일되면 uint32_t와 같은 유형은 i32이되고 long double은 80 비트 부동 형식이므로 x86_fp80이됩니다. 다음은 types에 대한 정보입니다. long doublefunction을 사용할 수 있다고 생각합니다. uint32_tthis 기능을 사용할 수 있습니다.