Some system libraries like malloc strlen want or return size_t as parameter.
- What is the right choice in LLVM IR to interact with these functions?
- Is the selection the task for the compiler?
- Does LLVM IR have a size_t type?
At the LLVM level, size_t doesn't exist. It is a construct for the benefit of the developer that is typedef'd to a native type. The native types have a fixed size for the target architecture and that is how the compiler represents them in LLVM bit code. So on x86, size_t might by viewed by the front end as unsigned long, which it then writes to LLVM as i32 (since LLVM assembly doesn't have an unsigned type).
You can use size_t
in llvm, it is a valid type to be used as normal.
来源:https://stackoverflow.com/questions/10825186/it-there-an-equivalent-to-size-t-in-llvm