[llvm] [OCaml] Use DataLayout instead of string in (set_)data_layout (PR #228445)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 4 00:20:42 PDT 2026


================
@@ -328,14 +328,14 @@ value llvm_set_target_triple(value Trip, value M) {
   return Val_unit;
 }
 
-/* llmodule -> string */
+/* llmodule -> DataLayout.t */
 value llvm_data_layout(value M) {
-  return caml_copy_string(LLVMGetDataLayout(Module_val(M)));
+  return llvm_alloc_data_layout(LLVMGetModuleDataLayout(Module_val(M)));
 }
 
-/* string -> llmodule -> unit */
+/* DataLayout.t -> llmodule -> unit */
 value llvm_set_data_layout(value Layout, value M) {
-  LLVMSetDataLayout(Module_val(M), String_val(Layout));
+  LLVMSetModuleDataLayout(Module_val(M), DataLayout_val(Layout));
----------------
nikic wrote:

No, these are just two different functions in the C API. LLVMSetDataLayout takes a string and LLVMSetModuleDataLayout takes a DataLayout.

Similarly, LLVMGetDataLayout is the deprecated version of LLVMGetDataLayoutStr, which returns a string, and LLVMGetModuleDataLayout returns a DataLayout.

https://github.com/llvm/llvm-project/pull/228445


More information about the llvm-commits mailing list