1
일부 코드에서는 LLVM C++ API를 통해 생성합니다. 한 지점에서 함수에 원시 주소가 지정되었습니다. 나는 함수 포인터이 점을 설정하고 다음과 같이 호출이 잘 작동LLVM : 포인터의 함수 속성 설정
llvm::FunctionType* ft = llvm::FunctionType::get(...);
llvm::Constant* iptr = llvm::ConstantInt::get(
engine->getDataLayout()->getIntPtrType(state.context, 0), (uint64_t) pointer);
llvm::Value* fptr = llvm::ConstantExpr::getIntToPtr(iptr,
llvm::PointerType::get(ft, 0));
llvm::Value* retval = state.builder.CreateCall(fptr, params);
--- 하지만 나는 몇 가지 기능이 최적화에 도움이 속성을 설정할 수 있도록하려면 : readnone
, 특히.
내가 아는 유일한 API는 llvm::Function
이며,이 API는 없습니다. C에서 작동하는 방법이기 때문에 속성을 함수 유형의 속성으로 기대할 수 있지만 llvm::FunctionType
에는 속성 API가없는 것 같습니다.
어떻게해야합니까?