sangeeta chowdhary via llvm-dev
2018-Jul-17 04:08 UTC
[llvm-dev] How to use single interface for multiple types
Hi,
I have to pass different values to my instrumented function based on types.
Right now this is what I am doing -
if (fpConstant_op0->getTypeID() == Type::FloatTyID &&
fpConstant_op1->getTypeID() == Type::DoubleTyID)
HandleOp = M->getOrInsertFunction("handleOp_fd", void_ptr_ty,
int_ty, float_ty, double_ty);
else if (fpConstant_op0->getTypeID() == Type::DoubleTyID &&
fpConstant_op1->getTypeID() == Type::FloatTyID)
HandleOp = M->getOrInsertFunction("handleOp_df", void_ptr_ty,
int_ty, double_ty, float_ty);
else if (fpConstant_op0->getTypeID() == Type::DoubleTyID &&
fpConstant_op1->getTypeID() == Type::DoubleTyID)
HandleOp = M->getOrInsertFunction("handleOp_dd", void_ptr_ty,
int_ty, double_ty, double_ty);
I am having different functions based on types. My handles look like this
extern "C" void* handleOp_fd(size_t opCode, float op1, double op2)
extern "C" void* handleOp_df(size_t opCode, double op1, float op2)
extern "C" void* handleOp_dd(size_t opCode, double op1, double op2)
How can I unify this?. Instead of having many functions based on types, I want
to have only one function and pass different values with their types.
Any help would be much appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20180716/7ae2ce63/attachment.html>