malloc strlenのような一部のシステムライブラリは、パラメータとしてsize_tを必要とするか返します。
- これらの機能と対話するためのLLVMIRの正しい選択は何ですか?
- 選択はコンパイラのタスクですか?
- LLVM IRにはsize_tタイプがありますか?
LLVM レベルでは、size_t は存在しません。これは、ネイティブ型に typedef された開発者の利益のための構造です。ネイティブ型は、ターゲット アーキテクチャに対して固定サイズであり、それがコンパイラが LLVM ビット コードで表現する方法です。そのため、x86 では、size_t はフロント エンドによって unsigned long と見なされる可能性があり、それが LLVM に i32 として書き込まれます (LLVM アセンブリには unsigned 型がないため)。
llvm で使用できsize_t
、通常どおり使用できる有効なタイプです。