diff --git a/Directory.Build.props b/Directory.Build.props
index 3dd0688..3ec9239 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -25,7 +25,7 @@
embedded
false
true
- disable
+ enable
true
true
true
@@ -45,7 +45,7 @@
$(BaseArtifactsPath)pkg/$(Configuration)/
LLVMSharp
LLVMSharp
- 14.0.0
+ 15.0.0
beta1
pr
diff --git a/Directory.Build.targets b/Directory.Build.targets
index c080422..ee04b70 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -12,7 +12,7 @@
- $(NoWarn)
+ $(NoWarn);AD0001
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 31e1474..48318cb 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -12,7 +12,7 @@
-
+
diff --git a/LLVMSharp.sln b/LLVMSharp.sln
index 088222f..5970d16 100644
--- a/LLVMSharp.sln
+++ b/LLVMSharp.sln
@@ -99,9 +99,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libLLVM.runtime.win-x86", "
packages\libLLVM\libLLVM.runtime.win-x86\libLLVM.runtime.win-x86.nuspec = packages\libLLVM\libLLVM.runtime.win-x86\libLLVM.runtime.win-x86.nuspec
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libLLVM.runtime.ubuntu.21.10-x64", "libLLVM.runtime.ubuntu.21.10-x64", "{1808D302-0067-4121-964C-2CBAFB8A957A}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libLLVM.runtime.ubuntu.22.04-x64", "libLLVM.runtime.ubuntu.22.04-x64", "{1808D302-0067-4121-964C-2CBAFB8A957A}"
ProjectSection(SolutionItems) = preProject
- packages\libLLVM\libLLVM.runtime.ubuntu.21.10-x64\libLLVM.runtime.ubuntu.21.10-x64.nuspec = packages\libLLVM\libLLVM.runtime.ubuntu.21.10-x64\libLLVM.runtime.ubuntu.21.10-x64.nuspec
+ packages\libLLVM\libLLVM.runtime.ubuntu.22.04-x64\libLLVM.runtime.ubuntu.22.04-x64.nuspec = packages\libLLVM\libLLVM.runtime.ubuntu.22.04-x64\libLLVM.runtime.ubuntu.22.04-x64.nuspec
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libLLVM.runtime.win-arm64", "libLLVM.runtime.win-arm64", "{19DB05E9-59B6-45E9-B47D-62913F7DF9A8}"
@@ -123,6 +123,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libLLVM.runtime.freebsd.13-
packages\libLLVM\libLLVM.runtime.freebsd.13-x64\libLLVM.runtime.freebsd.13-x64.nuspec = packages\libLLVM\libLLVM.runtime.freebsd.13-x64\libLLVM.runtime.freebsd.13-x64.nuspec
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libLLVM.runtime.linux-x64", "libLLVM.runtime.linux-x64", "{C8508256-2EC1-4C88-B61D-AFB86569FBCD}"
+ ProjectSection(SolutionItems) = preProject
+ packages\libLLVM\libLLVM.runtime.linux-x64\libLLVM.runtime.linux-x64.nuspec = packages\libLLVM\libLLVM.runtime.linux-x64\libLLVM.runtime.linux-x64.nuspec
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libLLVM.runtime.osx-arm64", "libLLVM.runtime.osx-arm64", "{3870145D-F6DC-4082-A3F5-2316D49ADD43}"
+ ProjectSection(SolutionItems) = preProject
+ packages\libLLVM\libLLVM.runtime.osx-arm64\libLLVM.runtime.osx-arm64.nuspec = packages\libLLVM\libLLVM.runtime.osx-arm64\libLLVM.runtime.osx-arm64.nuspec
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -162,6 +172,8 @@ Global
{CEA0F0C9-DF25-446B-8F55-FB629BD1D3E6} = {62B5C536-C224-4EE1-972F-05F732B5980B}
{706334B8-BB91-49A4-BC9C-DFFDF3DCD770} = {E8ADE5A7-4363-43B7-B104-6B0E5510CAF0}
{4F526018-55AE-41FF-BF01-21F60EB95CBC} = {9D46FF1C-E09F-4063-A97D-C09F26310B67}
+ {C8508256-2EC1-4C88-B61D-AFB86569FBCD} = {9D46FF1C-E09F-4063-A97D-C09F26310B67}
+ {3870145D-F6DC-4082-A3F5-2316D49ADD43} = {9D46FF1C-E09F-4063-A97D-C09F26310B67}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {75550D8C-A492-4ED3-8387-206830F8B21E}
diff --git a/packages/libLLVM/libLLVM.runtime.freebsd.12-x64/libLLVM.runtime.freebsd.12-x64.nuspec b/packages/libLLVM/libLLVM.runtime.freebsd.12-x64/libLLVM.runtime.freebsd.12-x64.nuspec
index 3b49232..f946a36 100644
--- a/packages/libLLVM/libLLVM.runtime.freebsd.12-x64/libLLVM.runtime.freebsd.12-x64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.freebsd.12-x64/libLLVM.runtime.freebsd.12-x64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.freebsd.12-x64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
freebsd 12 x64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.freebsd.13-x64/libLLVM.runtime.freebsd.13-x64.nuspec b/packages/libLLVM/libLLVM.runtime.freebsd.13-x64/libLLVM.runtime.freebsd.13-x64.nuspec
index f4f53af..9daec78 100644
--- a/packages/libLLVM/libLLVM.runtime.freebsd.13-x64/libLLVM.runtime.freebsd.13-x64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.freebsd.13-x64/libLLVM.runtime.freebsd.13-x64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.freebsd.13-x64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
freebsd 13 x64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.linux-arm64/libLLVM.runtime.linux-arm64.nuspec b/packages/libLLVM/libLLVM.runtime.linux-arm64/libLLVM.runtime.linux-arm64.nuspec
index 80fb885..0b0d2cb 100644
--- a/packages/libLLVM/libLLVM.runtime.linux-arm64/libLLVM.runtime.linux-arm64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.linux-arm64/libLLVM.runtime.linux-arm64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.linux-arm64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
linux arm64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.linux-x64/libLLVM.runtime.linux-x64.nuspec b/packages/libLLVM/libLLVM.runtime.linux-x64/libLLVM.runtime.linux-x64.nuspec
new file mode 100644
index 0000000..7ecbb8b
--- /dev/null
+++ b/packages/libLLVM/libLLVM.runtime.linux-x64/libLLVM.runtime.linux-x64.nuspec
@@ -0,0 +1,19 @@
+
+
+
+ libLLVM.runtime.linux-x64
+ 15.0.0
+ .NET Foundation and Contributors
+ .NET Foundation and Contributors
+ true
+ Apache-2.0 WITH LLVM-exception
+ https://github.com/dotnet/llvmsharp
+ linux x64 native library for libLLVM.
+ Copyright © LLVM Project
+
+
+
+
+
+
+
diff --git a/packages/libLLVM/libLLVM.runtime.osx-arm64/libLLVM.runtime.osx-arm64.nuspec b/packages/libLLVM/libLLVM.runtime.osx-arm64/libLLVM.runtime.osx-arm64.nuspec
new file mode 100644
index 0000000..f79e9ce
--- /dev/null
+++ b/packages/libLLVM/libLLVM.runtime.osx-arm64/libLLVM.runtime.osx-arm64.nuspec
@@ -0,0 +1,19 @@
+
+
+
+ libLLVM.runtime.osx-arm64
+ 15.0.0
+ .NET Foundation and Contributors
+ .NET Foundation and Contributors
+ true
+ Apache-2.0 WITH LLVM-exception
+ https://github.com/dotnet/llvmsharp
+ osx arm64 native library for libLLVM.
+ Copyright © LLVM Project
+
+
+
+
+
+
+
diff --git a/packages/libLLVM/libLLVM.runtime.osx-x64/libLLVM.runtime.osx-x64.nuspec b/packages/libLLVM/libLLVM.runtime.osx-x64/libLLVM.runtime.osx-x64.nuspec
index c884877..ac19872 100644
--- a/packages/libLLVM/libLLVM.runtime.osx-x64/libLLVM.runtime.osx-x64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.osx-x64/libLLVM.runtime.osx-x64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.osx-x64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
osx x64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.ubuntu.18.04-x64/libLLVM.runtime.ubuntu.18.04-x64.nuspec b/packages/libLLVM/libLLVM.runtime.ubuntu.18.04-x64/libLLVM.runtime.ubuntu.18.04-x64.nuspec
index 815b32e..e2bdcc7 100644
--- a/packages/libLLVM/libLLVM.runtime.ubuntu.18.04-x64/libLLVM.runtime.ubuntu.18.04-x64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.ubuntu.18.04-x64/libLLVM.runtime.ubuntu.18.04-x64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.ubuntu.18.04-x64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
ubuntu 18.04 x64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.ubuntu.20.04-x64/libLLVM.runtime.ubuntu.20.04-x64.nuspec b/packages/libLLVM/libLLVM.runtime.ubuntu.20.04-x64/libLLVM.runtime.ubuntu.20.04-x64.nuspec
index 31ee90a..96ec91b 100644
--- a/packages/libLLVM/libLLVM.runtime.ubuntu.20.04-x64/libLLVM.runtime.ubuntu.20.04-x64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.ubuntu.20.04-x64/libLLVM.runtime.ubuntu.20.04-x64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.ubuntu.20.04-x64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
ubuntu 20.04 x64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.ubuntu.21.10-x64/libLLVM.runtime.ubuntu.21.10-x64.nuspec b/packages/libLLVM/libLLVM.runtime.ubuntu.22.04-x64/libLLVM.runtime.ubuntu.22.04-x64.nuspec
similarity index 75%
rename from packages/libLLVM/libLLVM.runtime.ubuntu.21.10-x64/libLLVM.runtime.ubuntu.21.10-x64.nuspec
rename to packages/libLLVM/libLLVM.runtime.ubuntu.22.04-x64/libLLVM.runtime.ubuntu.22.04-x64.nuspec
index 6953695..35aa51d 100644
--- a/packages/libLLVM/libLLVM.runtime.ubuntu.21.10-x64/libLLVM.runtime.ubuntu.21.10-x64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.ubuntu.22.04-x64/libLLVM.runtime.ubuntu.22.04-x64.nuspec
@@ -1,19 +1,19 @@
- libLLVM.runtime.ubuntu.21.10-x64
- 14.0.0
+ libLLVM.runtime.ubuntu.22.04-x64
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
Apache-2.0 WITH LLVM-exception
https://github.com/dotnet/llvmsharp
- ubuntu 21.10 x64 native library for libLLVM.
+ ubuntu 22.04 x64 native library for libLLVM.
Copyright © LLVM Project
-
+
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.win-arm64/libLLVM.runtime.win-arm64.nuspec b/packages/libLLVM/libLLVM.runtime.win-arm64/libLLVM.runtime.win-arm64.nuspec
index d579d23..155c8c2 100644
--- a/packages/libLLVM/libLLVM.runtime.win-arm64/libLLVM.runtime.win-arm64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.win-arm64/libLLVM.runtime.win-arm64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.win-arm64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
win arm64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.win-x64/libLLVM.runtime.win-x64.nuspec b/packages/libLLVM/libLLVM.runtime.win-x64/libLLVM.runtime.win-x64.nuspec
index 4f98d99..579c436 100644
--- a/packages/libLLVM/libLLVM.runtime.win-x64/libLLVM.runtime.win-x64.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.win-x64/libLLVM.runtime.win-x64.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.win-x64
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
win x64 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM.runtime.win-x86/libLLVM.runtime.win-x86.nuspec b/packages/libLLVM/libLLVM.runtime.win-x86/libLLVM.runtime.win-x86.nuspec
index daf10ff..d0f417a 100644
--- a/packages/libLLVM/libLLVM.runtime.win-x86/libLLVM.runtime.win-x86.nuspec
+++ b/packages/libLLVM/libLLVM.runtime.win-x86/libLLVM.runtime.win-x86.nuspec
@@ -2,7 +2,7 @@
libLLVM.runtime.win-x86
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,7 +10,7 @@
https://github.com/dotnet/llvmsharp
win x86 native library for libLLVM.
Copyright © LLVM Project
-
+
diff --git a/packages/libLLVM/libLLVM/LICENSE.TXT b/packages/libLLVM/libLLVM/LICENSE.TXT
index 24806ab..5715176 100644
--- a/packages/libLLVM/libLLVM/LICENSE.TXT
+++ b/packages/libLLVM/libLLVM/LICENSE.TXT
@@ -239,7 +239,7 @@ Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
University of Illinois/NCSA
Open Source License
-Copyright (c) 2007-2019 University of Illinois at Urbana-Champaign.
+Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign.
All rights reserved.
Developed by:
diff --git a/packages/libLLVM/libLLVM/libLLVM.nuspec b/packages/libLLVM/libLLVM/libLLVM.nuspec
index 28e4874..2374bbb 100644
--- a/packages/libLLVM/libLLVM/libLLVM.nuspec
+++ b/packages/libLLVM/libLLVM/libLLVM.nuspec
@@ -2,7 +2,7 @@
libLLVM
- 14.0.0
+ 15.0.0
.NET Foundation and Contributors
.NET Foundation and Contributors
true
@@ -10,14 +10,12 @@
https://github.com/dotnet/llvmsharp
Multi-platform native library for libLLVM.
Copyright © LLVM Project
-
+
-
-
-
-
+
+
diff --git a/packages/libLLVM/libLLVM/runtime.json b/packages/libLLVM/libLLVM/runtime.json
index ea72c49..07d289c 100644
--- a/packages/libLLVM/libLLVM/runtime.json
+++ b/packages/libLLVM/libLLVM/runtime.json
@@ -2,52 +2,62 @@
"runtimes": {
"freebsd.12-x64": {
"libLLVM": {
- "libLLVM.runtime.freebsd.12-x64": "14.0.0"
+ "libLLVM.runtime.freebsd.12-x64": "15.0.0"
}
},
"freebsd.13-x64": {
"libLLVM": {
- "libLLVM.runtime.freebsd.13-x64": "14.0.0"
+ "libLLVM.runtime.freebsd.13-x64": "15.0.0"
}
},
"linux-arm64": {
"libLLVM": {
- "libLLVM.runtime.linux-arm64": "14.0.0"
+ "libLLVM.runtime.linux-arm64": "15.0.0"
+ }
+ },
+ "linux-x64": {
+ "libLLVM": {
+ "libLLVM.runtime.linux-x64": "15.0.0"
+ }
+ },
+ "osx-arm64": {
+ "libLLVM": {
+ "libLLVM.runtime.osx-arm64": "15.0.0"
}
},
"osx-x64": {
"libLLVM": {
- "libLLVM.runtime.osx-x64": "14.0.0"
+ "libLLVM.runtime.osx-x64": "15.0.0"
}
},
"ubuntu.18.04-x64": {
"libLLVM": {
- "libLLVM.runtime.ubuntu.18.04-x64": "14.0.0"
+ "libLLVM.runtime.ubuntu.18.04-x64": "15.0.0"
}
},
"ubuntu.20.04-x64": {
"libLLVM": {
- "libLLVM.runtime.ubuntu.20.04-x64": "14.0.0"
+ "libLLVM.runtime.ubuntu.20.04-x64": "15.0.0"
}
},
- "ubuntu.21.10-x64": {
+ "ubuntu.22.04-x64": {
"libLLVM": {
- "libLLVM.runtime.ubuntu.21.10-x64": "14.0.0"
+ "libLLVM.runtime.ubuntu.22.04-x64": "15.0.0"
}
},
"win-arm64": {
"libLLVM": {
- "libLLVM.runtime.win-arm64": "14.0.0"
+ "libLLVM.runtime.win-arm64": "15.0.0"
}
},
"win-x64": {
"libLLVM": {
- "libLLVM.runtime.win-x64": "14.0.0"
+ "libLLVM.runtime.win-x64": "15.0.0"
}
},
"win-x86": {
"libLLVM": {
- "libLLVM.runtime.win-x86": "14.0.0"
+ "libLLVM.runtime.win-x86": "15.0.0"
}
}
}
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVM.Manual.cs b/sources/LLVMSharp.Interop/Extensions/LLVM.Manual.cs
index a87625a..40fbff3 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVM.Manual.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVM.Manual.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVM.ResolveLibrary.cs b/sources/LLVMSharp.Interop/Extensions/LLVM.ResolveLibrary.cs
index 854b3ca..3f5ad66 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVM.ResolveLibrary.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVM.ResolveLibrary.cs
@@ -9,7 +9,7 @@ namespace LLVMSharp.Interop;
public static unsafe partial class LLVM
{
- public static event DllImportResolver ResolveLibrary;
+ public static event DllImportResolver? ResolveLibrary;
static LLVM()
{
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMAttributeRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMAttributeRef.cs
index 3b574bb..3596f64 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMAttributeRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMAttributeRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMAttributeRef : IEquatable
public static bool operator !=(LLVMAttributeRef left, LLVMAttributeRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMAttributeRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMAttributeRef other) && Equals(other);
public bool Equals(LLVMAttributeRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMBasicBlockRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMBasicBlockRef.cs
index d836f4b..5367ee8 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMBasicBlockRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMBasicBlockRef.cs
@@ -67,7 +67,7 @@ public unsafe partial struct LLVMBasicBlockRef : IEquatable
public void Dump() => LLVM.DumpValue(this);
- public override bool Equals(object obj) => (obj is LLVMBasicBlockRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMBasicBlockRef other) && Equals(other);
public bool Equals(LLVMBasicBlockRef other) => this == other;
@@ -93,9 +93,8 @@ public unsafe partial struct LLVMBasicBlockRef : IEquatable
{
return string.Empty;
}
- var span = new ReadOnlySpan(pStr, int.MaxValue);
- var result = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ var result = SpanExtensions.AsString(pStr);
LLVM.DisposeMessage(pStr);
return result;
}
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMBinaryRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMBinaryRef.cs
index 730727f..ae7b772 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMBinaryRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMBinaryRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMBinaryRef : IEquatable
public static bool operator !=(LLVMBinaryRef left, LLVMBinaryRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMBinaryRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMBinaryRef other) && Equals(other);
public bool Equals(LLVMBinaryRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMBuilderRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMBuilderRef.cs
index f6ebfca..94e4813 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMBuilderRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMBuilderRef.cs
@@ -124,8 +124,10 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable LLVM.BuildBr(this, Dest);
+ [Obsolete("Use BuildCall2 instead to support opaque pointer")]
public LLVMValueRef BuildCall(LLVMValueRef Fn, LLVMValueRef[] Args, string Name = "") => BuildCall(Fn, Args.AsSpan(), Name.AsSpan());
+ [Obsolete("Use BuildCall2 instead to support opaque pointer")]
public LLVMValueRef BuildCall(LLVMValueRef Fn, ReadOnlySpan Args, ReadOnlySpan Name)
{
fixed (LLVMValueRef* pArgs = Args)
@@ -135,6 +137,17 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildCall2(Ty, Fn, Args.AsSpan(), Name.AsSpan());
+
+ public LLVMValueRef BuildCall2(LLVMTypeRef Ty, LLVMValueRef Fn, ReadOnlySpan Args, ReadOnlySpan Name)
+ {
+ fixed (LLVMValueRef* pArgs = Args)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.BuildCall2(this, Ty, Fn, (LLVMOpaqueValue**)pArgs, (uint)Args.Length, marshaledName);
+ }
+ }
+
public LLVMValueRef BuildCast(LLVMOpcode Op, LLVMValueRef Val, LLVMTypeRef DestTy, string Name = "") => BuildCast(Op, Val, DestTy, Name.AsSpan());
public LLVMValueRef BuildCast(LLVMOpcode Op, LLVMValueRef Val, LLVMTypeRef DestTy, ReadOnlySpan Name)
@@ -283,8 +296,10 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildGEP(Pointer, Indices.AsSpan(), Name.AsSpan());
+ [Obsolete("Use BuildGEP2 instead to support opaque pointer")]
public LLVMValueRef BuildGEP(LLVMValueRef Pointer, ReadOnlySpan Indices, ReadOnlySpan Name)
{
fixed (LLVMValueRef* pIndices = Indices)
@@ -294,6 +309,17 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildGEP2(Ty, Pointer, Indices.AsSpan(), Name.AsSpan());
+
+ public LLVMValueRef BuildGEP2(LLVMTypeRef Ty, LLVMValueRef Pointer, ReadOnlySpan Indices, ReadOnlySpan Name)
+ {
+ fixed (LLVMValueRef* pIndices = Indices)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.BuildGEP2(this, Ty, Pointer, (LLVMOpaqueValue**)pIndices, (uint)Indices.Length, marshaledName);
+ }
+ }
+
public LLVMValueRef BuildGlobalString(string Str, string Name = "") => BuildGlobalString(Str.AsSpan(), Name.AsSpan());
public LLVMValueRef BuildGlobalString(ReadOnlySpan Str, ReadOnlySpan Name)
@@ -320,8 +346,10 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildInBoundsGEP(Pointer, Indices.AsSpan(), Name.AsSpan());
+ [Obsolete("Use BuildInBoundsGEP2 instead to support opaque pointer")]
public LLVMValueRef BuildInBoundsGEP(LLVMValueRef Pointer, ReadOnlySpan Indices, ReadOnlySpan Name)
{
fixed (LLVMValueRef* pIndices = Indices)
@@ -331,6 +359,17 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildInBoundsGEP2(Ty, Pointer, Indices.AsSpan(), Name.AsSpan());
+
+ public LLVMValueRef BuildInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef Pointer, ReadOnlySpan Indices, ReadOnlySpan Name)
+ {
+ fixed (LLVMValueRef* pIndices = Indices)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.BuildInBoundsGEP2(this, Ty, Pointer, (LLVMOpaqueValue**)pIndices, (uint)Indices.Length, marshaledName);
+ }
+ }
+
public LLVMValueRef BuildIndirectBr(LLVMValueRef Addr, uint NumDests) => LLVM.BuildIndirectBr(this, Addr, NumDests);
public LLVMValueRef BuildInsertElement(LLVMValueRef VecVal, LLVMValueRef EltVal, LLVMValueRef Index, string Name = "") => BuildInsertElement(VecVal, EltVal, Index, Name.AsSpan());
@@ -365,8 +404,10 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildInvoke(Fn, Args.AsSpan(), Then, Catch, Name.AsSpan());
+ [Obsolete("Use BuildInvoke2 instead to support opaque pointer")]
public LLVMValueRef BuildInvoke(LLVMValueRef Fn, ReadOnlySpan Args, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, ReadOnlySpan Name)
{
fixed (LLVMValueRef* pArgs = Args)
@@ -376,6 +417,17 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildInvoke2(Ty, Fn, Args.AsSpan(), Then, Catch, Name.AsSpan());
+
+ public LLVMValueRef BuildInvoke2(LLVMTypeRef Ty, LLVMValueRef Fn, ReadOnlySpan Args, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, ReadOnlySpan Name)
+ {
+ fixed (LLVMValueRef* pArgs = Args)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.BuildInvoke2(this, Ty, Fn, (LLVMOpaqueValue**)pArgs, (uint)Args.Length, Then, Catch, marshaledName);
+ }
+ }
+
public LLVMValueRef BuildIsNotNull(LLVMValueRef Val, string Name = "") => BuildIsNotNull(Val, Name.AsSpan());
public LLVMValueRef BuildIsNotNull(LLVMValueRef Val, ReadOnlySpan Name)
@@ -400,14 +452,24 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildLoad(PointerVal, Name.AsSpan());
+ [Obsolete("Use BuildLoad2 instead to support opaque pointer")]
public LLVMValueRef BuildLoad(LLVMValueRef PointerVal, ReadOnlySpan Name)
{
using var marshaledName = new MarshaledString(Name);
return LLVM.BuildLoad(this, PointerVal, marshaledName);
}
+ public LLVMValueRef BuildLoad2(LLVMTypeRef Ty, LLVMValueRef PointerVal, string Name = "") => BuildLoad2(Ty, PointerVal, Name.AsSpan());
+
+ public LLVMValueRef BuildLoad2(LLVMTypeRef Ty, LLVMValueRef PointerVal, ReadOnlySpan Name)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.BuildLoad2(this, Ty, PointerVal, marshaledName);
+ }
+
public LLVMValueRef BuildLShr(LLVMValueRef LHS, LLVMValueRef RHS, string Name = "") => BuildLShr(LHS, RHS, Name.AsSpan());
public LLVMValueRef BuildLShr(LLVMValueRef LHS, LLVMValueRef RHS, ReadOnlySpan Name)
@@ -536,14 +598,24 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable BuildPtrDiff(LHS, RHS, Name.AsSpan());
+ [Obsolete("Use BuildPtrDiff2 instead to support opaque pointer")]
public LLVMValueRef BuildPtrDiff(LLVMValueRef LHS, LLVMValueRef RHS, ReadOnlySpan Name)
{
using var marshaledName = new MarshaledString(Name);
return LLVM.BuildPtrDiff(this, LHS, RHS, marshaledName);
}
+ public LLVMValueRef BuildPtrDiff2(LLVMTypeRef ElemTy, LLVMValueRef LHS, LLVMValueRef RHS, string Name = "") => BuildPtrDiff2(ElemTy, LHS, RHS, Name.AsSpan());
+
+ public LLVMValueRef BuildPtrDiff2(LLVMTypeRef ElemTy, LLVMValueRef LHS, LLVMValueRef RHS, ReadOnlySpan Name)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.BuildPtrDiff2(this, ElemTy, LHS, RHS, marshaledName);
+ }
+
public LLVMValueRef BuildPtrToInt(LLVMValueRef Val, LLVMTypeRef DestTy, string Name = "") => BuildPtrToInt(Val, DestTy, Name.AsSpan());
public LLVMValueRef BuildPtrToInt(LLVMValueRef Val, LLVMTypeRef DestTy, ReadOnlySpan Name)
@@ -624,14 +696,24 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable LLVM.BuildStore(this, Val, Ptr);
+ [Obsolete("Use BuildStructGEP2 instead to support opaque pointer")]
public LLVMValueRef BuildStructGEP(LLVMValueRef Pointer, uint Idx, string Name = "") => BuildStructGEP(Pointer, Idx, Name.AsSpan());
+ [Obsolete("Use BuildStructGEP2 instead to support opaque pointer")]
public LLVMValueRef BuildStructGEP(LLVMValueRef Pointer, uint Idx, ReadOnlySpan Name)
{
using var marshaledName = new MarshaledString(Name);
return LLVM.BuildStructGEP(this, Pointer, Idx, marshaledName);
}
+ public LLVMValueRef BuildStructGEP2(LLVMTypeRef Ty, LLVMValueRef Pointer, uint Idx, string Name = "") => BuildStructGEP2(Ty, Pointer, Idx, Name.AsSpan());
+
+ public LLVMValueRef BuildStructGEP2(LLVMTypeRef Ty, LLVMValueRef Pointer, uint Idx, ReadOnlySpan Name)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.BuildStructGEP2(this, Ty, Pointer, Idx, marshaledName);
+ }
+
public LLVMValueRef BuildSub(LLVMValueRef LHS, LLVMValueRef RHS, string Name = "") => BuildSub(LHS, RHS, Name.AsSpan());
public LLVMValueRef BuildSub(LLVMValueRef LHS, LLVMValueRef RHS, ReadOnlySpan Name)
@@ -726,7 +808,7 @@ public unsafe partial struct LLVMBuilderRef : IDisposable, IEquatable (obj is LLVMBuilderRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMBuilderRef other) && Equals(other);
public bool Equals(LLVMBuilderRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMComdatRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMComdatRef.cs
index da743e8..f3d40b0 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMComdatRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMComdatRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMComdatRef : IEquatable
public static bool operator !=(LLVMComdatRef left, LLVMComdatRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMComdatRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMComdatRef other) && Equals(other);
public bool Equals(LLVMComdatRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMContextRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMContextRef.cs
index 306e412..0e8e149 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMContextRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMContextRef.cs
@@ -95,7 +95,7 @@ public unsafe partial struct LLVMContextRef : IDisposable, IEquatable (obj is LLVMContextRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMContextRef other) && Equals(other);
public bool Equals(LLVMContextRef other) => this == other;
@@ -195,16 +195,26 @@ public unsafe partial struct LLVMContextRef : IDisposable, IEquatable )Marshal.GetFunctionPointerForDelegate(Handler);
+ SetDiagnosticHandler(pHandler, DiagnosticContext);
}
- public void SetYieldCallback(LLVMYieldCallback Callback, IntPtr OpaqueHandle)
+ public void SetDiagnosticHandler(delegate* unmanaged[Cdecl] Handler, void* DiagnosticContext)
{
- var pCallback = Marshal.GetFunctionPointerForDelegate(Callback);
- LLVM.ContextSetYieldCallback(this, pCallback, (void*)OpaqueHandle);
+ LLVM.ContextSetDiagnosticHandler(this, Handler, DiagnosticContext);
+ }
+
+ public void SetYieldCallback(LLVMYieldCallback Callback, void* OpaqueHandle)
+ {
+ var pCallback = (delegate* unmanaged[Cdecl] < LLVMOpaqueContext *, void *, void>)Marshal.GetFunctionPointerForDelegate(Callback);
+ SetYieldCallback(pCallback, OpaqueHandle);
+ }
+
+ public void SetYieldCallback(delegate* unmanaged[Cdecl] Callback, void* OpaqueHandle)
+ {
+ LLVM.ContextSetYieldCallback(this, Callback, OpaqueHandle);
}
public override string ToString() => $"{nameof(LLVMContextRef)}: {Handle:X}";
@@ -222,8 +232,7 @@ public unsafe partial struct LLVMContextRef : IDisposable, IEquatable(pMessage, int.MaxValue);
- OutMessage = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutMessage = SpanExtensions.AsString(pMessage);
}
return result == 0;
@@ -243,8 +252,7 @@ public unsafe partial struct LLVMContextRef : IDisposable, IEquatable(pMessage, int.MaxValue);
- OutMessage = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutMessage = SpanExtensions.AsString(pMessage);
}
return result == 0;
@@ -264,8 +272,7 @@ public unsafe partial struct LLVMContextRef : IDisposable, IEquatable(pMessage, int.MaxValue);
- OutMessage = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutMessage = SpanExtensions.AsString(pMessage);
}
return result == 0;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMDIBuilderRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMDIBuilderRef.cs
index 72d70b6..bd8ed21 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMDIBuilderRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMDIBuilderRef.cs
@@ -113,7 +113,7 @@ public unsafe partial struct LLVMDIBuilderRef : IEquatable
public void DIBuilderFinalize() => LLVM.DIBuilderFinalize(this);
- public override bool Equals(object obj) => (obj is LLVMDIBuilderRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMDIBuilderRef other) && Equals(other);
public bool Equals(LLVMDIBuilderRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMDiagnosticInfoRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMDiagnosticInfoRef.cs
index a68d1f5..f7a49c2 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMDiagnosticInfoRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMDiagnosticInfoRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMDiagnosticInfoRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMDiagnosticInfoRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMDiagnosticInfoRef other) && Equals(other);
public bool Equals(LLVMDiagnosticInfoRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMDisasmContextRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMDisasmContextRef.cs
index 83b80a0..ce9cb26 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMDisasmContextRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMDisasmContextRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMDisasmContextRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMDisasmContextRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMDisasmContextRef other) && Equals(other);
public bool Equals(LLVMDisasmContextRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMErrorRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMErrorRef.cs
index a3b5745..7911f77 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMErrorRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMErrorRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMErrorRef : IEquatable
public static bool operator !=(LLVMErrorRef left, LLVMErrorRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMErrorRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMErrorRef other) && Equals(other);
public bool Equals(LLVMErrorRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMErrorTypeId.cs b/sources/LLVMSharp.Interop/Extensions/LLVMErrorTypeId.cs
index bff6a6f..41df64c 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMErrorTypeId.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMErrorTypeId.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMErrorTypeId : IEquatable
public static bool operator !=(LLVMErrorTypeId left, LLVMErrorTypeId right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMErrorTypeId other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMErrorTypeId other) && Equals(other);
public bool Equals(LLVMErrorTypeId other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMExecutionEngineRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMExecutionEngineRef.cs
index aa3c8e0..4de5286 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMExecutionEngineRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMExecutionEngineRef.cs
@@ -39,7 +39,7 @@ public unsafe partial struct LLVMExecutionEngineRef : IDisposable, IEquatable (obj is LLVMExecutionEngineRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMExecutionEngineRef other) && Equals(other);
public bool Equals(LLVMExecutionEngineRef other) => this == other;
@@ -151,8 +151,7 @@ public unsafe partial struct LLVMExecutionEngineRef : IDisposable, IEquatable(pError, int.MaxValue);
- OutError = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutError = SpanExtensions.AsString(pError);
}
return result == 0;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMGenericValueRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMGenericValueRef.cs
index c6a2cee..8833776 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMGenericValueRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMGenericValueRef.cs
@@ -25,7 +25,7 @@ public unsafe partial struct LLVMGenericValueRef : IEquatable LLVM.CreateGenericValueOfFloat(Ty, N);
- public override bool Equals(object obj) => (obj is LLVMGenericValueRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMGenericValueRef other) && Equals(other);
public bool Equals(LLVMGenericValueRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMJITEventListenerRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMJITEventListenerRef.cs
index a9331e0..0b939e3 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMJITEventListenerRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMJITEventListenerRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMJITEventListenerRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMJITEventListenerRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMJITEventListenerRef other) && Equals(other);
public bool Equals(LLVMJITEventListenerRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMMCJITMemoryManagerRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMMCJITMemoryManagerRef.cs
index 4e87d79..53c4b35 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMMCJITMemoryManagerRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMMCJITMemoryManagerRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMMCJITMemoryManagerRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMMCJITMemoryManagerRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMMCJITMemoryManagerRef other) && Equals(other);
public bool Equals(LLVMMCJITMemoryManagerRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMMemoryBufferRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMMemoryBufferRef.cs
index d35b2a7..2c52e40 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMMemoryBufferRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMMemoryBufferRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMMemoryBufferRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMMemoryBufferRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMMemoryBufferRef other) && Equals(other);
public bool Equals(LLVMMemoryBufferRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMMetadataRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMMetadataRef.cs
index 685c1e1..e6dc85e 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMMetadataRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMMetadataRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMMetadataRef : IEquatable
public static bool operator !=(LLVMMetadataRef left, LLVMMetadataRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMMetadataRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMMetadataRef other) && Equals(other);
public bool Equals(LLVMMetadataRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMModuleFlagEntry.cs b/sources/LLVMSharp.Interop/Extensions/LLVMModuleFlagEntry.cs
index c0aab10..c515892 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMModuleFlagEntry.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMModuleFlagEntry.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMModuleFlagEntry : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMModuleFlagEntry other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMModuleFlagEntry other) && Equals(other);
public bool Equals(LLVMModuleFlagEntry other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMModuleProviderRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMModuleProviderRef.cs
index b379dad..8c02e76 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMModuleProviderRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMModuleProviderRef.cs
@@ -23,7 +23,7 @@ public unsafe partial struct LLVMModuleProviderRef : IEquatable LLVM.CreateFunctionPassManager(this);
- public override bool Equals(object obj) => (obj is LLVMModuleProviderRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMModuleProviderRef other) && Equals(other);
public bool Equals(LLVMModuleProviderRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMModuleRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMModuleRef.cs
index d50fca2..75ef933 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMModuleRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMModuleRef.cs
@@ -32,8 +32,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pDataLayoutStr, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pDataLayoutStr);
}
set
@@ -67,8 +66,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pTriple, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pTriple);
}
set
@@ -94,14 +92,24 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable AddAlias(Ty, Aliasee, Name.AsSpan());
+ [Obsolete("Use AddAlias2 instead to support opaque pointer")]
public LLVMValueRef AddAlias(LLVMTypeRef Ty, LLVMValueRef Aliasee, ReadOnlySpan Name)
{
using var marshaledName = new MarshaledString(Name);
return LLVM.AddAlias(this, Ty, Aliasee, marshaledName);
}
+ public LLVMValueRef AddAlias2(LLVMTypeRef ValueTy, uint AddrSpace, LLVMValueRef Aliasee, string Name) => AddAlias2(ValueTy, AddrSpace, Aliasee, Name.AsSpan());
+
+ public LLVMValueRef AddAlias2(LLVMTypeRef ValueTy, uint AddrSpace, LLVMValueRef Aliasee, ReadOnlySpan Name)
+ {
+ using var marshaledName = new MarshaledString(Name);
+ return LLVM.AddAlias2(this, ValueTy, AddrSpace, Aliasee, marshaledName);
+ }
+
public LLVMValueRef AddFunction(string Name, LLVMTypeRef FunctionTy) => AddFunction(Name.AsSpan(), FunctionTy);
public LLVMValueRef AddFunction(ReadOnlySpan Name, LLVMTypeRef FunctionTy)
@@ -225,7 +233,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable LLVM.DumpModule(this);
- public override bool Equals(object obj) => (obj is LLVMModuleRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMModuleRef other) && Equals(other);
public bool Equals(LLVMModuleRef other) => this == other;
@@ -296,9 +304,8 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pStr, int.MaxValue);
- var result = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ var result = SpanExtensions.AsString(pStr);
LLVM.DisposeMessage(pStr);
return result;
}
@@ -326,8 +333,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pError, int.MaxValue);
- OutError = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutError = SpanExtensions.AsString(pError);
}
return result == 0;
@@ -347,8 +353,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pError, int.MaxValue);
- OutError = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutError = SpanExtensions.AsString(pError);
}
return result == 0;
@@ -375,8 +380,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pError, int.MaxValue);
- OutError = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutError = SpanExtensions.AsString(pError);
}
return result == 0;
@@ -391,6 +395,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pErrorMessage, int.MaxValue);
- ErrorMessage = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ ErrorMessage = SpanExtensions.AsString(pErrorMessage);
}
return result == 0;
@@ -423,8 +427,7 @@ public unsafe partial struct LLVMModuleRef : IDisposable, IEquatable(pMessage, int.MaxValue);
- OutMessage = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ OutMessage = SpanExtensions.AsString(pMessage);
}
return result == 0;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMNamedMDNodeRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMNamedMDNodeRef.cs
index 68f8a1a..7657405 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMNamedMDNodeRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMNamedMDNodeRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMNamedMDNodeRef : IEquatable
public static bool operator !=(LLVMNamedMDNodeRef left, LLVMNamedMDNodeRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMNamedMDNodeRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMNamedMDNodeRef other) && Equals(other);
public bool Equals(LLVMNamedMDNodeRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMObjectFileRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMObjectFileRef.cs
index 7c71218..929dc99 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMObjectFileRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMObjectFileRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMObjectFileRef : IEquatable
public static bool operator !=(LLVMObjectFileRef left, LLVMObjectFileRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMObjectFileRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMObjectFileRef other) && Equals(other);
public bool Equals(LLVMObjectFileRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerBuilderRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerBuilderRef.cs
index 8577d79..ce67e44 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerBuilderRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerBuilderRef.cs
@@ -30,7 +30,7 @@ public unsafe partial struct LLVMPassManagerBuilderRef : IEquatable (obj is LLVMPassManagerBuilderRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMPassManagerBuilderRef other) && Equals(other);
public bool Equals(LLVMPassManagerBuilderRef other) => this == other;
@@ -40,11 +40,6 @@ public unsafe partial struct LLVMPassManagerBuilderRef : IEquatable LLVM.PassManagerBuilderPopulateModulePassManager(this, PM);
- public void PopulateLTOPassManager(LLVMPassManagerRef PM, int Internalize, int RunInliner)
- {
- LLVM.PassManagerBuilderPopulateLTOPassManager(this, PM, Internalize, RunInliner);
- }
-
public void SetSizeLevel(uint SizeLevel) => LLVM.PassManagerBuilderSetSizeLevel(this, SizeLevel);
public void SetDisableUnitAtATime(int Value) => LLVM.PassManagerBuilderSetDisableUnitAtATime(this, Value);
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerRef.cs
index 696f9c2..14d5e98 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMPassManagerRef.cs
@@ -29,8 +29,6 @@ public unsafe partial struct LLVMPassManagerRef : IDisposable, IEquatable LLVM.AddAlwaysInlinerPass(this);
- public void AddArgumentPromotionPass() => LLVM.AddArgumentPromotionPass(this);
-
public void AddBasicAliasAnalysisPass() => LLVM.AddBasicAliasAnalysisPass(this);
public void AddBitTrackingDCEPass() => LLVM.AddBitTrackingDCEPass(this);
@@ -87,8 +85,6 @@ public unsafe partial struct LLVMPassManagerRef : IDisposable, IEquatable LLVM.AddLoopUnrollPass(this);
- public void AddLoopUnswitchPass() => LLVM.AddLoopUnswitchPass(this);
-
public void AddLoopVectorizePass() => LLVM.AddLoopVectorizePass(this);
public void AddLowerConstantIntrinsicsPass() => LLVM.AddLowerConstantIntrinsicsPass(this);
@@ -148,7 +144,7 @@ public unsafe partial struct LLVMPassManagerRef : IDisposable, IEquatable (obj is LLVMPassManagerRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMPassManagerRef other) && Equals(other);
public bool Equals(LLVMPassManagerRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMPassRegistryRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMPassRegistryRef.cs
index 420f1e5..5f7c4e4 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMPassRegistryRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMPassRegistryRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMPassRegistryRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMPassRegistryRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMPassRegistryRef other) && Equals(other);
public bool Equals(LLVMPassRegistryRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMRelocationIteratorRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMRelocationIteratorRef.cs
index 6fe6252..9ee7ee5 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMRelocationIteratorRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMRelocationIteratorRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMRelocationIteratorRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMRelocationIteratorRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMRelocationIteratorRef other) && Equals(other);
public bool Equals(LLVMRelocationIteratorRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkArgRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkArgRef.cs
index 48d111b..d5622ac 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkArgRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkArgRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMRemarkArgRef : IEquatable
public static bool operator !=(LLVMRemarkArgRef left, LLVMRemarkArgRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMRemarkArgRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMRemarkArgRef other) && Equals(other);
public bool Equals(LLVMRemarkArgRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkDebugLocRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkDebugLocRef.cs
index 5039017..7f27e84 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkDebugLocRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkDebugLocRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMRemarkDebugLocRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMRemarkDebugLocRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMRemarkDebugLocRef other) && Equals(other);
public bool Equals(LLVMRemarkDebugLocRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkEntryRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkEntryRef.cs
index 1716fab..b0ec4c5 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkEntryRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkEntryRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMRemarkEntryRef : IEquatable
public static bool operator !=(LLVMRemarkEntryRef left, LLVMRemarkEntryRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMRemarkEntryRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMRemarkEntryRef other) && Equals(other);
public bool Equals(LLVMRemarkEntryRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkParserRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkParserRef.cs
index b34af68..2aeb43d 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkParserRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkParserRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMRemarkParserRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMRemarkParserRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMRemarkParserRef other) && Equals(other);
public bool Equals(LLVMRemarkParserRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkStringRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkStringRef.cs
index daa1756..eef64d5 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMRemarkStringRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMRemarkStringRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMRemarkStringRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMRemarkStringRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMRemarkStringRef other) && Equals(other);
public bool Equals(LLVMRemarkStringRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMSectionIteratorRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMSectionIteratorRef.cs
index 96b884c..2440241 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMSectionIteratorRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMSectionIteratorRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMSectionIteratorRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMSectionIteratorRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMSectionIteratorRef other) && Equals(other);
public bool Equals(LLVMSectionIteratorRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMSymbolIteratorRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMSymbolIteratorRef.cs
index e312587..10eb463 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMSymbolIteratorRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMSymbolIteratorRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMSymbolIteratorRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMSymbolIteratorRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMSymbolIteratorRef other) && Equals(other);
public bool Equals(LLVMSymbolIteratorRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMTargetDataRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMTargetDataRef.cs
index d5d9432..d3fb703 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMTargetDataRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMTargetDataRef.cs
@@ -23,7 +23,7 @@ public unsafe partial struct LLVMTargetDataRef : IEquatable
public static LLVMTargetDataRef FromStringRepresentation(ReadOnlySpan stringRep) => LLVM.CreateTargetData(new MarshaledString(stringRep));
- public override bool Equals(object obj) => (obj is LLVMTargetDataRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMTargetDataRef other) && Equals(other);
public bool Equals(LLVMTargetDataRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMTargetLibraryInfoRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMTargetLibraryInfoRef.cs
index a0827cc..56d8c0b 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMTargetLibraryInfoRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMTargetLibraryInfoRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMTargetLibraryInfoRef : IEquatable !(left == right);
- public override bool Equals(object obj) => (obj is LLVMTargetLibraryInfoRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMTargetLibraryInfoRef other) && Equals(other);
public bool Equals(LLVMTargetLibraryInfoRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMTargetMachineRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMTargetMachineRef.cs
index 644b3a4..f33d9e5 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMTargetMachineRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMTargetMachineRef.cs
@@ -34,7 +34,7 @@ public unsafe partial struct LLVMTargetMachineRef : IEquatable (obj is LLVMTargetMachineRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMTargetMachineRef other) && Equals(other);
public bool Equals(LLVMTargetMachineRef other) => this == other;
@@ -57,8 +57,7 @@ public unsafe partial struct LLVMTargetMachineRef : IEquatable(errorMessage, int.MaxValue);
- message = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ message = SpanExtensions.AsString(errorMessage);
LLVM.DisposeErrorMessage(errorMessage);
}
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMTargetRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMTargetRef.cs
index 3b87881..b19691e 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMTargetRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMTargetRef.cs
@@ -26,8 +26,7 @@ public unsafe partial struct LLVMTargetRef : IEquatable
return string.Empty;
}
- var span = new ReadOnlySpan(pDefaultTriple, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pDefaultTriple);
}
}
@@ -46,8 +45,7 @@ public unsafe partial struct LLVMTargetRef : IEquatable
}
else
{
- var span = new ReadOnlySpan(pError, int.MaxValue);
- outError = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ outError = SpanExtensions.AsString(pError);
}
return result == 0;
@@ -98,8 +96,7 @@ public unsafe partial struct LLVMTargetRef : IEquatable
return string.Empty;
}
- var span = new ReadOnlySpan(pName, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pName);
}
}
@@ -111,7 +108,7 @@ public unsafe partial struct LLVMTargetRef : IEquatable
public static bool operator !=(LLVMTargetRef left, LLVMTargetRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMTargetRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMTargetRef other) && Equals(other);
public bool Equals(LLVMTargetRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMTypeRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMTypeRef.cs
index ba9dcf4..2f3be32 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMTypeRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMTypeRef.cs
@@ -51,7 +51,7 @@ public unsafe partial struct LLVMTypeRef : IEquatable
public LLVMContextRef Context => (Handle != IntPtr.Zero) ? LLVM.GetTypeContext(this) : default;
- public LLVMTypeRef ElementType => ((Kind == LLVMTypeKind.LLVMPointerTypeKind) || (Kind == LLVMTypeKind.LLVMArrayTypeKind) || (Kind == LLVMTypeKind.LLVMVectorTypeKind)) ? LLVM.GetElementType(this) : default;
+ public LLVMTypeRef ElementType => (((Kind == LLVMTypeKind.LLVMPointerTypeKind) && (SubtypesCount != 0)) || (Kind == LLVMTypeKind.LLVMArrayTypeKind) || (Kind == LLVMTypeKind.LLVMVectorTypeKind)) ? LLVM.GetElementType(this) : default;
public uint IntWidth => (Kind == LLVMTypeKind.LLVMIntegerTypeKind) ? LLVM.GetIntTypeWidth(this) : default;
@@ -133,8 +133,7 @@ public unsafe partial struct LLVMTypeRef : IEquatable
return string.Empty;
}
- var span = new ReadOnlySpan(pStructName, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pStructName);
}
}
@@ -208,7 +207,7 @@ public unsafe partial struct LLVMTypeRef : IEquatable
public void Dump() => LLVM.DumpType(this);
- public override bool Equals(object obj) => (obj is LLVMTypeRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMTypeRef other) && Equals(other);
public bool Equals(LLVMTypeRef other) => this == other;
@@ -224,9 +223,8 @@ public unsafe partial struct LLVMTypeRef : IEquatable
{
return string.Empty;
}
- var span = new ReadOnlySpan(pStr, int.MaxValue);
- var result = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ var result = SpanExtensions.AsString(pStr);
LLVM.DisposeMessage(pStr);
return result;
}
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMUseRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMUseRef.cs
index e60dc32..98a550b 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMUseRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMUseRef.cs
@@ -21,7 +21,7 @@ public unsafe partial struct LLVMUseRef : IEquatable
public static bool operator !=(LLVMUseRef left, LLVMUseRef right) => !(left == right);
- public override bool Equals(object obj) => (obj is LLVMUseRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMUseRef other) && Equals(other);
public bool Equals(LLVMUseRef other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs
index 5a87dda..8bdd316 100644
--- a/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs
+++ b/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs
@@ -93,7 +93,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
}
}
- public LLVMBasicBlockRef EntryBasicBlock => (IsAFunction != null) ? LLVM.GetEntryBasicBlock(this) : default;
+ public LLVMBasicBlockRef EntryBasicBlock => ((IsAFunction != null) && (BasicBlocksCount != 0)) ? LLVM.GetEntryBasicBlock(this) : default;
public LLVMRealPredicate FCmpPredicate => (Handle != IntPtr.Zero) ? LLVM.GetFCmpPredicate(this) : default;
@@ -132,8 +132,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
return string.Empty;
}
- var span = new ReadOnlySpan(pName, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pName);
}
set
@@ -147,6 +146,8 @@ public unsafe partial struct LLVMValueRef : IEquatable
public bool HasMetadata => (IsAInstruction != null) && LLVM.HasMetadata(this) != 0;
+ public bool HasPersonalityFn => (IsAFunction != null) && LLVM.HasPersonalityFn(this) != 0;
+
public bool HasUnnamedAddr
{
get
@@ -360,7 +361,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
public LLVMValueRef IsASwitchInst => LLVM.IsASwitchInst(this);
- public LLVMValueRef IsATerminatorInst => LLVM.IsATerminatorInst(this);
+ public LLVMValueRef IsATerminatorInst => (IsAInstruction != null) ? LLVM.IsATerminatorInst(this) : default;
public LLVMValueRef IsATruncInst => LLVM.IsATruncInst(this);
@@ -500,7 +501,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
}
}
- public uint MDNodeOperandsCount => (Kind != LLVMValueKind.LLVMMetadataAsValueValueKind) ? LLVM.GetMDNodeNumOperands(this) : default;
+ public uint MDNodeOperandsCount => (Kind == LLVMValueKind.LLVMMetadataAsValueValueKind) ? LLVM.GetMDNodeNumOperands(this) : default;
public string Name
{
@@ -518,8 +519,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
return string.Empty;
}
- var span = new ReadOnlySpan(pStr, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pStr);
}
set
@@ -567,7 +567,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
{
get
{
- return (IsAFunction != null) ? LLVM.GetPersonalityFn(this) : default;
+ return HasPersonalityFn ? LLVM.GetPersonalityFn(this) : default;
}
set
@@ -600,8 +600,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
return string.Empty;
}
- var span = new ReadOnlySpan(pSection, int.MaxValue);
- return span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ return SpanExtensions.AsString(pSection);
}
set
@@ -699,28 +698,8 @@ public unsafe partial struct LLVMValueRef : IEquatable
public static LLVMValueRef CreateConstBitCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType) => LLVM.ConstBitCast(ConstantVal, ToType);
- public static LLVMValueRef CreateConstExactSDiv(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstExactSDiv(LHSConstant, RHSConstant);
-
- public static LLVMValueRef CreateConstExactUDiv(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstExactUDiv(LHSConstant, RHSConstant);
-
public static LLVMValueRef CreateConstExtractElement(LLVMValueRef VectorConstant, LLVMValueRef IndexConstant) => LLVM.ConstExtractElement(VectorConstant, IndexConstant);
- public static LLVMValueRef CreateConstExtractValue(LLVMValueRef AggConstant, uint[] IdxList) => CreateConstExtractValue(AggConstant, IdxList.AsSpan());
-
- public static LLVMValueRef CreateConstExtractValue(LLVMValueRef AggConstant, ReadOnlySpan IdxList)
- {
- fixed (uint* pIdxList = IdxList)
- {
- return LLVM.ConstExtractValue(AggConstant, pIdxList, (uint)IdxList.Length);
- }
- }
-
- public static LLVMValueRef CreateConstFAdd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstFAdd(LHSConstant, RHSConstant);
-
- public static LLVMValueRef CreateConstFDiv(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstFDiv(LHSConstant, RHSConstant);
-
- public static LLVMValueRef CreateConstFMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstFMul(LHSConstant, RHSConstant);
-
public static LLVMValueRef CreateConstFNeg(LLVMValueRef ConstantVal) => LLVM.ConstFNeg(ConstantVal);
public static LLVMValueRef CreateConstFPCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType) => LLVM.ConstFPCast(ConstantVal, ToType);
@@ -733,12 +712,10 @@ public unsafe partial struct LLVMValueRef : IEquatable
public static LLVMValueRef CreateConstFPTrunc(LLVMValueRef ConstantVal, LLVMTypeRef ToType) => LLVM.ConstFPTrunc(ConstantVal, ToType);
- public static LLVMValueRef CreateConstFRem(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstFRem(LHSConstant, RHSConstant);
-
- public static LLVMValueRef CreateConstFSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstFSub(LHSConstant, RHSConstant);
-
+ [Obsolete("Use CreateConstGEP2 instead to support opaque pointer")]
public static LLVMValueRef CreateConstGEP(LLVMValueRef ConstantVal, LLVMValueRef[] ConstantIndices) => CreateConstGEP(ConstantVal, ConstantIndices.AsSpan());
+ [Obsolete("Use CreateConstGEP2 instead to support opaque pointer")]
public static LLVMValueRef CreateConstGEP(LLVMValueRef ConstantVal, ReadOnlySpan ConstantIndices)
{
fixed (LLVMValueRef* pConstantIndices = ConstantIndices)
@@ -747,8 +724,20 @@ public unsafe partial struct LLVMValueRef : IEquatable
}
}
+ public static LLVMValueRef CreateConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef[] ConstantIndices) => CreateConstGEP2(Ty, ConstantVal, ConstantIndices.AsSpan());
+
+ public static LLVMValueRef CreateConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, ReadOnlySpan ConstantIndices)
+ {
+ fixed (LLVMValueRef* pConstantIndices = ConstantIndices)
+ {
+ return LLVM.ConstGEP2(Ty, ConstantVal, (LLVMOpaqueValue**)pConstantIndices, (uint)ConstantIndices.Length);
+ }
+ }
+
+ [Obsolete("Use CreateConstInBoundsGEP2 instead to support opaque pointer")]
public static LLVMValueRef CreateConstInBoundsGEP(LLVMValueRef ConstantVal, LLVMValueRef[] ConstantIndices) => CreateConstInBoundsGEP(ConstantVal, ConstantIndices.AsSpan());
+ [Obsolete("Use CreateConstInBoundsGEP2 instead to support opaque pointer")]
public static LLVMValueRef CreateConstInBoundsGEP(LLVMValueRef ConstantVal, ReadOnlySpan ConstantIndices)
{
fixed (LLVMValueRef* pConstantIndices = ConstantIndices)
@@ -757,6 +746,16 @@ public unsafe partial struct LLVMValueRef : IEquatable
}
}
+ public static LLVMValueRef CreateConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef[] ConstantIndices) => CreateConstInBoundsGEP2(Ty, ConstantVal, ConstantIndices.AsSpan());
+
+ public static LLVMValueRef CreateConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, ReadOnlySpan ConstantIndices)
+ {
+ fixed (LLVMValueRef* pConstantIndices = ConstantIndices)
+ {
+ return LLVM.ConstInBoundsGEP2(Ty, ConstantVal, (LLVMOpaqueValue**)pConstantIndices, (uint)ConstantIndices.Length);
+ }
+ }
+
public static LLVMValueRef CreateConstInlineAsm(LLVMTypeRef Ty, string AsmString, string Constraints, bool HasSideEffects, bool IsAlignStack) => CreateConstInlineAsm(Ty, AsmString.AsSpan(), Constraints.AsSpan(), HasSideEffects, IsAlignStack);
public static LLVMValueRef CreateConstInlineAsm(LLVMTypeRef Ty, ReadOnlySpan AsmString, ReadOnlySpan Constraints, bool HasSideEffects, bool IsAlignStack)
@@ -768,16 +767,6 @@ public unsafe partial struct LLVMValueRef : IEquatable
public static LLVMValueRef CreateConstInsertElement(LLVMValueRef VectorConstant, LLVMValueRef ElementValueConstant, LLVMValueRef IndexConstant) => LLVM.ConstInsertElement(VectorConstant, ElementValueConstant, IndexConstant);
- public static LLVMValueRef CreateConstInsertValue(LLVMValueRef AggConstant, LLVMValueRef ElementValueConstant, uint[] IdxList) => CreateConstInsertValue(AggConstant, ElementValueConstant, IdxList.AsSpan());
-
- public static LLVMValueRef CreateConstInsertValue(LLVMValueRef AggConstant, LLVMValueRef ElementValueConstant, ReadOnlySpan IdxList)
- {
- fixed (uint* pIdxList = IdxList)
- {
- return LLVM.ConstInsertValue(AggConstant, ElementValueConstant, pIdxList, (uint)IdxList.Length);
- }
- }
-
public static LLVMValueRef CreateConstInt(LLVMTypeRef IntTy, ulong N, bool SignExtend = false) => LLVM.ConstInt(IntTy, N, SignExtend ? 1 : 0);
public static LLVMValueRef CreateConstIntCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType, bool isSigned) => LLVM.ConstIntCast(ConstantVal, ToType, isSigned ? 1 : 0);
@@ -872,8 +861,6 @@ public unsafe partial struct LLVMValueRef : IEquatable
return LLVM.ConstRealOfStringAndSize(RealTy, marshaledText, (uint)marshaledText.Length);
}
- public static LLVMValueRef CreateConstSDiv(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstSDiv(LHSConstant, RHSConstant);
-
public static LLVMValueRef CreateConstSelect(LLVMValueRef ConstantCondition, LLVMValueRef ConstantIfTrue, LLVMValueRef ConstantIfFalse) => LLVM.ConstSelect(ConstantCondition, ConstantIfTrue, ConstantIfFalse);
public static LLVMValueRef CreateConstSExt(LLVMValueRef ConstantVal, LLVMTypeRef ToType) => LLVM.ConstSExt(ConstantVal, ToType);
@@ -886,8 +873,6 @@ public unsafe partial struct LLVMValueRef : IEquatable
public static LLVMValueRef CreateConstSIToFP(LLVMValueRef ConstantVal, LLVMTypeRef ToType) => LLVM.ConstSIToFP(ConstantVal, ToType);
- public static LLVMValueRef CreateConstSRem(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstSRem(LHSConstant, RHSConstant);
-
public static LLVMValueRef CreateConstStruct(LLVMValueRef[] ConstantVals, bool Packed) => CreateConstStruct(ConstantVals.AsSpan(), Packed);
public static LLVMValueRef CreateConstStruct(ReadOnlySpan ConstantVals, bool Packed)
@@ -904,12 +889,8 @@ public unsafe partial struct LLVMValueRef : IEquatable
public static LLVMValueRef CreateConstTruncOrBitCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType) => LLVM.ConstTruncOrBitCast(ConstantVal, ToType);
- public static LLVMValueRef CreateConstUDiv(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstUDiv(LHSConstant, RHSConstant);
-
public static LLVMValueRef CreateConstUIToFP(LLVMValueRef ConstantVal, LLVMTypeRef ToType) => LLVM.ConstUIToFP(ConstantVal, ToType);
- public static LLVMValueRef CreateConstURem(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) => LLVM.ConstURem(LHSConstant, RHSConstant);
-
public static LLVMValueRef CreateConstVector(LLVMValueRef[] ScalarConstantVars) => CreateConstVector(ScalarConstantVars.AsSpan());
public static LLVMValueRef CreateConstVector(ReadOnlySpan ScalarConstantVars)
@@ -978,7 +959,7 @@ public unsafe partial struct LLVMValueRef : IEquatable
public void Dump() => LLVM.DumpValue(this);
- public override bool Equals(object obj) => (obj is LLVMValueRef other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is LLVMValueRef other) && Equals(other);
public bool Equals(LLVMValueRef other) => this == other;
@@ -1037,6 +1018,9 @@ public unsafe partial struct LLVMValueRef : IEquatable
return result;
}
+ public LLVMValueRef GetAggregateElement(uint idx) => LLVM.GetAggregateElement(this, idx);
+
+ [Obsolete("Use GetAggregateElement instead")]
public LLVMValueRef GetElementAsConstant(uint idx) => LLVM.GetElementAsConstant(this, idx);
public override int GetHashCode() => Handle.GetHashCode();
@@ -1081,9 +1065,8 @@ public unsafe partial struct LLVMValueRef : IEquatable
{
return string.Empty;
}
- var span = new ReadOnlySpan(pStr, int.MaxValue);
- var result = span.Slice(0, span.IndexOf((byte)'\0')).AsString();
+ var result = SpanExtensions.AsString(pStr);
LLVM.DisposeMessage(pStr);
return result;
}
diff --git a/sources/LLVMSharp.Interop/Extensions/lto_code_gen_t.cs b/sources/LLVMSharp.Interop/Extensions/lto_code_gen_t.cs
index 0e45db4..b1646b3 100644
--- a/sources/LLVMSharp.Interop/Extensions/lto_code_gen_t.cs
+++ b/sources/LLVMSharp.Interop/Extensions/lto_code_gen_t.cs
@@ -21,7 +21,7 @@ public unsafe partial struct lto_code_gen_t : IEquatable
public static bool operator !=(lto_code_gen_t left, lto_code_gen_t right) => !(left == right);
- public override bool Equals(object obj) => (obj is lto_code_gen_t other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is lto_code_gen_t other) && Equals(other);
public bool Equals(lto_code_gen_t other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/lto_input_t.cs b/sources/LLVMSharp.Interop/Extensions/lto_input_t.cs
index f0d1acb..4ec3ab5 100644
--- a/sources/LLVMSharp.Interop/Extensions/lto_input_t.cs
+++ b/sources/LLVMSharp.Interop/Extensions/lto_input_t.cs
@@ -21,7 +21,7 @@ public unsafe partial struct lto_input_t : IEquatable
public static bool operator !=(lto_input_t left, lto_input_t right) => !(left == right);
- public override bool Equals(object obj) => (obj is lto_input_t other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is lto_input_t other) && Equals(other);
public bool Equals(lto_input_t other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/lto_module_t.cs b/sources/LLVMSharp.Interop/Extensions/lto_module_t.cs
index 6bcfbf5..4dd23f6 100644
--- a/sources/LLVMSharp.Interop/Extensions/lto_module_t.cs
+++ b/sources/LLVMSharp.Interop/Extensions/lto_module_t.cs
@@ -21,7 +21,7 @@ public unsafe partial struct lto_module_t : IEquatable
public static bool operator !=(lto_module_t left, lto_module_t right) => !(left == right);
- public override bool Equals(object obj) => (obj is lto_module_t other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is lto_module_t other) && Equals(other);
public bool Equals(lto_module_t other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Extensions/thinlto_code_gen_t.cs b/sources/LLVMSharp.Interop/Extensions/thinlto_code_gen_t.cs
index 7854dfd..68b7df1 100644
--- a/sources/LLVMSharp.Interop/Extensions/thinlto_code_gen_t.cs
+++ b/sources/LLVMSharp.Interop/Extensions/thinlto_code_gen_t.cs
@@ -21,7 +21,7 @@ public unsafe partial struct thinlto_code_gen_t : IEquatable
public static bool operator !=(thinlto_code_gen_t left, thinlto_code_gen_t right) => !(left == right);
- public override bool Equals(object obj) => (obj is thinlto_code_gen_t other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is thinlto_code_gen_t other) && Equals(other);
public bool Equals(thinlto_code_gen_t other) => this == other;
diff --git a/sources/LLVMSharp.Interop/Internals/MarshaledArray`1.cs b/sources/LLVMSharp.Interop/Internals/MarshaledArray`1.cs
index 91cfb79..cf75558 100644
--- a/sources/LLVMSharp.Interop/Internals/MarshaledArray`1.cs
+++ b/sources/LLVMSharp.Interop/Internals/MarshaledArray`1.cs
@@ -1,42 +1,64 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
using System;
-using System.Buffers;
+using System.Runtime.InteropServices;
namespace LLVMSharp.Interop;
public unsafe struct MarshaledArray : IDisposable
+ where U : unmanaged
{
public MarshaledArray(ReadOnlySpan inputs, Func marshal)
{
- if (inputs.IsEmpty)
+ int length;
+ U* value;
+
+ if (inputs.Length == 0)
{
- Count = 0;
- Values = null;
+ length = 0;
+ value = null;
}
else
{
- Count = inputs.Length;
- Values = ArrayPool.Shared.Rent(Count);
+ length = inputs.Length;
- for (int i = 0; i < Count; i++)
+#if NET6_0_OR_GREATER
+ value = (U*)NativeMemory.Alloc((uint)(length * sizeof(U)));
+#else
+ value = (U*)Marshal.AllocHGlobal(length * sizeof(U));
+#endif
+
+ for (int i = 0; i < inputs.Length; i++)
{
- Values[i] = marshal(inputs[i]);
+ var input = inputs[i];
+ value[i] = marshal(input);
}
}
+
+ Length = length;
+ Value = value;
}
- public int Count { get; private set; }
+ public ReadOnlySpan AsSpan() => new ReadOnlySpan(Value, Length);
- public U[] Values { get; private set; }
+ public int Length { get; private set; }
- public static implicit operator ReadOnlySpan(in MarshaledArray value) => value.Values;
+ public U* Value { get; private set; }
+
+ public static implicit operator U*(MarshaledArray value) => value.Value;
public void Dispose()
{
- if (Values != null)
+ if (Value != null)
{
- ArrayPool.Shared.Return(Values);
+#if NET6_0_OR_GREATER
+ NativeMemory.Free(Value);
+#else
+ Marshal.FreeHGlobal((IntPtr)Value);
+#endif
+
+ Value = null;
+ Length = 0;
}
}
}
diff --git a/sources/LLVMSharp.Interop/Internals/MarshaledString.cs b/sources/LLVMSharp.Interop/Internals/MarshaledString.cs
index e5b3339..b552d04 100644
--- a/sources/LLVMSharp.Interop/Internals/MarshaledString.cs
+++ b/sources/LLVMSharp.Interop/Internals/MarshaledString.cs
@@ -8,45 +8,62 @@ namespace LLVMSharp.Interop;
public unsafe struct MarshaledString : IDisposable
{
+ public MarshaledString(string? input) : this(input.AsSpan())
+ {
+ }
+
public MarshaledString(ReadOnlySpan input)
{
- if (input.IsEmpty)
- {
- var value = Marshal.AllocHGlobal(1);
- Marshal.WriteByte(value, 0, 0);
+ int length = input.Length;
+ sbyte* value;
- Length = 0;
- Value = (sbyte*)value;
- }
- else
+ if (length != 0)
{
- var valueBytes = Encoding.UTF8.GetBytes(input.ToString());
- var length = valueBytes.Length;
- var value = Marshal.AllocHGlobal(length + 1);
- Marshal.Copy(valueBytes, 0, value, length);
- Marshal.WriteByte(value, length, 0);
-
- Length = length;
- Value = (sbyte*)value;
+ length = Encoding.UTF8.GetMaxByteCount(input.Length);
}
+
+#if NET6_0_OR_GREATER
+ value = (sbyte*)NativeMemory.Alloc((uint)(length) + 1);
+#else
+ value = (sbyte*)Marshal.AllocHGlobal(length + 1);
+#endif
+
+ if (length != 0)
+ {
+ fixed (char* pInput = input)
+ {
+ length = Encoding.UTF8.GetBytes(pInput, input.Length, (byte*)value, length);
+ }
+ }
+ value[length] = 0;
+
+ Length = length;
+ Value = value;
}
+ public ReadOnlySpan AsSpan() => new ReadOnlySpan(Value, Length);
+
public int Length { get; private set; }
public sbyte* Value { get; private set; }
+ public static implicit operator sbyte*(MarshaledString value) => value.Value;
+
public void Dispose()
{
if (Value != null)
{
+#if NET6_0_OR_GREATER
+ NativeMemory.Free(Value);
+#else
Marshal.FreeHGlobal((IntPtr)Value);
+#endif
+
Value = null;
Length = 0;
}
}
- public static implicit operator sbyte*(in MarshaledString value) => value.Value;
-
public override string ToString()
{
var span = new ReadOnlySpan(Value, Length);
diff --git a/sources/LLVMSharp.Interop/Internals/MarshaledStringArray.cs b/sources/LLVMSharp.Interop/Internals/MarshaledStringArray.cs
index fec1a31..762f1a8 100644
--- a/sources/LLVMSharp.Interop/Internals/MarshaledStringArray.cs
+++ b/sources/LLVMSharp.Interop/Internals/MarshaledStringArray.cs
@@ -4,50 +4,52 @@ using System;
namespace LLVMSharp.Interop;
-public unsafe struct MarshaledStringArray : IDisposable
+public unsafe ref struct MarshaledStringArray
{
+ private MarshaledString[]? _values;
+
public MarshaledStringArray(ReadOnlySpan inputs)
{
- if (inputs.IsEmpty)
+ if (inputs.Length == 0)
{
- Count = 0;
- Values = null;
+ _values = null;
}
else
{
- Count = inputs.Length;
- Values = new MarshaledString[Count];
+ _values = new MarshaledString[inputs.Length];
- for (int i = 0; i < Count; i++)
+ for (var i = 0; i < inputs.Length; i++)
{
- Values[i] = new MarshaledString(inputs[i].AsSpan());
+ _values[i] = new MarshaledString(inputs[i]);
}
}
}
- public int Count { get; private set; }
+ public int Count => (_values is not null) ? _values.Length : 0;
- public MarshaledString[] Values { get; private set; }
+ public ReadOnlySpan Values => _values;
public void Dispose()
{
- if (Values != null)
+ if (_values != null)
{
- for (int i = 0; i < Values.Length; i++)
+ for (var i = 0; i < _values.Length; i++)
{
- Values[i].Dispose();
+ _values[i].Dispose();
}
- Values = null;
- Count = 0;
+ _values = null;
}
}
public void Fill(sbyte** pDestination)
{
- for (int i = 0; i < Count; i++)
+ if (_values != null)
{
- pDestination[i] = Values[i];
+ for (var i = 0; i < _values.Length; i++)
+ {
+ pDestination[i] = Values[i];
+ }
}
}
}
diff --git a/sources/LLVMSharp.Interop/Internals/SpanExtensions.cs b/sources/LLVMSharp.Interop/Internals/SpanExtensions.cs
index d5000ee..3efa54b 100644
--- a/sources/LLVMSharp.Interop/Internals/SpanExtensions.cs
+++ b/sources/LLVMSharp.Interop/Internals/SpanExtensions.cs
@@ -1,12 +1,24 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
using System;
+using System.Runtime.InteropServices;
using System.Text;
namespace LLVMSharp.Interop;
public static unsafe class SpanExtensions
{
+ public static string AsString(sbyte* pStr)
+ {
+#if NET6_0_OR_GREATER
+ var span = MemoryMarshal.CreateReadOnlySpanFromNullTerminated((byte*)(pStr));
+#else
+ var span = new ReadOnlySpan(pStr, int.MaxValue);
+ span = span.Slice(0, span.IndexOf((byte)'\0'));
+#endif
+ return span.AsString();
+ }
+
public static string AsString(this Span self) => AsString((ReadOnlySpan)self);
public static string AsString(this ReadOnlySpan self)
@@ -21,4 +33,30 @@ public static unsafe class SpanExtensions
return Encoding.UTF8.GetString(pSelf, self.Length);
}
}
+
+ public static string AsString(this ReadOnlySpan self)
+ {
+ if (self.IsEmpty)
+ {
+ return string.Empty;
+ }
+
+ fixed (ushort* pSelf = self)
+ {
+ return Encoding.Unicode.GetString((byte*)pSelf, self.Length * 2);
+ }
+ }
+
+ public static string AsString(this ReadOnlySpan self)
+ {
+ if (self.IsEmpty)
+ {
+ return string.Empty;
+ }
+
+ fixed (uint* pSelf = self)
+ {
+ return Encoding.UTF32.GetString((byte*)pSelf, self.Length * 4);
+ }
+ }
}
diff --git a/sources/LLVMSharp.Interop/LLVM.cs b/sources/LLVMSharp.Interop/LLVM.cs
index 4ade47e..2cb7817 100644
--- a/sources/LLVMSharp.Interop/LLVM.cs
+++ b/sources/LLVMSharp.Interop/LLVM.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
@@ -69,6 +69,52 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMMemoryBufferRef")]
public static extern LLVMOpaqueMemoryBuffer* WriteBitcodeToMemoryBuffer([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_version", ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* blake3_version();
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_init", ExactSpelling = true)]
+ public static extern void blake3_hasher_init(llvm_blake3_hasher* self);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_init_keyed", ExactSpelling = true)]
+ public static extern void blake3_hasher_init_keyed(llvm_blake3_hasher* self, [NativeTypeName("const uint8_t[32]")] byte* key);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_init_derive_key", ExactSpelling = true)]
+ public static extern void blake3_hasher_init_derive_key(llvm_blake3_hasher* self, [NativeTypeName("const char *")] sbyte* context);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_init_derive_key_raw", ExactSpelling = true)]
+ public static extern void blake3_hasher_init_derive_key_raw(llvm_blake3_hasher* self, [NativeTypeName("const void *")] void* context, [NativeTypeName("size_t")] nuint context_len);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_update", ExactSpelling = true)]
+ public static extern void blake3_hasher_update(llvm_blake3_hasher* self, [NativeTypeName("const void *")] void* input, [NativeTypeName("size_t")] nuint input_len);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_finalize", ExactSpelling = true)]
+ public static extern void blake3_hasher_finalize([NativeTypeName("const llvm_blake3_hasher *")] llvm_blake3_hasher* self, [NativeTypeName("uint8_t *")] byte* @out, [NativeTypeName("size_t")] nuint out_len);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_finalize_seek", ExactSpelling = true)]
+ public static extern void blake3_hasher_finalize_seek([NativeTypeName("const llvm_blake3_hasher *")] llvm_blake3_hasher* self, [NativeTypeName("uint64_t")] ulong seek, [NativeTypeName("uint8_t *")] byte* @out, [NativeTypeName("size_t")] nuint out_len);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "llvm_blake3_hasher_reset", ExactSpelling = true)]
+ public static extern void blake3_hasher_reset(llvm_blake3_hasher* self);
+
+ [NativeTypeName("#define LLVM_BLAKE3_VERSION_STRING \"1.3.1\"")]
+ public static ReadOnlySpan BLAKE3_VERSION_STRING => "1.3.1"u8;
+
+ [NativeTypeName("#define LLVM_BLAKE3_KEY_LEN 32")]
+ public const int BLAKE3_KEY_LEN = 32;
+
+ [NativeTypeName("#define LLVM_BLAKE3_OUT_LEN 32")]
+ public const int BLAKE3_OUT_LEN = 32;
+
+ [NativeTypeName("#define LLVM_BLAKE3_BLOCK_LEN 64")]
+ public const int BLAKE3_BLOCK_LEN = 64;
+
+ [NativeTypeName("#define LLVM_BLAKE3_CHUNK_LEN 1024")]
+ public const int BLAKE3_CHUNK_LEN = 1024;
+
+ [NativeTypeName("#define LLVM_BLAKE3_MAX_DEPTH 54")]
+ public const int BLAKE3_MAX_DEPTH = 54;
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetOrInsertComdat", ExactSpelling = true)]
[return: NativeTypeName("LLVMComdatRef")]
public static extern LLVMComdat* GetOrInsertComdat([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name);
@@ -108,17 +154,17 @@ public static unsafe partial class LLVM
public static extern LLVMOpaqueContext* GetGlobalContext();
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextSetDiagnosticHandler", ExactSpelling = true)]
- public static extern void ContextSetDiagnosticHandler([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMDiagnosticHandler")] IntPtr Handler, void* DiagnosticContext);
+ public static extern void ContextSetDiagnosticHandler([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMDiagnosticHandler")] delegate* unmanaged[Cdecl] Handler, void* DiagnosticContext);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextGetDiagnosticHandler", ExactSpelling = true)]
[return: NativeTypeName("LLVMDiagnosticHandler")]
- public static extern IntPtr ContextGetDiagnosticHandler([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C);
+ public static extern delegate* unmanaged[Cdecl] ContextGetDiagnosticHandler([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextGetDiagnosticContext", ExactSpelling = true)]
public static extern void* ContextGetDiagnosticContext([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextSetYieldCallback", ExactSpelling = true)]
- public static extern void ContextSetYieldCallback([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMYieldCallback")] IntPtr Callback, void* OpaqueHandle);
+ public static extern void ContextSetYieldCallback([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMYieldCallback")] delegate* unmanaged[Cdecl] Callback, void* OpaqueHandle);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextShouldDiscardValueNames", ExactSpelling = true)]
[return: NativeTypeName("LLVMBool")]
@@ -127,6 +173,9 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextSetDiscardValueNames", ExactSpelling = true)]
public static extern void ContextSetDiscardValueNames([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMBool")] int Discard);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextSetOpaquePointers", ExactSpelling = true)]
+ public static extern void ContextSetOpaquePointers([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMBool")] int OpaquePointers);
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMContextDispose", ExactSpelling = true)]
public static extern void ContextDispose([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C);
@@ -147,7 +196,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetEnumAttributeKindForName", ExactSpelling = true)]
[return: NativeTypeName("unsigned int")]
- public static extern uint GetEnumAttributeKindForName([NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr SLen);
+ public static extern uint GetEnumAttributeKindForName([NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint SLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetLastEnumAttributeKind", ExactSpelling = true)]
[return: NativeTypeName("unsigned int")]
@@ -218,17 +267,17 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetModuleIdentifier", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* GetModuleIdentifier([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] UIntPtr* Len);
+ public static extern sbyte* GetModuleIdentifier([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] nuint* Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMSetModuleIdentifier", ExactSpelling = true)]
- public static extern void SetModuleIdentifier([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Ident, [NativeTypeName("size_t")] UIntPtr Len);
+ public static extern void SetModuleIdentifier([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Ident, [NativeTypeName("size_t")] nuint Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetSourceFileName", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* GetSourceFileName([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] UIntPtr* Len);
+ public static extern sbyte* GetSourceFileName([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] nuint* Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMSetSourceFileName", ExactSpelling = true)]
- public static extern void SetSourceFileName([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr Len);
+ public static extern void SetSourceFileName([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetDataLayoutStr", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
@@ -250,7 +299,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCopyModuleFlagsMetadata", ExactSpelling = true)]
[return: NativeTypeName("LLVMModuleFlagEntry *")]
- public static extern LLVMOpaqueModuleFlagEntry* CopyModuleFlagsMetadata([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] UIntPtr* Len);
+ public static extern LLVMOpaqueModuleFlagEntry* CopyModuleFlagsMetadata([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] nuint* Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDisposeModuleFlagsMetadata", ExactSpelling = true)]
public static extern void DisposeModuleFlagsMetadata([NativeTypeName("LLVMModuleFlagEntry *")] LLVMOpaqueModuleFlagEntry* Entries);
@@ -260,7 +309,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMModuleFlagEntriesGetKey", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* ModuleFlagEntriesGetKey([NativeTypeName("LLVMModuleFlagEntry *")] LLVMOpaqueModuleFlagEntry* Entries, [NativeTypeName("unsigned int")] uint Index, [NativeTypeName("size_t *")] UIntPtr* Len);
+ public static extern sbyte* ModuleFlagEntriesGetKey([NativeTypeName("LLVMModuleFlagEntry *")] LLVMOpaqueModuleFlagEntry* Entries, [NativeTypeName("unsigned int")] uint Index, [NativeTypeName("size_t *")] nuint* Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMModuleFlagEntriesGetMetadata", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -268,10 +317,10 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetModuleFlag", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* GetModuleFlag([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Key, [NativeTypeName("size_t")] UIntPtr KeyLen);
+ public static extern LLVMOpaqueMetadata* GetModuleFlag([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Key, [NativeTypeName("size_t")] nuint KeyLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddModuleFlag", ExactSpelling = true)]
- public static extern void AddModuleFlag([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, LLVMModuleFlagBehavior Behavior, [NativeTypeName("const char *")] sbyte* Key, [NativeTypeName("size_t")] UIntPtr KeyLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Val);
+ public static extern void AddModuleFlag([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, LLVMModuleFlagBehavior Behavior, [NativeTypeName("const char *")] sbyte* Key, [NativeTypeName("size_t")] nuint KeyLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Val);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDumpModule", ExactSpelling = true)]
public static extern void DumpModule([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M);
@@ -286,17 +335,17 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetModuleInlineAsm", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* GetModuleInlineAsm([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] UIntPtr* Len);
+ public static extern sbyte* GetModuleInlineAsm([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("size_t *")] nuint* Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMSetModuleInlineAsm2", ExactSpelling = true)]
- public static extern void SetModuleInlineAsm2([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Asm, [NativeTypeName("size_t")] UIntPtr Len);
+ public static extern void SetModuleInlineAsm2([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Asm, [NativeTypeName("size_t")] nuint Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAppendModuleInlineAsm", ExactSpelling = true)]
- public static extern void AppendModuleInlineAsm([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Asm, [NativeTypeName("size_t")] UIntPtr Len);
+ public static extern void AppendModuleInlineAsm([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Asm, [NativeTypeName("size_t")] nuint Len);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetInlineAsm", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* GetInlineAsm([NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* Ty, [NativeTypeName("char *")] sbyte* AsmString, [NativeTypeName("size_t")] UIntPtr AsmStringSize, [NativeTypeName("char *")] sbyte* Constraints, [NativeTypeName("size_t")] UIntPtr ConstraintsSize, [NativeTypeName("LLVMBool")] int HasSideEffects, [NativeTypeName("LLVMBool")] int IsAlignStack, LLVMInlineAsmDialect Dialect, [NativeTypeName("LLVMBool")] int CanThrow);
+ public static extern LLVMOpaqueValue* GetInlineAsm([NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* Ty, [NativeTypeName("char *")] sbyte* AsmString, [NativeTypeName("size_t")] nuint AsmStringSize, [NativeTypeName("char *")] sbyte* Constraints, [NativeTypeName("size_t")] nuint ConstraintsSize, [NativeTypeName("LLVMBool")] int HasSideEffects, [NativeTypeName("LLVMBool")] int IsAlignStack, LLVMInlineAsmDialect Dialect, [NativeTypeName("LLVMBool")] int CanThrow);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetModuleContext", ExactSpelling = true)]
[return: NativeTypeName("LLVMContextRef")]
@@ -324,15 +373,15 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetNamedMetadata", ExactSpelling = true)]
[return: NativeTypeName("LLVMNamedMDNodeRef")]
- public static extern LLVMOpaqueNamedMDNode* GetNamedMetadata([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern LLVMOpaqueNamedMDNode* GetNamedMetadata([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetOrInsertNamedMetadata", ExactSpelling = true)]
[return: NativeTypeName("LLVMNamedMDNodeRef")]
- public static extern LLVMOpaqueNamedMDNode* GetOrInsertNamedMetadata([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern LLVMOpaqueNamedMDNode* GetOrInsertNamedMetadata([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetNamedMetadataName", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* GetNamedMetadataName([NativeTypeName("LLVMNamedMDNodeRef")] LLVMOpaqueNamedMDNode* NamedMD, [NativeTypeName("size_t *")] UIntPtr* NameLen);
+ public static extern sbyte* GetNamedMetadataName([NativeTypeName("LLVMNamedMDNodeRef")] LLVMOpaqueNamedMDNode* NamedMD, [NativeTypeName("size_t *")] nuint* NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetNamedMetadataNumOperands", ExactSpelling = true)]
[return: NativeTypeName("unsigned int")]
@@ -605,6 +654,14 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMTypeRef")]
public static extern LLVMOpaqueType* PointerType([NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* ElementType, [NativeTypeName("unsigned int")] uint AddressSpace);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPointerTypeIsOpaque", ExactSpelling = true)]
+ [return: NativeTypeName("LLVMBool")]
+ public static extern int PointerTypeIsOpaque([NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* Ty);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPointerTypeInContext", ExactSpelling = true)]
+ [return: NativeTypeName("LLVMTypeRef")]
+ public static extern LLVMOpaqueType* PointerTypeInContext([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("unsigned int")] uint AddressSpace);
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetPointerAddressSpace", ExactSpelling = true)]
[return: NativeTypeName("unsigned int")]
public static extern uint GetPointerAddressSpace([NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* PointerTy);
@@ -670,10 +727,10 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetValueName2", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* GetValueName2([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Val, [NativeTypeName("size_t *")] UIntPtr* Length);
+ public static extern sbyte* GetValueName2([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Val, [NativeTypeName("size_t *")] nuint* Length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMSetValueName2", ExactSpelling = true)]
- public static extern void SetValueName2([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Val, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern void SetValueName2([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Val, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDumpValue", ExactSpelling = true)]
public static extern void DumpValue([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Val);
@@ -1171,7 +1228,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetAsString", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* GetAsString([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* c, [NativeTypeName("size_t *")] UIntPtr* Length);
+ public static extern sbyte* GetAsString([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* c, [NativeTypeName("size_t *")] nuint* Length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstStructInContext", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
@@ -1189,8 +1246,13 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstNamedStruct([NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* StructTy, [NativeTypeName("LLVMValueRef *")] LLVMOpaqueValue** ConstantVals, [NativeTypeName("unsigned int")] uint Count);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetAggregateElement", ExactSpelling = true)]
+ [return: NativeTypeName("LLVMValueRef")]
+ public static extern LLVMOpaqueValue* GetAggregateElement([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* C, [NativeTypeName("unsigned int")] uint Idx);
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetElementAsConstant", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMGetAggregateElement instead")]
public static extern LLVMOpaqueValue* GetElementAsConstant([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* C, [NativeTypeName("unsigned int")] uint idx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstVector", ExactSpelling = true)]
@@ -1240,10 +1302,6 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstNUWAdd([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstFAdd", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstFAdd([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstSub", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstSub([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
@@ -1256,10 +1314,6 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstNUWSub([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstFSub", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstFSub([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstMul", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstMul([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
@@ -1272,42 +1326,6 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstNUWMul([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstFMul", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstFMul([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstUDiv", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstUDiv([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstExactUDiv", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstExactUDiv([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstSDiv", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstSDiv([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstExactSDiv", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstExactSDiv([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstFDiv", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstFDiv([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstURem", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstURem([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstSRem", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstSRem([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstFRem", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstFRem([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstAnd", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstAnd([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHSConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHSConstant);
@@ -1342,6 +1360,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstGEP", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMConstGEP2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* ConstGEP([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* ConstantVal, [NativeTypeName("LLVMValueRef *")] LLVMOpaqueValue** ConstantIndices, [NativeTypeName("unsigned int")] uint NumIndices);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstGEP2", ExactSpelling = true)]
@@ -1350,6 +1369,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstInBoundsGEP", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMConstInBoundsGEP2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* ConstInBoundsGEP([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* ConstantVal, [NativeTypeName("LLVMValueRef *")] LLVMOpaqueValue** ConstantIndices, [NativeTypeName("unsigned int")] uint NumIndices);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstInBoundsGEP2", ExactSpelling = true)]
@@ -1448,14 +1468,6 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* ConstShuffleVector([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* VectorAConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* VectorBConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* MaskConstant);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstExtractValue", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstExtractValue([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* AggConstant, [NativeTypeName("unsigned int *")] uint* IdxList, [NativeTypeName("unsigned int")] uint NumIdx);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMConstInsertValue", ExactSpelling = true)]
- [return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* ConstInsertValue([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* AggConstant, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* ElementValueConstant, [NativeTypeName("unsigned int *")] uint* IdxList, [NativeTypeName("unsigned int")] uint NumIdx);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBlockAddress", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* BlockAddress([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* F, [NativeTypeName("LLVMBasicBlockRef")] LLVMOpaqueBasicBlock* BB);
@@ -1532,7 +1544,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGlobalCopyAllMetadata", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueMetadataEntry *")]
- public static extern LLVMOpaqueValueMetadataEntry* GlobalCopyAllMetadata([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Value, [NativeTypeName("size_t *")] UIntPtr* NumEntries);
+ public static extern LLVMOpaqueValueMetadataEntry* GlobalCopyAllMetadata([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Value, [NativeTypeName("size_t *")] nuint* NumEntries);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDisposeValueMetadataEntries", ExactSpelling = true)]
public static extern void DisposeValueMetadataEntries([NativeTypeName("LLVMValueMetadataEntry *")] LLVMOpaqueValueMetadataEntry* Entries);
@@ -1612,6 +1624,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddAlias", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMAddAlias2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* AddAlias([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* Ty, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Aliasee, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddAlias2", ExactSpelling = true)]
@@ -1620,7 +1633,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetNamedGlobalAlias", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* GetNamedGlobalAlias([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern LLVMOpaqueValue* GetNamedGlobalAlias([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetFirstGlobalAlias", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
@@ -1661,7 +1674,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMLookupIntrinsicID", ExactSpelling = true)]
[return: NativeTypeName("unsigned int")]
- public static extern uint LookupIntrinsicID([NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern uint LookupIntrinsicID([NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetIntrinsicID", ExactSpelling = true)]
[return: NativeTypeName("unsigned int")]
@@ -1669,23 +1682,23 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetIntrinsicDeclaration", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* GetIntrinsicDeclaration([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* Mod, [NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] UIntPtr ParamCount);
+ public static extern LLVMOpaqueValue* GetIntrinsicDeclaration([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* Mod, [NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] nuint ParamCount);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMIntrinsicGetType", ExactSpelling = true)]
[return: NativeTypeName("LLVMTypeRef")]
- public static extern LLVMOpaqueType* IntrinsicGetType([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* Ctx, [NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] UIntPtr ParamCount);
+ public static extern LLVMOpaqueType* IntrinsicGetType([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* Ctx, [NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] nuint ParamCount);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMIntrinsicGetName", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* IntrinsicGetName([NativeTypeName("unsigned int")] uint ID, [NativeTypeName("size_t *")] UIntPtr* NameLength);
+ public static extern sbyte* IntrinsicGetName([NativeTypeName("unsigned int")] uint ID, [NativeTypeName("size_t *")] nuint* NameLength);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMIntrinsicCopyOverloadedName", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* IntrinsicCopyOverloadedName([NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] UIntPtr ParamCount, [NativeTypeName("size_t *")] UIntPtr* NameLength);
+ public static extern sbyte* IntrinsicCopyOverloadedName([NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] nuint ParamCount, [NativeTypeName("size_t *")] nuint* NameLength);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMIntrinsicCopyOverloadedName2", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* IntrinsicCopyOverloadedName2([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* Mod, [NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] UIntPtr ParamCount, [NativeTypeName("size_t *")] UIntPtr* NameLength);
+ public static extern sbyte* IntrinsicCopyOverloadedName2([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* Mod, [NativeTypeName("unsigned int")] uint ID, [NativeTypeName("LLVMTypeRef *")] LLVMOpaqueType** ParamTypes, [NativeTypeName("size_t")] nuint ParamCount, [NativeTypeName("size_t *")] nuint* NameLength);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMIntrinsicIsOverloaded", ExactSpelling = true)]
[return: NativeTypeName("LLVMBool")]
@@ -1768,11 +1781,11 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddGlobalIFunc", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* AddGlobalIFunc([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* Ty, [NativeTypeName("unsigned int")] uint AddrSpace, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Resolver);
+ public static extern LLVMOpaqueValue* AddGlobalIFunc([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* Ty, [NativeTypeName("unsigned int")] uint AddrSpace, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Resolver);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetNamedGlobalIFunc", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
- public static extern LLVMOpaqueValue* GetNamedGlobalIFunc([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern LLVMOpaqueValue* GetNamedGlobalIFunc([NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetFirstGlobalIFunc", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
@@ -1805,11 +1818,11 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMMDStringInContext2", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* MDStringInContext2([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("const char *")] sbyte* Str, [NativeTypeName("size_t")] UIntPtr SLen);
+ public static extern LLVMOpaqueMetadata* MDStringInContext2([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("const char *")] sbyte* Str, [NativeTypeName("size_t")] nuint SLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMMDNodeInContext2", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* MDNodeInContext2([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** MDs, [NativeTypeName("size_t")] UIntPtr Count);
+ public static extern LLVMOpaqueMetadata* MDNodeInContext2([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* C, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** MDs, [NativeTypeName("size_t")] nuint Count);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMMetadataAsValue", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
@@ -1955,7 +1968,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMInstructionGetAllMetadataOtherThanDebugLoc", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueMetadataEntry *")]
- public static extern LLVMOpaqueValueMetadataEntry* InstructionGetAllMetadataOtherThanDebugLoc([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Instr, [NativeTypeName("size_t *")] UIntPtr* NumEntries);
+ public static extern LLVMOpaqueValueMetadataEntry* InstructionGetAllMetadataOtherThanDebugLoc([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Instr, [NativeTypeName("size_t *")] nuint* NumEntries);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetInstructionParent", ExactSpelling = true)]
[return: NativeTypeName("LLVMBasicBlockRef")]
@@ -1975,6 +1988,9 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMInstructionEraseFromParent", ExactSpelling = true)]
public static extern void InstructionEraseFromParent([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Inst);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDeleteInstruction", ExactSpelling = true)]
+ public static extern void DeleteInstruction([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Inst);
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetInstructionOpcode", ExactSpelling = true)]
public static extern LLVMOpcode GetInstructionOpcode([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Inst);
@@ -2213,6 +2229,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildInvoke", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMBuildInvoke2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* BuildInvoke([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* param0, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Fn, [NativeTypeName("LLVMValueRef *")] LLVMOpaqueValue** Args, [NativeTypeName("unsigned int")] uint NumArgs, [NativeTypeName("LLVMBasicBlockRef")] LLVMOpaqueBasicBlock* Then, [NativeTypeName("LLVMBasicBlockRef")] LLVMOpaqueBasicBlock* Catch, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildInvoke2", ExactSpelling = true)]
@@ -2461,6 +2478,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildLoad", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMBuildLoad2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* BuildLoad([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* param0, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* PointerVal, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildLoad2", ExactSpelling = true)]
@@ -2473,14 +2491,17 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildGEP", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMBuildGEP2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* BuildGEP([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* B, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Pointer, [NativeTypeName("LLVMValueRef *")] LLVMOpaqueValue** Indices, [NativeTypeName("unsigned int")] uint NumIndices, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildInBoundsGEP", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMBuildInBoundsGEP2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* BuildInBoundsGEP([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* B, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Pointer, [NativeTypeName("LLVMValueRef *")] LLVMOpaqueValue** Indices, [NativeTypeName("unsigned int")] uint NumIndices, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildStructGEP", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMBuildStructGEP2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* BuildStructGEP([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* B, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Pointer, [NativeTypeName("unsigned int")] uint Idx, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildGEP2", ExactSpelling = true)]
@@ -2613,6 +2634,9 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* BuildIntCast([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* param0, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Val, [NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* DestTy, [NativeTypeName("const char *")] sbyte* Name);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetCastOpcode", ExactSpelling = true)]
+ public static extern LLVMOpcode GetCastOpcode([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Src, [NativeTypeName("LLVMBool")] int SrcIsSigned, [NativeTypeName("LLVMTypeRef")] LLVMOpaqueType* DestTy, [NativeTypeName("LLVMBool")] int DestIsSigned);
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildICmp", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
public static extern LLVMOpaqueValue* BuildICmp([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* param0, LLVMIntPredicate Op, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHS, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHS, [NativeTypeName("const char *")] sbyte* Name);
@@ -2627,6 +2651,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildCall", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMBuildCall2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* BuildCall([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* param0, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Fn, [NativeTypeName("LLVMValueRef *")] LLVMOpaqueValue** Args, [NativeTypeName("unsigned int")] uint NumArgs, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildCall2", ExactSpelling = true)]
@@ -2675,6 +2700,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildPtrDiff", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
+ [Obsolete("Use LLVMBuildPtrDiff2 instead to support opaque pointer")]
public static extern LLVMOpaqueValue* BuildPtrDiff([NativeTypeName("LLVMBuilderRef")] LLVMOpaqueBuilder* param0, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* LHS, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* RHS, [NativeTypeName("const char *")] sbyte* Name);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMBuildPtrDiff2", ExactSpelling = true)]
@@ -2739,11 +2765,11 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCreateMemoryBufferWithMemoryRange", ExactSpelling = true)]
[return: NativeTypeName("LLVMMemoryBufferRef")]
- public static extern LLVMOpaqueMemoryBuffer* CreateMemoryBufferWithMemoryRange([NativeTypeName("const char *")] sbyte* InputData, [NativeTypeName("size_t")] UIntPtr InputDataLength, [NativeTypeName("const char *")] sbyte* BufferName, [NativeTypeName("LLVMBool")] int RequiresNullTerminator);
+ public static extern LLVMOpaqueMemoryBuffer* CreateMemoryBufferWithMemoryRange([NativeTypeName("const char *")] sbyte* InputData, [NativeTypeName("size_t")] nuint InputDataLength, [NativeTypeName("const char *")] sbyte* BufferName, [NativeTypeName("LLVMBool")] int RequiresNullTerminator);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCreateMemoryBufferWithMemoryRangeCopy", ExactSpelling = true)]
[return: NativeTypeName("LLVMMemoryBufferRef")]
- public static extern LLVMOpaqueMemoryBuffer* CreateMemoryBufferWithMemoryRangeCopy([NativeTypeName("const char *")] sbyte* InputData, [NativeTypeName("size_t")] UIntPtr InputDataLength, [NativeTypeName("const char *")] sbyte* BufferName);
+ public static extern LLVMOpaqueMemoryBuffer* CreateMemoryBufferWithMemoryRangeCopy([NativeTypeName("const char *")] sbyte* InputData, [NativeTypeName("size_t")] nuint InputDataLength, [NativeTypeName("const char *")] sbyte* BufferName);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetBufferStart", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
@@ -2751,7 +2777,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetBufferSize", ExactSpelling = true)]
[return: NativeTypeName("size_t")]
- public static extern UIntPtr GetBufferSize([NativeTypeName("LLVMMemoryBufferRef")] LLVMOpaqueMemoryBuffer* MemBuf);
+ public static extern nuint GetBufferSize([NativeTypeName("LLVMMemoryBufferRef")] LLVMOpaqueMemoryBuffer* MemBuf);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDisposeMemoryBuffer", ExactSpelling = true)]
public static extern void DisposeMemoryBuffer([NativeTypeName("LLVMMemoryBufferRef")] LLVMOpaqueMemoryBuffer* MemBuf);
@@ -2833,23 +2859,23 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateCompileUnit", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateCompileUnit([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, LLVMDWARFSourceLanguage Lang, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* FileRef, [NativeTypeName("const char *")] sbyte* Producer, [NativeTypeName("size_t")] UIntPtr ProducerLen, [NativeTypeName("LLVMBool")] int isOptimized, [NativeTypeName("const char *")] sbyte* Flags, [NativeTypeName("size_t")] UIntPtr FlagsLen, [NativeTypeName("unsigned int")] uint RuntimeVer, [NativeTypeName("const char *")] sbyte* SplitName, [NativeTypeName("size_t")] UIntPtr SplitNameLen, LLVMDWARFEmissionKind Kind, [NativeTypeName("unsigned int")] uint DWOId, [NativeTypeName("LLVMBool")] int SplitDebugInlining, [NativeTypeName("LLVMBool")] int DebugInfoForProfiling, [NativeTypeName("const char *")] sbyte* SysRoot, [NativeTypeName("size_t")] UIntPtr SysRootLen, [NativeTypeName("const char *")] sbyte* SDK, [NativeTypeName("size_t")] UIntPtr SDKLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateCompileUnit([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, LLVMDWARFSourceLanguage Lang, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* FileRef, [NativeTypeName("const char *")] sbyte* Producer, [NativeTypeName("size_t")] nuint ProducerLen, [NativeTypeName("LLVMBool")] int isOptimized, [NativeTypeName("const char *")] sbyte* Flags, [NativeTypeName("size_t")] nuint FlagsLen, [NativeTypeName("unsigned int")] uint RuntimeVer, [NativeTypeName("const char *")] sbyte* SplitName, [NativeTypeName("size_t")] nuint SplitNameLen, LLVMDWARFEmissionKind Kind, [NativeTypeName("unsigned int")] uint DWOId, [NativeTypeName("LLVMBool")] int SplitDebugInlining, [NativeTypeName("LLVMBool")] int DebugInfoForProfiling, [NativeTypeName("const char *")] sbyte* SysRoot, [NativeTypeName("size_t")] nuint SysRootLen, [NativeTypeName("const char *")] sbyte* SDK, [NativeTypeName("size_t")] nuint SDKLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateFile", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateFile([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Filename, [NativeTypeName("size_t")] UIntPtr FilenameLen, [NativeTypeName("const char *")] sbyte* Directory, [NativeTypeName("size_t")] UIntPtr DirectoryLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateFile([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Filename, [NativeTypeName("size_t")] nuint FilenameLen, [NativeTypeName("const char *")] sbyte* Directory, [NativeTypeName("size_t")] nuint DirectoryLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateModule", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateModule([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ParentScope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("const char *")] sbyte* ConfigMacros, [NativeTypeName("size_t")] UIntPtr ConfigMacrosLen, [NativeTypeName("const char *")] sbyte* IncludePath, [NativeTypeName("size_t")] UIntPtr IncludePathLen, [NativeTypeName("const char *")] sbyte* APINotesFile, [NativeTypeName("size_t")] UIntPtr APINotesFileLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateModule([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ParentScope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("const char *")] sbyte* ConfigMacros, [NativeTypeName("size_t")] nuint ConfigMacrosLen, [NativeTypeName("const char *")] sbyte* IncludePath, [NativeTypeName("size_t")] nuint IncludePathLen, [NativeTypeName("const char *")] sbyte* APINotesFile, [NativeTypeName("size_t")] nuint APINotesFileLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateNameSpace", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateNameSpace([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ParentScope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMBool")] int ExportSymbols);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateNameSpace([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ParentScope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMBool")] int ExportSymbols);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateFunction", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateFunction([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("const char *")] sbyte* LinkageName, [NativeTypeName("size_t")] UIntPtr LinkageNameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int IsLocalToUnit, [NativeTypeName("LLVMBool")] int IsDefinition, [NativeTypeName("unsigned int")] uint ScopeLine, LLVMDIFlags Flags, [NativeTypeName("LLVMBool")] int IsOptimized);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateFunction([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("const char *")] sbyte* LinkageName, [NativeTypeName("size_t")] nuint LinkageNameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int IsLocalToUnit, [NativeTypeName("LLVMBool")] int IsDefinition, [NativeTypeName("unsigned int")] uint ScopeLine, LLVMDIFlags Flags, [NativeTypeName("LLVMBool")] int IsOptimized);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateLexicalBlock", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -2873,7 +2899,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateImportedDeclaration", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateImportedDeclaration([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Decl, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint Line, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateImportedDeclaration([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Decl, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint Line, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateDebugLocation", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -2913,7 +2939,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderGetOrCreateTypeArray", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderGetOrCreateTypeArray([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Data, [NativeTypeName("size_t")] UIntPtr NumElements);
+ public static extern LLVMOpaqueMetadata* DIBuilderGetOrCreateTypeArray([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Data, [NativeTypeName("size_t")] nuint NumElements);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateSubroutineType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -2921,7 +2947,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateMacro", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateMacro([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ParentMacroFile, [NativeTypeName("unsigned int")] uint Line, LLVMDWARFMacinfoRecordType RecordType, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("const char *")] sbyte* Value, [NativeTypeName("size_t")] UIntPtr ValueLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateMacro([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ParentMacroFile, [NativeTypeName("unsigned int")] uint Line, LLVMDWARFMacinfoRecordType RecordType, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("const char *")] sbyte* Value, [NativeTypeName("size_t")] nuint ValueLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateTempMacroFile", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -2929,15 +2955,15 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateEnumerator", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateEnumerator([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("int64_t")] long Value, [NativeTypeName("LLVMBool")] int IsUnsigned);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateEnumerator([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("int64_t")] long Value, [NativeTypeName("LLVMBool")] int IsUnsigned);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateEnumerationType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateEnumerationType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ClassTy);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateEnumerationType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* ClassTy);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateUnionType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateUnionType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("unsigned int")] uint RunTimeLang, [NativeTypeName("const char *")] sbyte* UniqueId, [NativeTypeName("size_t")] UIntPtr UniqueIdLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateUnionType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("unsigned int")] uint RunTimeLang, [NativeTypeName("const char *")] sbyte* UniqueId, [NativeTypeName("size_t")] nuint UniqueIdLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateArrayType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -2949,27 +2975,27 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateUnspecifiedType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateUnspecifiedType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateUnspecifiedType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateBasicType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateBasicType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("LLVMDWARFTypeEncoding")] uint Encoding, LLVMDIFlags Flags);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateBasicType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("LLVMDWARFTypeEncoding")] uint Encoding, LLVMDIFlags Flags);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreatePointerType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreatePointerType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* PointeeTy, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("unsigned int")] uint AddressSpace, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreatePointerType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* PointeeTy, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("unsigned int")] uint AddressSpace, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateStructType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateStructType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* DerivedFrom, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("unsigned int")] uint RunTimeLang, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* VTableHolder, [NativeTypeName("const char *")] sbyte* UniqueId, [NativeTypeName("size_t")] UIntPtr UniqueIdLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateStructType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* DerivedFrom, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("unsigned int")] uint RunTimeLang, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* VTableHolder, [NativeTypeName("const char *")] sbyte* UniqueId, [NativeTypeName("size_t")] nuint UniqueIdLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateMemberType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateMemberType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateMemberType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateStaticMemberType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateStaticMemberType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Type, LLVMDIFlags Flags, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* ConstantVal, [NativeTypeName("uint32_t")] uint AlignInBits);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateStaticMemberType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Type, LLVMDIFlags Flags, [NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* ConstantVal, [NativeTypeName("uint32_t")] uint AlignInBits);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateMemberPointerType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -2977,11 +3003,11 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateObjCIVar", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateObjCIVar([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* PropertyNode);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateObjCIVar([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* PropertyNode);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateObjCProperty", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateObjCProperty([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("const char *")] sbyte* GetterName, [NativeTypeName("size_t")] UIntPtr GetterNameLen, [NativeTypeName("const char *")] sbyte* SetterName, [NativeTypeName("size_t")] UIntPtr SetterNameLen, [NativeTypeName("unsigned int")] uint PropertyAttributes, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateObjCProperty([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("const char *")] sbyte* GetterName, [NativeTypeName("size_t")] nuint GetterNameLen, [NativeTypeName("const char *")] sbyte* SetterName, [NativeTypeName("size_t")] nuint SetterNameLen, [NativeTypeName("unsigned int")] uint PropertyAttributes, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateObjectPointerType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -3001,7 +3027,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateTypedef", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateTypedef([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Type, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("uint32_t")] uint AlignInBits);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateTypedef([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Type, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("uint32_t")] uint AlignInBits);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateInheritance", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -3009,19 +3035,19 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateForwardDecl", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateForwardDecl([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("unsigned int")] uint Tag, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint Line, [NativeTypeName("unsigned int")] uint RuntimeLang, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("const char *")] sbyte* UniqueIdentifier, [NativeTypeName("size_t")] UIntPtr UniqueIdentifierLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateForwardDecl([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("unsigned int")] uint Tag, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint Line, [NativeTypeName("unsigned int")] uint RuntimeLang, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("const char *")] sbyte* UniqueIdentifier, [NativeTypeName("size_t")] nuint UniqueIdentifierLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateReplaceableCompositeType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateReplaceableCompositeType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("unsigned int")] uint Tag, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint Line, [NativeTypeName("unsigned int")] uint RuntimeLang, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, LLVMDIFlags Flags, [NativeTypeName("const char *")] sbyte* UniqueIdentifier, [NativeTypeName("size_t")] UIntPtr UniqueIdentifierLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateReplaceableCompositeType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("unsigned int")] uint Tag, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint Line, [NativeTypeName("unsigned int")] uint RuntimeLang, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, LLVMDIFlags Flags, [NativeTypeName("const char *")] sbyte* UniqueIdentifier, [NativeTypeName("size_t")] nuint UniqueIdentifierLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateBitFieldMemberType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateBitFieldMemberType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, [NativeTypeName("uint64_t")] ulong StorageOffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Type);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateBitFieldMemberType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, [NativeTypeName("uint64_t")] ulong StorageOffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Type);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateClassType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateClassType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* DerivedFrom, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* VTableHolder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* TemplateParamsNode, [NativeTypeName("const char *")] sbyte* UniqueIdentifier, [NativeTypeName("size_t")] UIntPtr UniqueIdentifierLen);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateClassType([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNumber, [NativeTypeName("uint64_t")] ulong SizeInBits, [NativeTypeName("uint32_t")] uint AlignInBits, [NativeTypeName("uint64_t")] ulong OffsetInBits, LLVMDIFlags Flags, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* DerivedFrom, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Elements, [NativeTypeName("unsigned int")] uint NumElements, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* VTableHolder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* TemplateParamsNode, [NativeTypeName("const char *")] sbyte* UniqueIdentifier, [NativeTypeName("size_t")] nuint UniqueIdentifierLen);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateArtificialType", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -3029,7 +3055,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDITypeGetName", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* DITypeGetName([NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* DType, [NativeTypeName("size_t *")] UIntPtr* Length);
+ public static extern sbyte* DITypeGetName([NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* DType, [NativeTypeName("size_t *")] nuint* Length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDITypeGetSizeInBits", ExactSpelling = true)]
[return: NativeTypeName("uint64_t")]
@@ -3056,11 +3082,11 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderGetOrCreateArray", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderGetOrCreateArray([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Data, [NativeTypeName("size_t")] UIntPtr NumElements);
+ public static extern LLVMOpaqueMetadata* DIBuilderGetOrCreateArray([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Data, [NativeTypeName("size_t")] nuint NumElements);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateExpression", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateExpression([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("uint64_t *")] ulong* Addr, [NativeTypeName("size_t")] UIntPtr Length);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateExpression([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("uint64_t *")] ulong* Addr, [NativeTypeName("size_t")] nuint Length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateConstantValueExpression", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -3068,7 +3094,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateGlobalVariableExpression", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateGlobalVariableExpression([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("const char *")] sbyte* Linkage, [NativeTypeName("size_t")] UIntPtr LinkLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int LocalToUnit, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Expr, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Decl, [NativeTypeName("uint32_t")] uint AlignInBits);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateGlobalVariableExpression([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("const char *")] sbyte* Linkage, [NativeTypeName("size_t")] nuint LinkLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int LocalToUnit, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Expr, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Decl, [NativeTypeName("uint32_t")] uint AlignInBits);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIGlobalVariableExpressionGetVariable", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -3092,7 +3118,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMTemporaryMDNode", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* TemporaryMDNode([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* Ctx, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Data, [NativeTypeName("size_t")] UIntPtr NumElements);
+ public static extern LLVMOpaqueMetadata* TemporaryMDNode([NativeTypeName("LLVMContextRef")] LLVMOpaqueContext* Ctx, [NativeTypeName("LLVMMetadataRef *")] LLVMOpaqueMetadata** Data, [NativeTypeName("size_t")] nuint NumElements);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDisposeTemporaryMDNode", ExactSpelling = true)]
public static extern void DisposeTemporaryMDNode([NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* TempNode);
@@ -3102,7 +3128,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateTempGlobalVariableFwdDecl", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateTempGlobalVariableFwdDecl([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("const char *")] sbyte* Linkage, [NativeTypeName("size_t")] UIntPtr LnkLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int LocalToUnit, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Decl, [NativeTypeName("uint32_t")] uint AlignInBits);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateTempGlobalVariableFwdDecl([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("const char *")] sbyte* Linkage, [NativeTypeName("size_t")] nuint LnkLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int LocalToUnit, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Decl, [NativeTypeName("uint32_t")] uint AlignInBits);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderInsertDeclareBefore", ExactSpelling = true)]
[return: NativeTypeName("LLVMValueRef")]
@@ -3122,11 +3148,11 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateAutoVariable", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateAutoVariable([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int AlwaysPreserve, LLVMDIFlags Flags, [NativeTypeName("uint32_t")] uint AlignInBits);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateAutoVariable([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int AlwaysPreserve, LLVMDIFlags Flags, [NativeTypeName("uint32_t")] uint AlignInBits);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDIBuilderCreateParameterVariable", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
- public static extern LLVMOpaqueMetadata* DIBuilderCreateParameterVariable([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] UIntPtr NameLen, [NativeTypeName("unsigned int")] uint ArgNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int AlwaysPreserve, LLVMDIFlags Flags);
+ public static extern LLVMOpaqueMetadata* DIBuilderCreateParameterVariable([NativeTypeName("LLVMDIBuilderRef")] LLVMOpaqueDIBuilder* Builder, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Scope, [NativeTypeName("const char *")] sbyte* Name, [NativeTypeName("size_t")] nuint NameLen, [NativeTypeName("unsigned int")] uint ArgNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* File, [NativeTypeName("unsigned int")] uint LineNo, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Ty, [NativeTypeName("LLVMBool")] int AlwaysPreserve, LLVMDIFlags Flags);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetSubprogram", ExactSpelling = true)]
[return: NativeTypeName("LLVMMetadataRef")]
@@ -3147,19 +3173,20 @@ public static unsafe partial class LLVM
public static extern void InstructionSetDebugLoc([NativeTypeName("LLVMValueRef")] LLVMOpaqueValue* Inst, [NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Loc);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMGetMetadataKind", ExactSpelling = true)]
- public static extern LLVMMetadataKind GetMetadataKind([NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Metadata);
+ [return: NativeTypeName("LLVMMetadataKind")]
+ public static extern uint GetMetadataKind([NativeTypeName("LLVMMetadataRef")] LLVMOpaqueMetadata* Metadata);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCreateDisasm", ExactSpelling = true)]
[return: NativeTypeName("LLVMDisasmContextRef")]
- public static extern void* CreateDisasm([NativeTypeName("const char *")] sbyte* TripleName, void* DisInfo, int TagType, [NativeTypeName("LLVMOpInfoCallback")] IntPtr GetOpInfo, [NativeTypeName("LLVMSymbolLookupCallback")] IntPtr SymbolLookUp);
+ public static extern void* CreateDisasm([NativeTypeName("const char *")] sbyte* TripleName, void* DisInfo, int TagType, [NativeTypeName("LLVMOpInfoCallback")] delegate* unmanaged[Cdecl] GetOpInfo, [NativeTypeName("LLVMSymbolLookupCallback")] delegate* unmanaged[Cdecl] SymbolLookUp);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCreateDisasmCPU", ExactSpelling = true)]
[return: NativeTypeName("LLVMDisasmContextRef")]
- public static extern void* CreateDisasmCPU([NativeTypeName("const char *")] sbyte* Triple, [NativeTypeName("const char *")] sbyte* CPU, void* DisInfo, int TagType, [NativeTypeName("LLVMOpInfoCallback")] IntPtr GetOpInfo, [NativeTypeName("LLVMSymbolLookupCallback")] IntPtr SymbolLookUp);
+ public static extern void* CreateDisasmCPU([NativeTypeName("const char *")] sbyte* Triple, [NativeTypeName("const char *")] sbyte* CPU, void* DisInfo, int TagType, [NativeTypeName("LLVMOpInfoCallback")] delegate* unmanaged[Cdecl] GetOpInfo, [NativeTypeName("LLVMSymbolLookupCallback")] delegate* unmanaged[Cdecl] SymbolLookUp);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCreateDisasmCPUFeatures", ExactSpelling = true)]
[return: NativeTypeName("LLVMDisasmContextRef")]
- public static extern void* CreateDisasmCPUFeatures([NativeTypeName("const char *")] sbyte* Triple, [NativeTypeName("const char *")] sbyte* CPU, [NativeTypeName("const char *")] sbyte* Features, void* DisInfo, int TagType, [NativeTypeName("LLVMOpInfoCallback")] IntPtr GetOpInfo, [NativeTypeName("LLVMSymbolLookupCallback")] IntPtr SymbolLookUp);
+ public static extern void* CreateDisasmCPUFeatures([NativeTypeName("const char *")] sbyte* Triple, [NativeTypeName("const char *")] sbyte* CPU, [NativeTypeName("const char *")] sbyte* Features, void* DisInfo, int TagType, [NativeTypeName("LLVMOpInfoCallback")] delegate* unmanaged[Cdecl] GetOpInfo, [NativeTypeName("LLVMSymbolLookupCallback")] delegate* unmanaged[Cdecl] SymbolLookUp);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMSetDisasmOptions", ExactSpelling = true)]
public static extern int SetDisasmOptions([NativeTypeName("LLVMDisasmContextRef")] void* DC, [NativeTypeName("uint64_t")] ulong Options);
@@ -3169,7 +3196,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDisasmInstruction", ExactSpelling = true)]
[return: NativeTypeName("size_t")]
- public static extern UIntPtr DisasmInstruction([NativeTypeName("LLVMDisasmContextRef")] void* DC, [NativeTypeName("uint8_t *")] byte* Bytes, [NativeTypeName("uint64_t")] ulong BytesSize, [NativeTypeName("uint64_t")] ulong PC, [NativeTypeName("char *")] sbyte* OutString, [NativeTypeName("size_t")] UIntPtr OutStringSize);
+ public static extern nuint DisasmInstruction([NativeTypeName("LLVMDisasmContextRef")] void* DC, [NativeTypeName("uint8_t *")] byte* Bytes, [NativeTypeName("uint64_t")] ulong BytesSize, [NativeTypeName("uint64_t")] ulong PC, [NativeTypeName("char *")] sbyte* OutString, [NativeTypeName("size_t")] nuint OutStringSize);
[NativeTypeName("#define LLVMDisassembler_Option_UseMarkup 1")]
public const int LLVMDisassembler_Option_UseMarkup = 1;
@@ -3290,7 +3317,7 @@ public static unsafe partial class LLVM
public const int LLVMErrorSuccess = 0;
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMInstallFatalErrorHandler", ExactSpelling = true)]
- public static extern void InstallFatalErrorHandler([NativeTypeName("LLVMFatalErrorHandler")] IntPtr Handler);
+ public static extern void InstallFatalErrorHandler([NativeTypeName("LLVMFatalErrorHandler")] delegate* unmanaged[Cdecl] Handler);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMResetFatalErrorHandler", ExactSpelling = true)]
public static extern void ResetFatalErrorHandler();
@@ -3346,11 +3373,11 @@ public static unsafe partial class LLVM
public static extern int CreateJITCompilerForModule([NativeTypeName("LLVMExecutionEngineRef *")] LLVMOpaqueExecutionEngine** OutJIT, [NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("unsigned int")] uint OptLevel, [NativeTypeName("char **")] sbyte** OutError);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMInitializeMCJITCompilerOptions", ExactSpelling = true)]
- public static extern void InitializeMCJITCompilerOptions([NativeTypeName("struct LLVMMCJITCompilerOptions *")] LLVMMCJITCompilerOptions* Options, [NativeTypeName("size_t")] UIntPtr SizeOfOptions);
+ public static extern void InitializeMCJITCompilerOptions([NativeTypeName("struct LLVMMCJITCompilerOptions *")] LLVMMCJITCompilerOptions* Options, [NativeTypeName("size_t")] nuint SizeOfOptions);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCreateMCJITCompilerForModule", ExactSpelling = true)]
[return: NativeTypeName("LLVMBool")]
- public static extern int CreateMCJITCompilerForModule([NativeTypeName("LLVMExecutionEngineRef *")] LLVMOpaqueExecutionEngine** OutJIT, [NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("struct LLVMMCJITCompilerOptions *")] LLVMMCJITCompilerOptions* Options, [NativeTypeName("size_t")] UIntPtr SizeOfOptions, [NativeTypeName("char **")] sbyte** OutError);
+ public static extern int CreateMCJITCompilerForModule([NativeTypeName("LLVMExecutionEngineRef *")] LLVMOpaqueExecutionEngine** OutJIT, [NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("struct LLVMMCJITCompilerOptions *")] LLVMMCJITCompilerOptions* Options, [NativeTypeName("size_t")] nuint SizeOfOptions, [NativeTypeName("char **")] sbyte** OutError);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDisposeExecutionEngine", ExactSpelling = true)]
public static extern void DisposeExecutionEngine([NativeTypeName("LLVMExecutionEngineRef")] LLVMOpaqueExecutionEngine* EE);
@@ -3413,7 +3440,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMCreateSimpleMCJITMemoryManager", ExactSpelling = true)]
[return: NativeTypeName("LLVMMCJITMemoryManagerRef")]
- public static extern LLVMOpaqueMCJITMemoryManager* CreateSimpleMCJITMemoryManager(void* Opaque, [NativeTypeName("LLVMMemoryManagerAllocateCodeSectionCallback")] IntPtr AllocateCodeSection, [NativeTypeName("LLVMMemoryManagerAllocateDataSectionCallback")] IntPtr AllocateDataSection, [NativeTypeName("LLVMMemoryManagerFinalizeMemoryCallback")] IntPtr FinalizeMemory, [NativeTypeName("LLVMMemoryManagerDestroyCallback")] IntPtr Destroy);
+ public static extern LLVMOpaqueMCJITMemoryManager* CreateSimpleMCJITMemoryManager(void* Opaque, [NativeTypeName("LLVMMemoryManagerAllocateCodeSectionCallback")] delegate* unmanaged[Cdecl] AllocateCodeSection, [NativeTypeName("LLVMMemoryManagerAllocateDataSectionCallback")] delegate* unmanaged[Cdecl] AllocateDataSection, [NativeTypeName("LLVMMemoryManagerFinalizeMemoryCallback")] delegate* unmanaged[Cdecl] FinalizeMemory, [NativeTypeName("LLVMMemoryManagerDestroyCallback")] delegate* unmanaged[Cdecl] Destroy);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMDisposeMCJITMemoryManager", ExactSpelling = true)]
public static extern void DisposeMCJITMemoryManager([NativeTypeName("LLVMMCJITMemoryManagerRef")] LLVMOpaqueMCJITMemoryManager* MM);
@@ -3489,7 +3516,7 @@ public static unsafe partial class LLVM
public static extern void OrcLLJITBuilderSetJITTargetMachineBuilder([NativeTypeName("LLVMOrcLLJITBuilderRef")] LLVMOrcOpaqueLLJITBuilder* Builder, [NativeTypeName("LLVMOrcJITTargetMachineBuilderRef")] LLVMOrcOpaqueJITTargetMachineBuilder* JTMB);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator", ExactSpelling = true)]
- public static extern void OrcLLJITBuilderSetObjectLinkingLayerCreator([NativeTypeName("LLVMOrcLLJITBuilderRef")] LLVMOrcOpaqueLLJITBuilder* Builder, [NativeTypeName("LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction")] IntPtr F, void* Ctx);
+ public static extern void OrcLLJITBuilderSetObjectLinkingLayerCreator([NativeTypeName("LLVMOrcLLJITBuilderRef")] LLVMOrcOpaqueLLJITBuilder* Builder, [NativeTypeName("LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction")] delegate* unmanaged[Cdecl] F, void* Ctx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcCreateLLJIT", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
@@ -3573,15 +3600,15 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_bool_t")]
- public static extern byte lto_module_has_objc_category([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] UIntPtr length);
+ public static extern byte lto_module_has_objc_category([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_bool_t")]
- public static extern byte lto_module_is_object_file_in_memory([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] UIntPtr length);
+ public static extern byte lto_module_is_object_file_in_memory([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_bool_t")]
- public static extern byte lto_module_is_object_file_in_memory_for_target([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] UIntPtr length, [NativeTypeName("const char *")] sbyte* target_triple_prefix);
+ public static extern byte lto_module_is_object_file_in_memory_for_target([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint length, [NativeTypeName("const char *")] sbyte* target_triple_prefix);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_module_t")]
@@ -3589,27 +3616,27 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_module_t")]
- public static extern LLVMOpaqueLTOModule* lto_module_create_from_memory([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] UIntPtr length);
+ public static extern LLVMOpaqueLTOModule* lto_module_create_from_memory([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_module_t")]
- public static extern LLVMOpaqueLTOModule* lto_module_create_from_memory_with_path([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] UIntPtr length, [NativeTypeName("const char *")] sbyte* path);
+ public static extern LLVMOpaqueLTOModule* lto_module_create_from_memory_with_path([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint length, [NativeTypeName("const char *")] sbyte* path);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_module_t")]
- public static extern LLVMOpaqueLTOModule* lto_module_create_in_local_context([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] UIntPtr length, [NativeTypeName("const char *")] sbyte* path);
+ public static extern LLVMOpaqueLTOModule* lto_module_create_in_local_context([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint length, [NativeTypeName("const char *")] sbyte* path);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_module_t")]
- public static extern LLVMOpaqueLTOModule* lto_module_create_in_codegen_context([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] UIntPtr length, [NativeTypeName("const char *")] sbyte* path, [NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* cg);
+ public static extern LLVMOpaqueLTOModule* lto_module_create_in_codegen_context([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint length, [NativeTypeName("const char *")] sbyte* path, [NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* cg);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_module_t")]
- public static extern LLVMOpaqueLTOModule* lto_module_create_from_fd(int fd, [NativeTypeName("const char *")] sbyte* path, [NativeTypeName("size_t")] UIntPtr file_size);
+ public static extern LLVMOpaqueLTOModule* lto_module_create_from_fd(int fd, [NativeTypeName("const char *")] sbyte* path, [NativeTypeName("size_t")] nuint file_size);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_module_t")]
- public static extern LLVMOpaqueLTOModule* lto_module_create_from_fd_at_offset(int fd, [NativeTypeName("const char *")] sbyte* path, [NativeTypeName("size_t")] UIntPtr file_size, [NativeTypeName("size_t")] UIntPtr map_size, [NativeTypeName("off_t")] int offset);
+ public static extern LLVMOpaqueLTOModule* lto_module_create_from_fd_at_offset(int fd, [NativeTypeName("const char *")] sbyte* path, [NativeTypeName("size_t")] nuint file_size, [NativeTypeName("size_t")] nuint map_size, [NativeTypeName("off_t")] nint offset);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void lto_module_dispose([NativeTypeName("lto_module_t")] LLVMOpaqueLTOModule* mod);
@@ -3645,7 +3672,7 @@ public static unsafe partial class LLVM
public static extern byte lto_module_has_ctor_dtor([NativeTypeName("lto_module_t")] LLVMOpaqueLTOModule* mod);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- public static extern void lto_codegen_set_diagnostic_handler([NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* param0, [NativeTypeName("lto_diagnostic_handler_t")] IntPtr param1, void* param2);
+ public static extern void lto_codegen_set_diagnostic_handler([NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* param0, [NativeTypeName("lto_diagnostic_handler_t")] delegate* unmanaged[Cdecl] param1, void* param2);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_code_gen_t")]
@@ -3691,7 +3718,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("const void *")]
- public static extern void* lto_codegen_compile([NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* cg, [NativeTypeName("size_t *")] UIntPtr* length);
+ public static extern void* lto_codegen_compile([NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* cg, [NativeTypeName("size_t *")] nuint* length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_bool_t")]
@@ -3703,7 +3730,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("const void *")]
- public static extern void* lto_codegen_compile_optimized([NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* cg, [NativeTypeName("size_t *")] UIntPtr* length);
+ public static extern void* lto_codegen_compile_optimized([NativeTypeName("lto_code_gen_t")] LLVMOpaqueLTOCodeGenerator* cg, [NativeTypeName("size_t *")] nuint* length);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("unsigned int")]
@@ -3729,7 +3756,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("lto_input_t")]
- public static extern LLVMOpaqueLTOInput* lto_input_create([NativeTypeName("const void *")] void* buffer, [NativeTypeName("size_t")] UIntPtr buffer_size, [NativeTypeName("const char *")] sbyte* path);
+ public static extern LLVMOpaqueLTOInput* lto_input_create([NativeTypeName("const void *")] void* buffer, [NativeTypeName("size_t")] nuint buffer_size, [NativeTypeName("const char *")] sbyte* path);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void lto_input_dispose([NativeTypeName("lto_input_t")] LLVMOpaqueLTOInput* input);
@@ -3740,11 +3767,11 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("const char *")]
- public static extern sbyte* lto_input_get_dependent_library([NativeTypeName("lto_input_t")] LLVMOpaqueLTOInput* input, [NativeTypeName("size_t")] UIntPtr index, [NativeTypeName("size_t *")] UIntPtr* size);
+ public static extern sbyte* lto_input_get_dependent_library([NativeTypeName("lto_input_t")] LLVMOpaqueLTOInput* input, [NativeTypeName("size_t")] nuint index, [NativeTypeName("size_t *")] nuint* size);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("const char *const *")]
- public static extern sbyte** lto_runtime_lib_symbols_list([NativeTypeName("size_t *")] UIntPtr* size);
+ public static extern sbyte** lto_runtime_lib_symbols_list([NativeTypeName("size_t *")] nuint* size);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("thinlto_code_gen_t")]
@@ -3846,7 +3873,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMMachOUniversalBinaryCopyObjectForArch", ExactSpelling = true)]
[return: NativeTypeName("LLVMBinaryRef")]
- public static extern LLVMOpaqueBinary* MachOUniversalBinaryCopyObjectForArch([NativeTypeName("LLVMBinaryRef")] LLVMOpaqueBinary* BR, [NativeTypeName("const char *")] sbyte* Arch, [NativeTypeName("size_t")] UIntPtr ArchLen, [NativeTypeName("char **")] sbyte** ErrorMessage);
+ public static extern LLVMOpaqueBinary* MachOUniversalBinaryCopyObjectForArch([NativeTypeName("LLVMBinaryRef")] LLVMOpaqueBinary* BR, [NativeTypeName("const char *")] sbyte* Arch, [NativeTypeName("size_t")] nuint ArchLen, [NativeTypeName("char **")] sbyte** ErrorMessage);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMObjectFileCopySectionIterator", ExactSpelling = true)]
[return: NativeTypeName("LLVMSectionIteratorRef")]
@@ -3969,7 +3996,7 @@ public static unsafe partial class LLVM
public static extern int IsSymbolIteratorAtEnd([NativeTypeName("LLVMObjectFileRef")] LLVMOpaqueObjectFile* ObjectFile, [NativeTypeName("LLVMSymbolIteratorRef")] LLVMOpaqueSymbolIterator* SI);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcExecutionSessionSetErrorReporter", ExactSpelling = true)]
- public static extern void OrcExecutionSessionSetErrorReporter([NativeTypeName("LLVMOrcExecutionSessionRef")] LLVMOrcOpaqueExecutionSession* ES, [NativeTypeName("LLVMOrcErrorReporterFunction")] IntPtr ReportError, void* Ctx);
+ public static extern void OrcExecutionSessionSetErrorReporter([NativeTypeName("LLVMOrcExecutionSessionRef")] LLVMOrcOpaqueExecutionSession* ES, [NativeTypeName("LLVMOrcErrorReporterFunction")] delegate* unmanaged[Cdecl] ReportError, void* Ctx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcExecutionSessionGetSymbolStringPool", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcSymbolStringPoolRef")]
@@ -3982,6 +4009,9 @@ public static unsafe partial class LLVM
[return: NativeTypeName("LLVMOrcSymbolStringPoolEntryRef")]
public static extern LLVMOrcOpaqueSymbolStringPoolEntry* OrcExecutionSessionIntern([NativeTypeName("LLVMOrcExecutionSessionRef")] LLVMOrcOpaqueExecutionSession* ES, [NativeTypeName("const char *")] sbyte* Name);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcExecutionSessionLookup", ExactSpelling = true)]
+ public static extern void OrcExecutionSessionLookup([NativeTypeName("LLVMOrcExecutionSessionRef")] LLVMOrcOpaqueExecutionSession* ES, LLVMOrcLookupKind K, [NativeTypeName("LLVMOrcCJITDylibSearchOrder")] LLVMOrcCJITDylibSearchOrderElement* SearchOrder, [NativeTypeName("size_t")] nuint SearchOrderSize, [NativeTypeName("LLVMOrcCLookupSet")] LLVMOrcCLookupSetElement* Symbols, [NativeTypeName("size_t")] nuint SymbolsSize, [NativeTypeName("LLVMOrcExecutionSessionLookupHandleResultFunction")] delegate* unmanaged[Cdecl] HandleResult, void* Ctx);
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcRetainSymbolStringPoolEntry", ExactSpelling = true)]
public static extern void OrcRetainSymbolStringPoolEntry([NativeTypeName("LLVMOrcSymbolStringPoolEntryRef")] LLVMOrcOpaqueSymbolStringPoolEntry* S);
@@ -4010,15 +4040,15 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcCreateCustomMaterializationUnit", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcMaterializationUnitRef")]
- public static extern LLVMOrcOpaqueMaterializationUnit* OrcCreateCustomMaterializationUnit([NativeTypeName("const char *")] sbyte* Name, void* Ctx, [NativeTypeName("LLVMOrcCSymbolFlagsMapPairs")] LLVMOrcCSymbolFlagsMapPair* Syms, [NativeTypeName("size_t")] UIntPtr NumSyms, [NativeTypeName("LLVMOrcSymbolStringPoolEntryRef")] LLVMOrcOpaqueSymbolStringPoolEntry* InitSym, [NativeTypeName("LLVMOrcMaterializationUnitMaterializeFunction")] IntPtr Materialize, [NativeTypeName("LLVMOrcMaterializationUnitDiscardFunction")] IntPtr Discard, [NativeTypeName("LLVMOrcMaterializationUnitDestroyFunction")] IntPtr Destroy);
+ public static extern LLVMOrcOpaqueMaterializationUnit* OrcCreateCustomMaterializationUnit([NativeTypeName("const char *")] sbyte* Name, void* Ctx, [NativeTypeName("LLVMOrcCSymbolFlagsMapPairs")] LLVMOrcCSymbolFlagsMapPair* Syms, [NativeTypeName("size_t")] nuint NumSyms, [NativeTypeName("LLVMOrcSymbolStringPoolEntryRef")] LLVMOrcOpaqueSymbolStringPoolEntry* InitSym, [NativeTypeName("LLVMOrcMaterializationUnitMaterializeFunction")] delegate* unmanaged[Cdecl] Materialize, [NativeTypeName("LLVMOrcMaterializationUnitDiscardFunction")] delegate* unmanaged[Cdecl] Discard, [NativeTypeName("LLVMOrcMaterializationUnitDestroyFunction")] delegate* unmanaged[Cdecl] Destroy);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcAbsoluteSymbols", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcMaterializationUnitRef")]
- public static extern LLVMOrcOpaqueMaterializationUnit* OrcAbsoluteSymbols([NativeTypeName("LLVMOrcCSymbolMapPairs")] LLVMJITCSymbolMapPair* Syms, [NativeTypeName("size_t")] UIntPtr NumPairs);
+ public static extern LLVMOrcOpaqueMaterializationUnit* OrcAbsoluteSymbols([NativeTypeName("LLVMOrcCSymbolMapPairs")] LLVMOrcCSymbolMapPair* Syms, [NativeTypeName("size_t")] nuint NumPairs);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcLazyReexports", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcMaterializationUnitRef")]
- public static extern LLVMOrcOpaqueMaterializationUnit* OrcLazyReexports([NativeTypeName("LLVMOrcLazyCallThroughManagerRef")] LLVMOrcOpaqueLazyCallThroughManager* LCTM, [NativeTypeName("LLVMOrcIndirectStubsManagerRef")] LLVMOrcOpaqueIndirectStubsManager* ISM, [NativeTypeName("LLVMOrcJITDylibRef")] LLVMOrcOpaqueJITDylib* SourceRef, [NativeTypeName("LLVMOrcCSymbolAliasMapPairs")] LLVMOrcCSymbolAliasMapPair* CallableAliases, [NativeTypeName("size_t")] UIntPtr NumPairs);
+ public static extern LLVMOrcOpaqueMaterializationUnit* OrcLazyReexports([NativeTypeName("LLVMOrcLazyCallThroughManagerRef")] LLVMOrcOpaqueLazyCallThroughManager* LCTM, [NativeTypeName("LLVMOrcIndirectStubsManagerRef")] LLVMOrcOpaqueIndirectStubsManager* ISM, [NativeTypeName("LLVMOrcJITDylibRef")] LLVMOrcOpaqueJITDylib* SourceRef, [NativeTypeName("LLVMOrcCSymbolAliasMapPairs")] LLVMOrcCSymbolAliasMapPair* CallableAliases, [NativeTypeName("size_t")] nuint NumPairs);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcDisposeMaterializationResponsibility", ExactSpelling = true)]
public static extern void OrcDisposeMaterializationResponsibility([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR);
@@ -4033,7 +4063,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityGetSymbols", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcCSymbolFlagsMapPairs")]
- public static extern LLVMOrcCSymbolFlagsMapPair* OrcMaterializationResponsibilityGetSymbols([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("size_t *")] UIntPtr* NumPairs);
+ public static extern LLVMOrcCSymbolFlagsMapPair* OrcMaterializationResponsibilityGetSymbols([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("size_t *")] nuint* NumPairs);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcDisposeCSymbolFlagsMap", ExactSpelling = true)]
public static extern void OrcDisposeCSymbolFlagsMap([NativeTypeName("LLVMOrcCSymbolFlagsMapPairs")] LLVMOrcCSymbolFlagsMapPair* Pairs);
@@ -4044,14 +4074,14 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityGetRequestedSymbols", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcSymbolStringPoolEntryRef *")]
- public static extern LLVMOrcOpaqueSymbolStringPoolEntry** OrcMaterializationResponsibilityGetRequestedSymbols([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("size_t *")] UIntPtr* NumSymbols);
+ public static extern LLVMOrcOpaqueSymbolStringPoolEntry** OrcMaterializationResponsibilityGetRequestedSymbols([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("size_t *")] nuint* NumSymbols);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcDisposeSymbols", ExactSpelling = true)]
public static extern void OrcDisposeSymbols([NativeTypeName("LLVMOrcSymbolStringPoolEntryRef *")] LLVMOrcOpaqueSymbolStringPoolEntry** Symbols);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityNotifyResolved", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
- public static extern LLVMOpaqueError* OrcMaterializationResponsibilityNotifyResolved([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcCSymbolMapPairs")] LLVMJITCSymbolMapPair* Symbols, [NativeTypeName("size_t")] UIntPtr NumPairs);
+ public static extern LLVMOpaqueError* OrcMaterializationResponsibilityNotifyResolved([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcCSymbolMapPairs")] LLVMOrcCSymbolMapPair* Symbols, [NativeTypeName("size_t")] nuint NumPairs);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityNotifyEmitted", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
@@ -4059,7 +4089,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityDefineMaterializing", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
- public static extern LLVMOpaqueError* OrcMaterializationResponsibilityDefineMaterializing([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcCSymbolFlagsMapPairs")] LLVMOrcCSymbolFlagsMapPair* Pairs, [NativeTypeName("size_t")] UIntPtr NumPairs);
+ public static extern LLVMOpaqueError* OrcMaterializationResponsibilityDefineMaterializing([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcCSymbolFlagsMapPairs")] LLVMOrcCSymbolFlagsMapPair* Pairs, [NativeTypeName("size_t")] nuint NumPairs);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityFailMaterialization", ExactSpelling = true)]
public static extern void OrcMaterializationResponsibilityFailMaterialization([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR);
@@ -4070,13 +4100,13 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityDelegate", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
- public static extern LLVMOpaqueError* OrcMaterializationResponsibilityDelegate([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcSymbolStringPoolEntryRef *")] LLVMOrcOpaqueSymbolStringPoolEntry** Symbols, [NativeTypeName("size_t")] UIntPtr NumSymbols, [NativeTypeName("LLVMOrcMaterializationResponsibilityRef *")] LLVMOrcOpaqueMaterializationResponsibility** Result);
+ public static extern LLVMOpaqueError* OrcMaterializationResponsibilityDelegate([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcSymbolStringPoolEntryRef *")] LLVMOrcOpaqueSymbolStringPoolEntry** Symbols, [NativeTypeName("size_t")] nuint NumSymbols, [NativeTypeName("LLVMOrcMaterializationResponsibilityRef *")] LLVMOrcOpaqueMaterializationResponsibility** Result);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityAddDependencies", ExactSpelling = true)]
- public static extern void OrcMaterializationResponsibilityAddDependencies([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcSymbolStringPoolEntryRef")] LLVMOrcOpaqueSymbolStringPoolEntry* Name, [NativeTypeName("LLVMOrcCDependenceMapPairs")] LLVMOrcCDependenceMapPair* Dependencies, [NativeTypeName("size_t")] UIntPtr NumPairs);
+ public static extern void OrcMaterializationResponsibilityAddDependencies([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcSymbolStringPoolEntryRef")] LLVMOrcOpaqueSymbolStringPoolEntry* Name, [NativeTypeName("LLVMOrcCDependenceMapPairs")] LLVMOrcCDependenceMapPair* Dependencies, [NativeTypeName("size_t")] nuint NumPairs);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcMaterializationResponsibilityAddDependenciesForAll", ExactSpelling = true)]
- public static extern void OrcMaterializationResponsibilityAddDependenciesForAll([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcCDependenceMapPairs")] LLVMOrcCDependenceMapPair* Dependencies, [NativeTypeName("size_t")] UIntPtr NumPairs);
+ public static extern void OrcMaterializationResponsibilityAddDependenciesForAll([NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcCDependenceMapPairs")] LLVMOrcCDependenceMapPair* Dependencies, [NativeTypeName("size_t")] nuint NumPairs);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcExecutionSessionCreateBareJITDylib", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcJITDylibRef")]
@@ -4111,15 +4141,18 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcCreateCustomCAPIDefinitionGenerator", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcDefinitionGeneratorRef")]
- public static extern LLVMOrcOpaqueDefinitionGenerator* OrcCreateCustomCAPIDefinitionGenerator([NativeTypeName("LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction")] IntPtr F, void* Ctx);
+ public static extern LLVMOrcOpaqueDefinitionGenerator* OrcCreateCustomCAPIDefinitionGenerator([NativeTypeName("LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction")] delegate* unmanaged[Cdecl] F, void* Ctx, [NativeTypeName("LLVMOrcDisposeCAPIDefinitionGeneratorFunction")] delegate* unmanaged[Cdecl] Dispose);
+
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcLookupStateContinueLookup", ExactSpelling = true)]
+ public static extern void OrcLookupStateContinueLookup([NativeTypeName("LLVMOrcLookupStateRef")] LLVMOrcOpaqueLookupState* S, [NativeTypeName("LLVMErrorRef")] LLVMOpaqueError* Err);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
- public static extern LLVMOpaqueError* OrcCreateDynamicLibrarySearchGeneratorForProcess([NativeTypeName("LLVMOrcDefinitionGeneratorRef *")] LLVMOrcOpaqueDefinitionGenerator** Result, [NativeTypeName("char")] sbyte GlobalPrefx, [NativeTypeName("LLVMOrcSymbolPredicate")] IntPtr Filter, void* FilterCtx);
+ public static extern LLVMOpaqueError* OrcCreateDynamicLibrarySearchGeneratorForProcess([NativeTypeName("LLVMOrcDefinitionGeneratorRef *")] LLVMOrcOpaqueDefinitionGenerator** Result, [NativeTypeName("char")] sbyte GlobalPrefx, [NativeTypeName("LLVMOrcSymbolPredicate")] delegate* unmanaged[Cdecl] Filter, void* FilterCtx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcCreateDynamicLibrarySearchGeneratorForPath", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
- public static extern LLVMOpaqueError* OrcCreateDynamicLibrarySearchGeneratorForPath([NativeTypeName("LLVMOrcDefinitionGeneratorRef *")] LLVMOrcOpaqueDefinitionGenerator** Result, [NativeTypeName("const char *")] sbyte* FileName, [NativeTypeName("char")] sbyte GlobalPrefix, [NativeTypeName("LLVMOrcSymbolPredicate")] IntPtr Filter, void* FilterCtx);
+ public static extern LLVMOpaqueError* OrcCreateDynamicLibrarySearchGeneratorForPath([NativeTypeName("LLVMOrcDefinitionGeneratorRef *")] LLVMOrcOpaqueDefinitionGenerator** Result, [NativeTypeName("const char *")] sbyte* FileName, [NativeTypeName("char")] sbyte GlobalPrefix, [NativeTypeName("LLVMOrcSymbolPredicate")] delegate* unmanaged[Cdecl] Filter, void* FilterCtx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcCreateStaticLibrarySearchGeneratorForPath", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
@@ -4145,7 +4178,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcThreadSafeModuleWithModuleDo", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
- public static extern LLVMOpaqueError* OrcThreadSafeModuleWithModuleDo([NativeTypeName("LLVMOrcThreadSafeModuleRef")] LLVMOrcOpaqueThreadSafeModule* TSM, [NativeTypeName("LLVMOrcGenericIRModuleOperationFunction")] IntPtr F, void* Ctx);
+ public static extern LLVMOpaqueError* OrcThreadSafeModuleWithModuleDo([NativeTypeName("LLVMOrcThreadSafeModuleRef")] LLVMOrcOpaqueThreadSafeModule* TSM, [NativeTypeName("LLVMOrcGenericIRModuleOperationFunction")] delegate* unmanaged[Cdecl] F, void* Ctx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcJITTargetMachineBuilderDetectHost", ExactSpelling = true)]
[return: NativeTypeName("LLVMErrorRef")]
@@ -4183,10 +4216,10 @@ public static unsafe partial class LLVM
public static extern void OrcIRTransformLayerEmit([NativeTypeName("LLVMOrcIRTransformLayerRef")] LLVMOrcOpaqueIRTransformLayer* IRTransformLayer, [NativeTypeName("LLVMOrcMaterializationResponsibilityRef")] LLVMOrcOpaqueMaterializationResponsibility* MR, [NativeTypeName("LLVMOrcThreadSafeModuleRef")] LLVMOrcOpaqueThreadSafeModule* TSM);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcIRTransformLayerSetTransform", ExactSpelling = true)]
- public static extern void OrcIRTransformLayerSetTransform([NativeTypeName("LLVMOrcIRTransformLayerRef")] LLVMOrcOpaqueIRTransformLayer* IRTransformLayer, [NativeTypeName("LLVMOrcIRTransformLayerTransformFunction")] IntPtr TransformFunction, void* Ctx);
+ public static extern void OrcIRTransformLayerSetTransform([NativeTypeName("LLVMOrcIRTransformLayerRef")] LLVMOrcOpaqueIRTransformLayer* IRTransformLayer, [NativeTypeName("LLVMOrcIRTransformLayerTransformFunction")] delegate* unmanaged[Cdecl] TransformFunction, void* Ctx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcObjectTransformLayerSetTransform", ExactSpelling = true)]
- public static extern void OrcObjectTransformLayerSetTransform([NativeTypeName("LLVMOrcObjectTransformLayerRef")] LLVMOrcOpaqueObjectTransformLayer* ObjTransformLayer, [NativeTypeName("LLVMOrcObjectTransformLayerTransformFunction")] IntPtr TransformFunction, void* Ctx);
+ public static extern void OrcObjectTransformLayerSetTransform([NativeTypeName("LLVMOrcObjectTransformLayerRef")] LLVMOrcOpaqueObjectTransformLayer* ObjTransformLayer, [NativeTypeName("LLVMOrcObjectTransformLayerTransformFunction")] delegate* unmanaged[Cdecl] TransformFunction, void* Ctx);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMOrcCreateLocalIndirectStubsManager", ExactSpelling = true)]
[return: NativeTypeName("LLVMOrcIndirectStubsManagerRef")]
@@ -4646,7 +4679,7 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMTargetMachineEmitToFile", ExactSpelling = true)]
[return: NativeTypeName("LLVMBool")]
- public static extern int TargetMachineEmitToFile([NativeTypeName("LLVMTargetMachineRef")] LLVMOpaqueTargetMachine* T, [NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("char *")] sbyte* Filename, LLVMCodeGenFileType codegen, [NativeTypeName("char **")] sbyte** ErrorMessage);
+ public static extern int TargetMachineEmitToFile([NativeTypeName("LLVMTargetMachineRef")] LLVMOpaqueTargetMachine* T, [NativeTypeName("LLVMModuleRef")] LLVMOpaqueModule* M, [NativeTypeName("const char *")] sbyte* Filename, LLVMCodeGenFileType codegen, [NativeTypeName("char **")] sbyte** ErrorMessage);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMTargetMachineEmitToMemoryBuffer", ExactSpelling = true)]
[return: NativeTypeName("LLVMBool")]
@@ -4674,27 +4707,9 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddAggressiveInstCombinerPass", ExactSpelling = true)]
public static extern void AddAggressiveInstCombinerPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddCoroEarlyPass", ExactSpelling = true)]
- public static extern void AddCoroEarlyPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddCoroSplitPass", ExactSpelling = true)]
- public static extern void AddCoroSplitPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddCoroElidePass", ExactSpelling = true)]
- public static extern void AddCoroElidePass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddCoroCleanupPass", ExactSpelling = true)]
- public static extern void AddCoroCleanupPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
-
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPassManagerBuilderAddCoroutinePassesToExtensionPoints", ExactSpelling = true)]
- public static extern void PassManagerBuilderAddCoroutinePassesToExtensionPoints([NativeTypeName("LLVMPassManagerBuilderRef")] LLVMOpaquePassManagerBuilder* PMB);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddInstructionCombiningPass", ExactSpelling = true)]
public static extern void AddInstructionCombiningPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddArgumentPromotionPass", ExactSpelling = true)]
- public static extern void AddArgumentPromotionPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddConstantMergePass", ExactSpelling = true)]
public static extern void AddConstantMergePass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
@@ -4732,7 +4747,7 @@ public static unsafe partial class LLVM
public static extern void AddInternalizePass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* param0, [NativeTypeName("unsigned int")] uint AllButMain);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddInternalizePassWithMustPreservePredicate", ExactSpelling = true)]
- public static extern void AddInternalizePassWithMustPreservePredicate([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM, void* Context, [NativeTypeName("LLVMBool (*)(LLVMValueRef, void *)")] IntPtr MustPreserve);
+ public static extern void AddInternalizePassWithMustPreservePredicate([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM, void* Context, [NativeTypeName("LLVMBool (*)(LLVMValueRef, void *)")] delegate* unmanaged[Cdecl] MustPreserve);
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddStripDeadPrototypesPass", ExactSpelling = true)]
public static extern void AddStripDeadPrototypesPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
@@ -4791,6 +4806,9 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPassManagerBuilderDispose", ExactSpelling = true)]
public static extern void PassManagerBuilderDispose([NativeTypeName("LLVMPassManagerBuilderRef")] LLVMOpaquePassManagerBuilder* PMB);
+ [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPassManagerBuilderSetOptLevel", ExactSpelling = true)]
+ public static extern void PassManagerBuilderSetOptLevel([NativeTypeName("LLVMPassManagerBuilderRef")] LLVMOpaquePassManagerBuilder* PMB, [NativeTypeName("unsigned int")] uint OptLevel);
+
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPassManagerBuilderSetSizeLevel", ExactSpelling = true)]
public static extern void PassManagerBuilderSetSizeLevel([NativeTypeName("LLVMPassManagerBuilderRef")] LLVMOpaquePassManagerBuilder* PMB, [NativeTypeName("unsigned int")] uint SizeLevel);
@@ -4812,9 +4830,6 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPassManagerBuilderPopulateModulePassManager", ExactSpelling = true)]
public static extern void PassManagerBuilderPopulateModulePassManager([NativeTypeName("LLVMPassManagerBuilderRef")] LLVMOpaquePassManagerBuilder* PMB, [NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMPassManagerBuilderPopulateLTOPassManager", ExactSpelling = true)]
- public static extern void PassManagerBuilderPopulateLTOPassManager([NativeTypeName("LLVMPassManagerBuilderRef")] LLVMOpaquePassManagerBuilder* PMB, [NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM, [NativeTypeName("LLVMBool")] int Internalize, [NativeTypeName("LLVMBool")] int RunInliner);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddAggressiveDCEPass", ExactSpelling = true)]
public static extern void AddAggressiveDCEPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
@@ -4875,9 +4890,6 @@ public static unsafe partial class LLVM
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddLoopUnrollAndJamPass", ExactSpelling = true)]
public static extern void AddLoopUnrollAndJamPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
- [DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddLoopUnswitchPass", ExactSpelling = true)]
- public static extern void AddLoopUnswitchPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
-
[DllImport("libLLVM", CallingConvention = CallingConvention.Cdecl, EntryPoint = "LLVMAddLowerAtomicPass", ExactSpelling = true)]
public static extern void AddLowerAtomicPass([NativeTypeName("LLVMPassManagerRef")] LLVMOpaquePassManager* PM);
diff --git a/sources/LLVMSharp.Interop/LLVMAtomicOrdering.cs b/sources/LLVMSharp.Interop/LLVMAtomicOrdering.cs
index 181775b..287c6e1 100644
--- a/sources/LLVMSharp.Interop/LLVMAtomicOrdering.cs
+++ b/sources/LLVMSharp.Interop/LLVMAtomicOrdering.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMAtomicRMWBinOp.cs b/sources/LLVMSharp.Interop/LLVMAtomicRMWBinOp.cs
index 89802b6..2bcbc16 100644
--- a/sources/LLVMSharp.Interop/LLVMAtomicRMWBinOp.cs
+++ b/sources/LLVMSharp.Interop/LLVMAtomicRMWBinOp.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
@@ -20,4 +20,6 @@ public enum LLVMAtomicRMWBinOp
LLVMAtomicRMWBinOpUMin,
LLVMAtomicRMWBinOpFAdd,
LLVMAtomicRMWBinOpFSub,
+ LLVMAtomicRMWBinOpFMax,
+ LLVMAtomicRMWBinOpFMin,
}
diff --git a/sources/LLVMSharp.Interop/LLVMBinaryType.cs b/sources/LLVMSharp.Interop/LLVMBinaryType.cs
index 733a2de..35f8aa5 100644
--- a/sources/LLVMSharp.Interop/LLVMBinaryType.cs
+++ b/sources/LLVMSharp.Interop/LLVMBinaryType.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
@@ -22,4 +22,5 @@ public enum LLVMBinaryType
LLVMBinaryTypeMachO64L,
LLVMBinaryTypeMachO64B,
LLVMBinaryTypeWasm,
+ LLVMBinaryTypeOffload,
}
diff --git a/sources/LLVMSharp.Interop/LLVMByteOrdering.cs b/sources/LLVMSharp.Interop/LLVMByteOrdering.cs
index eb6b444..6686d6c 100644
--- a/sources/LLVMSharp.Interop/LLVMByteOrdering.cs
+++ b/sources/LLVMSharp.Interop/LLVMByteOrdering.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMCallConv.cs b/sources/LLVMSharp.Interop/LLVMCallConv.cs
index c51e9ac..99efcc1 100644
--- a/sources/LLVMSharp.Interop/LLVMCallConv.cs
+++ b/sources/LLVMSharp.Interop/LLVMCallConv.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMCodeGenFileType.cs b/sources/LLVMSharp.Interop/LLVMCodeGenFileType.cs
index a6aa478..203cd43 100644
--- a/sources/LLVMSharp.Interop/LLVMCodeGenFileType.cs
+++ b/sources/LLVMSharp.Interop/LLVMCodeGenFileType.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMCodeGenOptLevel.cs b/sources/LLVMSharp.Interop/LLVMCodeGenOptLevel.cs
index 834829f..1808854 100644
--- a/sources/LLVMSharp.Interop/LLVMCodeGenOptLevel.cs
+++ b/sources/LLVMSharp.Interop/LLVMCodeGenOptLevel.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMCodeModel.cs b/sources/LLVMSharp.Interop/LLVMCodeModel.cs
index c18a529..cb3a46b 100644
--- a/sources/LLVMSharp.Interop/LLVMCodeModel.cs
+++ b/sources/LLVMSharp.Interop/LLVMCodeModel.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMComdatSelectionKind.cs b/sources/LLVMSharp.Interop/LLVMComdatSelectionKind.cs
index f29f91f..fa1302b 100644
--- a/sources/LLVMSharp.Interop/LLVMComdatSelectionKind.cs
+++ b/sources/LLVMSharp.Interop/LLVMComdatSelectionKind.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMDIFlags.cs b/sources/LLVMSharp.Interop/LLVMDIFlags.cs
index 06e588e..4317a78 100644
--- a/sources/LLVMSharp.Interop/LLVMDIFlags.cs
+++ b/sources/LLVMSharp.Interop/LLVMDIFlags.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
diff --git a/sources/LLVMSharp.Interop/LLVMDLLStorageClass.cs b/sources/LLVMSharp.Interop/LLVMDLLStorageClass.cs
index a65b021..dd99ced 100644
--- a/sources/LLVMSharp.Interop/LLVMDLLStorageClass.cs
+++ b/sources/LLVMSharp.Interop/LLVMDLLStorageClass.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMDWARFEmissionKind.cs b/sources/LLVMSharp.Interop/LLVMDWARFEmissionKind.cs
index 9f9ea95..21a3268 100644
--- a/sources/LLVMSharp.Interop/LLVMDWARFEmissionKind.cs
+++ b/sources/LLVMSharp.Interop/LLVMDWARFEmissionKind.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMDWARFMacinfoRecordType.cs b/sources/LLVMSharp.Interop/LLVMDWARFMacinfoRecordType.cs
index ba00cd0..e1bb46a 100644
--- a/sources/LLVMSharp.Interop/LLVMDWARFMacinfoRecordType.cs
+++ b/sources/LLVMSharp.Interop/LLVMDWARFMacinfoRecordType.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMDWARFSourceLanguage.cs b/sources/LLVMSharp.Interop/LLVMDWARFSourceLanguage.cs
index d99d2d4..0df3032 100644
--- a/sources/LLVMSharp.Interop/LLVMDWARFSourceLanguage.cs
+++ b/sources/LLVMSharp.Interop/LLVMDWARFSourceLanguage.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMDiagnosticSeverity.cs b/sources/LLVMSharp.Interop/LLVMDiagnosticSeverity.cs
index 5d8499c..770c6c7 100644
--- a/sources/LLVMSharp.Interop/LLVMDiagnosticSeverity.cs
+++ b/sources/LLVMSharp.Interop/LLVMDiagnosticSeverity.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMInlineAsmDialect.cs b/sources/LLVMSharp.Interop/LLVMInlineAsmDialect.cs
index 12c119d..39fde4f 100644
--- a/sources/LLVMSharp.Interop/LLVMInlineAsmDialect.cs
+++ b/sources/LLVMSharp.Interop/LLVMInlineAsmDialect.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMIntPredicate.cs b/sources/LLVMSharp.Interop/LLVMIntPredicate.cs
index 9034bcd..a5586cd 100644
--- a/sources/LLVMSharp.Interop/LLVMIntPredicate.cs
+++ b/sources/LLVMSharp.Interop/LLVMIntPredicate.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMJITEvaluatedSymbol.cs b/sources/LLVMSharp.Interop/LLVMJITEvaluatedSymbol.cs
index ab8ee03..3ff32d9 100644
--- a/sources/LLVMSharp.Interop/LLVMJITEvaluatedSymbol.cs
+++ b/sources/LLVMSharp.Interop/LLVMJITEvaluatedSymbol.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMJITSymbolFlags.cs b/sources/LLVMSharp.Interop/LLVMJITSymbolFlags.cs
index e25addc..4900e06 100644
--- a/sources/LLVMSharp.Interop/LLVMJITSymbolFlags.cs
+++ b/sources/LLVMSharp.Interop/LLVMJITSymbolFlags.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMJITSymbolGenericFlags.cs b/sources/LLVMSharp.Interop/LLVMJITSymbolGenericFlags.cs
index 9225dc9..cb9d3bf 100644
--- a/sources/LLVMSharp.Interop/LLVMJITSymbolGenericFlags.cs
+++ b/sources/LLVMSharp.Interop/LLVMJITSymbolGenericFlags.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
@@ -11,6 +11,7 @@ namespace LLVMSharp.Interop;
[Flags]
public enum LLVMJITSymbolGenericFlags : uint
{
+ LLVMJITSymbolGenericFlagsNone = 0,
LLVMJITSymbolGenericFlagsExported = 1U << 0,
LLVMJITSymbolGenericFlagsWeak = 1U << 1,
LLVMJITSymbolGenericFlagsCallable = 1U << 2,
diff --git a/sources/LLVMSharp.Interop/LLVMLandingPadClauseTy.cs b/sources/LLVMSharp.Interop/LLVMLandingPadClauseTy.cs
index 7210e61..41e5b25 100644
--- a/sources/LLVMSharp.Interop/LLVMLandingPadClauseTy.cs
+++ b/sources/LLVMSharp.Interop/LLVMLandingPadClauseTy.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMLinkage.cs b/sources/LLVMSharp.Interop/LLVMLinkage.cs
index 70e606d..830432b 100644
--- a/sources/LLVMSharp.Interop/LLVMLinkage.cs
+++ b/sources/LLVMSharp.Interop/LLVMLinkage.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMLinkerMode.cs b/sources/LLVMSharp.Interop/LLVMLinkerMode.cs
index 2402a8d..31c678b 100644
--- a/sources/LLVMSharp.Interop/LLVMLinkerMode.cs
+++ b/sources/LLVMSharp.Interop/LLVMLinkerMode.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMMCJITCompilerOptions.cs b/sources/LLVMSharp.Interop/LLVMMCJITCompilerOptions.cs
index b8fabe7..34a2e00 100644
--- a/sources/LLVMSharp.Interop/LLVMMCJITCompilerOptions.cs
+++ b/sources/LLVMSharp.Interop/LLVMMCJITCompilerOptions.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMMetadataKind.cs b/sources/LLVMSharp.Interop/LLVMMetadataKind.cs
deleted file mode 100644
index 74bc2de..0000000
--- a/sources/LLVMSharp.Interop/LLVMMetadataKind.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
-// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
-
-namespace LLVMSharp.Interop;
-
-public enum LLVMMetadataKind
-{
- LLVMMDStringMetadataKind,
- LLVMConstantAsMetadataMetadataKind,
- LLVMLocalAsMetadataMetadataKind,
- LLVMDistinctMDOperandPlaceholderMetadataKind,
- LLVMMDTupleMetadataKind,
- LLVMDILocationMetadataKind,
- LLVMDIExpressionMetadataKind,
- LLVMDIGlobalVariableExpressionMetadataKind,
- LLVMGenericDINodeMetadataKind,
- LLVMDISubrangeMetadataKind,
- LLVMDIEnumeratorMetadataKind,
- LLVMDIBasicTypeMetadataKind,
- LLVMDIDerivedTypeMetadataKind,
- LLVMDICompositeTypeMetadataKind,
- LLVMDISubroutineTypeMetadataKind,
- LLVMDIFileMetadataKind,
- LLVMDICompileUnitMetadataKind,
- LLVMDISubprogramMetadataKind,
- LLVMDILexicalBlockMetadataKind,
- LLVMDILexicalBlockFileMetadataKind,
- LLVMDINamespaceMetadataKind,
- LLVMDIModuleMetadataKind,
- LLVMDITemplateTypeParameterMetadataKind,
- LLVMDITemplateValueParameterMetadataKind,
- LLVMDIGlobalVariableMetadataKind,
- LLVMDILocalVariableMetadataKind,
- LLVMDILabelMetadataKind,
- LLVMDIObjCPropertyMetadataKind,
- LLVMDIImportedEntityMetadataKind,
- LLVMDIMacroMetadataKind,
- LLVMDIMacroFileMetadataKind,
- LLVMDICommonBlockMetadataKind,
- LLVMDIStringTypeMetadataKind,
- LLVMDIGenericSubrangeMetadataKind,
- LLVMDIArgListMetadataKind,
-}
diff --git a/sources/LLVMSharp.Interop/LLVMModuleFlagBehavior.cs b/sources/LLVMSharp.Interop/LLVMModuleFlagBehavior.cs
index 50a61fb..5eeb55d 100644
--- a/sources/LLVMSharp.Interop/LLVMModuleFlagBehavior.cs
+++ b/sources/LLVMSharp.Interop/LLVMModuleFlagBehavior.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpInfo1.cs b/sources/LLVMSharp.Interop/LLVMOpInfo1.cs
index e1b1f57..5f6dcd0 100644
--- a/sources/LLVMSharp.Interop/LLVMOpInfo1.cs
+++ b/sources/LLVMSharp.Interop/LLVMOpInfo1.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpInfoSymbol1.cs b/sources/LLVMSharp.Interop/LLVMOpInfoSymbol1.cs
index a729cd0..20d43fd 100644
--- a/sources/LLVMSharp.Interop/LLVMOpInfoSymbol1.cs
+++ b/sources/LLVMSharp.Interop/LLVMOpInfoSymbol1.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpcode.cs b/sources/LLVMSharp.Interop/LLVMOpcode.cs
index 92aaae0..f2ab41a 100644
--- a/sources/LLVMSharp.Interop/LLVMOpcode.cs
+++ b/sources/LLVMSharp.Interop/LLVMOpcode.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCDependenceMapPair.cs b/sources/LLVMSharp.Interop/LLVMOrcCDependenceMapPair.cs
index 2a5bcd7..82c3444 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcCDependenceMapPair.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcCDependenceMapPair.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCJITDylibSearchOrderElement.cs b/sources/LLVMSharp.Interop/LLVMOrcCJITDylibSearchOrderElement.cs
new file mode 100644
index 0000000..222be2b
--- /dev/null
+++ b/sources/LLVMSharp.Interop/LLVMOrcCJITDylibSearchOrderElement.cs
@@ -0,0 +1,14 @@
+// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
+
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
+// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
+
+namespace LLVMSharp.Interop;
+
+public unsafe partial struct LLVMOrcCJITDylibSearchOrderElement
+{
+ [NativeTypeName("LLVMOrcJITDylibRef")]
+ public LLVMOrcOpaqueJITDylib* JD;
+
+ public LLVMOrcJITDylibLookupFlags JDLookupFlags;
+}
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCLookupSetElement.cs b/sources/LLVMSharp.Interop/LLVMOrcCLookupSetElement.cs
index 0d845c0..9cd7107 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcCLookupSetElement.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcCLookupSetElement.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapEntry.cs b/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapEntry.cs
index e76d179..d74e9ca 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapEntry.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapEntry.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapPair.cs b/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapPair.cs
index 095a20b..91d30a5 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapPair.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcCSymbolAliasMapPair.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCSymbolFlagsMapPair.cs b/sources/LLVMSharp.Interop/LLVMOrcCSymbolFlagsMapPair.cs
index 5872677..ff1ddc0 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcCSymbolFlagsMapPair.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcCSymbolFlagsMapPair.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCSymbolMapPair.cs b/sources/LLVMSharp.Interop/LLVMOrcCSymbolMapPair.cs
new file mode 100644
index 0000000..ab107b9
--- /dev/null
+++ b/sources/LLVMSharp.Interop/LLVMOrcCSymbolMapPair.cs
@@ -0,0 +1,14 @@
+// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
+
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
+// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
+
+namespace LLVMSharp.Interop;
+
+public unsafe partial struct LLVMOrcCSymbolMapPair
+{
+ [NativeTypeName("LLVMOrcSymbolStringPoolEntryRef")]
+ public LLVMOrcOpaqueSymbolStringPoolEntry* Name;
+
+ public LLVMJITEvaluatedSymbol Sym;
+}
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCSymbolsList.cs b/sources/LLVMSharp.Interop/LLVMOrcCSymbolsList.cs
index ba26fdb..7ff7198 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcCSymbolsList.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcCSymbolsList.cs
@@ -1,10 +1,8 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
-using System;
-
namespace LLVMSharp.Interop;
public unsafe partial struct LLVMOrcCSymbolsList
@@ -13,5 +11,5 @@ public unsafe partial struct LLVMOrcCSymbolsList
public LLVMOrcOpaqueSymbolStringPoolEntry** Symbols;
[NativeTypeName("size_t")]
- public UIntPtr Length;
+ public nuint Length;
}
diff --git a/sources/LLVMSharp.Interop/LLVMOrcJITDylibLookupFlags.cs b/sources/LLVMSharp.Interop/LLVMOrcJITDylibLookupFlags.cs
index 9035b91..637fee1 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcJITDylibLookupFlags.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcJITDylibLookupFlags.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcLookupKind.cs b/sources/LLVMSharp.Interop/LLVMOrcLookupKind.cs
index 045b771..d291292 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcLookupKind.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcLookupKind.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcSymbolLookupFlags.cs b/sources/LLVMSharp.Interop/LLVMOrcSymbolLookupFlags.cs
index 945baae..61aeb9f 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcSymbolLookupFlags.cs
+++ b/sources/LLVMSharp.Interop/LLVMOrcSymbolLookupFlags.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
diff --git a/sources/LLVMSharp.Interop/LLVMRealPredicate.cs b/sources/LLVMSharp.Interop/LLVMRealPredicate.cs
index 30d950d..72f1af8 100644
--- a/sources/LLVMSharp.Interop/LLVMRealPredicate.cs
+++ b/sources/LLVMSharp.Interop/LLVMRealPredicate.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMRelocMode.cs b/sources/LLVMSharp.Interop/LLVMRelocMode.cs
index ce92fd6..050e149 100644
--- a/sources/LLVMSharp.Interop/LLVMRelocMode.cs
+++ b/sources/LLVMSharp.Interop/LLVMRelocMode.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMRemarkType.cs b/sources/LLVMSharp.Interop/LLVMRemarkType.cs
index bd7a5ba..a764fe4 100644
--- a/sources/LLVMSharp.Interop/LLVMRemarkType.cs
+++ b/sources/LLVMSharp.Interop/LLVMRemarkType.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMSharp.Interop.csproj b/sources/LLVMSharp.Interop/LLVMSharp.Interop.csproj
index 087563c..aeead67 100644
--- a/sources/LLVMSharp.Interop/LLVMSharp.Interop.csproj
+++ b/sources/LLVMSharp.Interop/LLVMSharp.Interop.csproj
@@ -2,7 +2,7 @@
- net6.0;netstandard2.0
+ net6.0;net7.0;netstandard2.0
diff --git a/sources/LLVMSharp.Interop/LLVMThreadLocalMode.cs b/sources/LLVMSharp.Interop/LLVMThreadLocalMode.cs
index 86cb0c1..f438111 100644
--- a/sources/LLVMSharp.Interop/LLVMThreadLocalMode.cs
+++ b/sources/LLVMSharp.Interop/LLVMThreadLocalMode.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMTypeKind.cs b/sources/LLVMSharp.Interop/LLVMTypeKind.cs
index 49a0e93..d02541e 100644
--- a/sources/LLVMSharp.Interop/LLVMTypeKind.cs
+++ b/sources/LLVMSharp.Interop/LLVMTypeKind.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMUnnamedAddr.cs b/sources/LLVMSharp.Interop/LLVMUnnamedAddr.cs
index 66f93e9..b08fcb6 100644
--- a/sources/LLVMSharp.Interop/LLVMUnnamedAddr.cs
+++ b/sources/LLVMSharp.Interop/LLVMUnnamedAddr.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMValueKind.cs b/sources/LLVMSharp.Interop/LLVMValueKind.cs
index 7a6e165..9d22fee 100644
--- a/sources/LLVMSharp.Interop/LLVMValueKind.cs
+++ b/sources/LLVMSharp.Interop/LLVMValueKind.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMVerifierFailureAction.cs b/sources/LLVMSharp.Interop/LLVMVerifierFailureAction.cs
index 855e8bc..6fd81a4 100644
--- a/sources/LLVMSharp.Interop/LLVMVerifierFailureAction.cs
+++ b/sources/LLVMSharp.Interop/LLVMVerifierFailureAction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMVisibility.cs b/sources/LLVMSharp.Interop/LLVMVisibility.cs
index d62d1f8..7ef7324 100644
--- a/sources/LLVMSharp.Interop/LLVMVisibility.cs
+++ b/sources/LLVMSharp.Interop/LLVMVisibility.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LTOObjectBuffer.cs b/sources/LLVMSharp.Interop/LTOObjectBuffer.cs
index b14754c..5a5edf2 100644
--- a/sources/LLVMSharp.Interop/LTOObjectBuffer.cs
+++ b/sources/LLVMSharp.Interop/LTOObjectBuffer.cs
@@ -1,10 +1,8 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
-using System;
-
namespace LLVMSharp.Interop;
public unsafe partial struct LTOObjectBuffer
@@ -13,5 +11,5 @@ public unsafe partial struct LTOObjectBuffer
public sbyte* Buffer;
[NativeTypeName("size_t")]
- public UIntPtr Size;
+ public nuint Size;
}
diff --git a/sources/LLVMSharp.Interop/LLVMAttributeIndex.cs b/sources/LLVMSharp.Interop/Manual/LLVMAttributeIndex.cs
similarity index 95%
rename from sources/LLVMSharp.Interop/LLVMAttributeIndex.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMAttributeIndex.cs
index 4b0c8fa..f15d6ce 100644
--- a/sources/LLVMSharp.Interop/LLVMAttributeIndex.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMAttributeIndex.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMComdat.cs b/sources/LLVMSharp.Interop/Manual/LLVMComdat.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMComdat.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMComdat.cs
index 64fc846..39459e9 100644
--- a/sources/LLVMSharp.Interop/LLVMComdat.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMComdat.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMDiagnosticHandler.cs b/sources/LLVMSharp.Interop/Manual/LLVMDiagnosticHandler.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMDiagnosticHandler.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMDiagnosticHandler.cs
index 796746a..a2e105d 100644
--- a/sources/LLVMSharp.Interop/LLVMDiagnosticHandler.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMDiagnosticHandler.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMFatalErrorHandler.cs b/sources/LLVMSharp.Interop/Manual/LLVMFatalErrorHandler.cs
similarity index 95%
rename from sources/LLVMSharp.Interop/LLVMFatalErrorHandler.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMFatalErrorHandler.cs
index 94462eb..10bd504 100644
--- a/sources/LLVMSharp.Interop/LLVMFatalErrorHandler.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMFatalErrorHandler.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMJITCSymbolMapPair.cs b/sources/LLVMSharp.Interop/Manual/LLVMJITCSymbolMapPair.cs
similarity index 95%
rename from sources/LLVMSharp.Interop/LLVMJITCSymbolMapPair.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMJITCSymbolMapPair.cs
index a3d5e40..95f24e6 100644
--- a/sources/LLVMSharp.Interop/LLVMJITCSymbolMapPair.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMJITCSymbolMapPair.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMMemoryManagerAllocateCodeSectionCallback.cs b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerAllocateCodeSectionCallback.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMMemoryManagerAllocateCodeSectionCallback.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerAllocateCodeSectionCallback.cs
index 309fc88..e507a69 100644
--- a/sources/LLVMSharp.Interop/LLVMMemoryManagerAllocateCodeSectionCallback.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerAllocateCodeSectionCallback.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
diff --git a/sources/LLVMSharp.Interop/LLVMMemoryManagerAllocateDataSectionCallback.cs b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerAllocateDataSectionCallback.cs
similarity index 97%
rename from sources/LLVMSharp.Interop/LLVMMemoryManagerAllocateDataSectionCallback.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerAllocateDataSectionCallback.cs
index 6eb19a7..c9ea438 100644
--- a/sources/LLVMSharp.Interop/LLVMMemoryManagerAllocateDataSectionCallback.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerAllocateDataSectionCallback.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
diff --git a/sources/LLVMSharp.Interop/LLVMMemoryManagerDestroyCallback.cs b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerDestroyCallback.cs
similarity index 95%
rename from sources/LLVMSharp.Interop/LLVMMemoryManagerDestroyCallback.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerDestroyCallback.cs
index cddce1a..a592c2a 100644
--- a/sources/LLVMSharp.Interop/LLVMMemoryManagerDestroyCallback.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerDestroyCallback.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMMemoryManagerFinalizeMemoryCallback.cs b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerFinalizeMemoryCallback.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMMemoryManagerFinalizeMemoryCallback.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerFinalizeMemoryCallback.cs
index c50c4a7..d02aa98 100644
--- a/sources/LLVMSharp.Interop/LLVMMemoryManagerFinalizeMemoryCallback.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMMemoryManagerFinalizeMemoryCallback.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/Manual/LLVMMetadataKind.cs b/sources/LLVMSharp.Interop/Manual/LLVMMetadataKind.cs
new file mode 100644
index 0000000..228dff6
--- /dev/null
+++ b/sources/LLVMSharp.Interop/Manual/LLVMMetadataKind.cs
@@ -0,0 +1,45 @@
+// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
+
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
+// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
+
+namespace LLVMSharp.Interop;
+
+public enum LLVMMetadataKind
+{
+ LLVMMDStringMetadataKind = 0,
+ LLVMConstantAsMetadataMetadataKind = 1,
+ LLVMLocalAsMetadataMetadataKind = 2,
+ LLVMDistinctMDOperandPlaceholderMetadataKind = 3,
+ LLVMMDTupleMetadataKind = 4,
+ LLVMDILocationMetadataKind = 5,
+ LLVMDIExpressionMetadataKind = 6,
+ LLVMDIGlobalVariableExpressionMetadataKind = 7,
+ LLVMGenericDINodeMetadataKind = 8,
+ LLVMDISubrangeMetadataKind = 9,
+ LLVMDIEnumeratorMetadataKind = 10,
+ LLVMDIBasicTypeMetadataKind = 11,
+ LLVMDIDerivedTypeMetadataKind = 12,
+ LLVMDICompositeTypeMetadataKind = 13,
+ LLVMDISubroutineTypeMetadataKind = 14,
+ LLVMDIFileMetadataKind = 15,
+ LLVMDICompileUnitMetadataKind = 16,
+ LLVMDISubprogramMetadataKind = 17,
+ LLVMDILexicalBlockMetadataKind = 18,
+ LLVMDILexicalBlockFileMetadataKind = 19,
+ LLVMDINamespaceMetadataKind = 20,
+ LLVMDIModuleMetadataKind = 21,
+ LLVMDITemplateTypeParameterMetadataKind = 22,
+ LLVMDITemplateValueParameterMetadataKind = 23,
+ LLVMDIGlobalVariableMetadataKind = 24,
+ LLVMDILocalVariableMetadataKind = 25,
+ LLVMDILabelMetadataKind = 26,
+ LLVMDIObjCPropertyMetadataKind = 27,
+ LLVMDIImportedEntityMetadataKind = 28,
+ LLVMDIMacroMetadataKind = 29,
+ LLVMDIMacroFileMetadataKind = 30,
+ LLVMDICommonBlockMetadataKind = 31,
+ LLVMDIStringTypeMetadataKind = 32,
+ LLVMDIGenericSubrangeMetadataKind = 33,
+ LLVMDIArgListMetadataKind = 34,
+}
diff --git a/sources/LLVMSharp.Interop/LLVMOpInfoCallback.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpInfoCallback.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOpInfoCallback.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpInfoCallback.cs
index 31c885c..9aa5a3c 100644
--- a/sources/LLVMSharp.Interop/LLVMOpInfoCallback.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpInfoCallback.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueAttributeRef.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueAttributeRef.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueAttributeRef.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueAttributeRef.cs
index 22d9173..38649a5 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueAttributeRef.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueAttributeRef.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueBasicBlock.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueBasicBlock.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueBasicBlock.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueBasicBlock.cs
index a3c8642..02c55d2 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueBasicBlock.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueBasicBlock.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueBinary.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueBinary.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueBinary.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueBinary.cs
index 4ed8e4f..5af8b6f 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueBinary.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueBinary.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueBuilder.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueBuilder.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueBuilder.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueBuilder.cs
index df471c8..1a75285 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueBuilder.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueBuilder.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueContext.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueContext.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueContext.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueContext.cs
index 962556e..bd37fd7 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueContext.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueContext.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueDIBuilder.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueDIBuilder.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueDIBuilder.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueDIBuilder.cs
index 5f3b66a..80891f3 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueDIBuilder.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueDIBuilder.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueDiagnosticInfo.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueDiagnosticInfo.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueDiagnosticInfo.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueDiagnosticInfo.cs
index 8c9f7f3..d3a3dfc 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueDiagnosticInfo.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueDiagnosticInfo.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueError.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueError.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueError.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueError.cs
index e3c1b91..b78e57f 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueError.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueError.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueExecutionEngine.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueExecutionEngine.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueExecutionEngine.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueExecutionEngine.cs
index 507ca99..06e027b 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueExecutionEngine.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueExecutionEngine.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueGenericValue.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueGenericValue.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueGenericValue.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueGenericValue.cs
index 2cf6f20..638032b 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueGenericValue.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueGenericValue.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueJITEventListener.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueJITEventListener.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueJITEventListener.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueJITEventListener.cs
index d2f4b82..02868e4 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueJITEventListener.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueJITEventListener.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueLTOCodeGenerator.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOCodeGenerator.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueLTOCodeGenerator.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOCodeGenerator.cs
index 65b26a3..2921bb5 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueLTOCodeGenerator.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOCodeGenerator.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueLTOInput.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOInput.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueLTOInput.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOInput.cs
index e2cd97f..2c4e919 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueLTOInput.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOInput.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueLTOModule.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOModule.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueLTOModule.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOModule.cs
index dbe62ea..d9f0de6 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueLTOModule.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueLTOModule.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueMCJITMemoryManager.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueMCJITMemoryManager.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueMCJITMemoryManager.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueMCJITMemoryManager.cs
index 67b05a5..b0132fe 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueMCJITMemoryManager.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueMCJITMemoryManager.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueMemoryBuffer.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueMemoryBuffer.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueMemoryBuffer.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueMemoryBuffer.cs
index 259b534..8a826a7 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueMemoryBuffer.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueMemoryBuffer.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueMetadata.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueMetadata.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueMetadata.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueMetadata.cs
index c6b510c..0185596 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueMetadata.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueMetadata.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueModule.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueModule.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueModule.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueModule.cs
index ab7c59e..440b34d 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueModule.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueModule.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueModuleFlagEntry.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueModuleFlagEntry.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueModuleFlagEntry.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueModuleFlagEntry.cs
index 0e88878..408f0bf 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueModuleFlagEntry.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueModuleFlagEntry.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueModuleProvider.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueModuleProvider.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueModuleProvider.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueModuleProvider.cs
index 9fdc35a..ccbfec6 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueModuleProvider.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueModuleProvider.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueNamedMDNode.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueNamedMDNode.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueNamedMDNode.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueNamedMDNode.cs
index ccc0396..5b9d464 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueNamedMDNode.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueNamedMDNode.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueObjectFile.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueObjectFile.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueObjectFile.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueObjectFile.cs
index 03ef702..1941223 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueObjectFile.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueObjectFile.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaquePassBuilderOptions.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassBuilderOptions.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaquePassBuilderOptions.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaquePassBuilderOptions.cs
index df5c902..cb9dacd 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaquePassBuilderOptions.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassBuilderOptions.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaquePassManager.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassManager.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaquePassManager.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaquePassManager.cs
index df977e2..e650ea0 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaquePassManager.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassManager.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaquePassManagerBuilder.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassManagerBuilder.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaquePassManagerBuilder.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaquePassManagerBuilder.cs
index ab5c1d5..836e965 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaquePassManagerBuilder.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassManagerBuilder.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaquePassRegistry.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassRegistry.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaquePassRegistry.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaquePassRegistry.cs
index 18c757b..6ddbe84 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaquePassRegistry.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaquePassRegistry.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueRelocationIterator.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueRelocationIterator.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueRelocationIterator.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueRelocationIterator.cs
index f5fd22e..0c3dc41 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueRelocationIterator.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueRelocationIterator.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueSectionIterator.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueSectionIterator.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueSectionIterator.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueSectionIterator.cs
index e6a1af3..4b06c7d 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueSectionIterator.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueSectionIterator.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueSymbolIterator.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueSymbolIterator.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueSymbolIterator.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueSymbolIterator.cs
index 55ed0e8..3f548d3 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueSymbolIterator.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueSymbolIterator.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueTargetData.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetData.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueTargetData.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetData.cs
index b4dc48e..35c3138 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueTargetData.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetData.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueTargetLibraryInfotData.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetLibraryInfotData.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueTargetLibraryInfotData.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetLibraryInfotData.cs
index 17177fc..8dc6bb7 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueTargetLibraryInfotData.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetLibraryInfotData.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueTargetMachine.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetMachine.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueTargetMachine.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetMachine.cs
index 4b69569..50959be 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueTargetMachine.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueTargetMachine.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueThinLTOCodeGenerator.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueThinLTOCodeGenerator.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueThinLTOCodeGenerator.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueThinLTOCodeGenerator.cs
index 34d3981..2d13229 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueThinLTOCodeGenerator.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueThinLTOCodeGenerator.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueType.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueType.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueType.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueType.cs
index 112af4c..f3b07e3 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueType.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueType.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueUse.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueUse.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueUse.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueUse.cs
index cb4c89d..f3cf531 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueUse.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueUse.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueValue.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueValue.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueValue.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueValue.cs
index 7fe65c0..0a28b4c 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueValue.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueValue.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOpaqueValueMetadataEntry.cs b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueValueMetadataEntry.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOpaqueValueMetadataEntry.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOpaqueValueMetadataEntry.cs
index 5218902..790e7e2 100644
--- a/sources/LLVMSharp.Interop/LLVMOpaqueValueMetadataEntry.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOpaqueValueMetadataEntry.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction.cs
similarity index 97%
rename from sources/LLVMSharp.Interop/LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction.cs
index aa135dd..d3c0235 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcErrorReporterFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcErrorReporterFunction.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcErrorReporterFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcErrorReporterFunction.cs
index f0d6432..6bb3074 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcErrorReporterFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcErrorReporterFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcGenericIRModuleOperationFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcGenericIRModuleOperationFunction.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcGenericIRModuleOperationFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcGenericIRModuleOperationFunction.cs
index 4637038..1b9e171 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcGenericIRModuleOperationFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcGenericIRModuleOperationFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcIRTransformLayerTransformFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcIRTransformLayerTransformFunction.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcIRTransformLayerTransformFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcIRTransformLayerTransformFunction.cs
index 9f6c75a..0fd4e04 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcIRTransformLayerTransformFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcIRTransformLayerTransformFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction.cs
index 87fdd24..46ce535 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitDestroyFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitDestroyFunction.cs
similarity index 95%
rename from sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitDestroyFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitDestroyFunction.cs
index bdbe5be..d8fde9d 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitDestroyFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitDestroyFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitDiscardFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitDiscardFunction.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitDiscardFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitDiscardFunction.cs
index cd82c92..e13170d 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitDiscardFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitDiscardFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitMaterializeFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitMaterializeFunction.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitMaterializeFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitMaterializeFunction.cs
index 96147de..76ee707 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcMaterializationUnitMaterializeFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcMaterializationUnitMaterializeFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcObjectTransformLayerTransformFunction.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcObjectTransformLayerTransformFunction.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcObjectTransformLayerTransformFunction.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcObjectTransformLayerTransformFunction.cs
index 21431ac..2e008b2 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcObjectTransformLayerTransformFunction.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcObjectTransformLayerTransformFunction.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueDefinitionGenerator.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueDefinitionGenerator.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueDefinitionGenerator.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueDefinitionGenerator.cs
index 3352ea2..38d2c77 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueDefinitionGenerator.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueDefinitionGenerator.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueDumpObjects.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueDumpObjects.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueDumpObjects.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueDumpObjects.cs
index 9ee2d32..65bbed1 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueDumpObjects.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueDumpObjects.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueExecutionSession.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueExecutionSession.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueExecutionSession.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueExecutionSession.cs
index 17b4ede..029dd43 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueExecutionSession.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueExecutionSession.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueIRTransformLayer.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueIRTransformLayer.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueIRTransformLayer.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueIRTransformLayer.cs
index 599b72d..dc0a474 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueIRTransformLayer.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueIRTransformLayer.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueIndirectStubsManager.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueIndirectStubsManager.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueIndirectStubsManager.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueIndirectStubsManager.cs
index d2d4e1d..45c736e 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueIndirectStubsManager.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueIndirectStubsManager.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueJITDylib.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueJITDylib.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueJITDylib.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueJITDylib.cs
index 99fe90e..b7aa94a 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueJITDylib.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueJITDylib.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueJITTargetMachineBuilder.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueJITTargetMachineBuilder.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueJITTargetMachineBuilder.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueJITTargetMachineBuilder.cs
index 7e8a1b2..62bfac0 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueJITTargetMachineBuilder.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueJITTargetMachineBuilder.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLLJIT.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLLJIT.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueLLJIT.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLLJIT.cs
index 6177680..e28a8b4 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLLJIT.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLLJIT.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLLJITBuilder.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLLJITBuilder.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueLLJITBuilder.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLLJITBuilder.cs
index 415a77a..62678f2 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLLJITBuilder.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLLJITBuilder.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLazyCallThroughManager.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLazyCallThroughManager.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueLazyCallThroughManager.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLazyCallThroughManager.cs
index 43d2326..ed42bf5 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLazyCallThroughManager.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLazyCallThroughManager.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLookupState.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLookupState.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueLookupState.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLookupState.cs
index d59e756..7a4c5a9 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueLookupState.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueLookupState.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueMaterializationResponsibility.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueMaterializationResponsibility.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueMaterializationResponsibility.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueMaterializationResponsibility.cs
index 45703a7..bfd1771 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueMaterializationResponsibility.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueMaterializationResponsibility.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueMaterializationUnit.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueMaterializationUnit.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueMaterializationUnit.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueMaterializationUnit.cs
index d9a4b90..cf19597 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueMaterializationUnit.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueMaterializationUnit.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectLayer.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectLayer.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectLayer.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectLayer.cs
index 147239f..c066475 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectLayer.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectLayer.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectLinkingLayer.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectLinkingLayer.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectLinkingLayer.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectLinkingLayer.cs
index f537ba4..09fd4e2 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectLinkingLayer.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectLinkingLayer.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectTransformLayer.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectTransformLayer.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectTransformLayer.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectTransformLayer.cs
index 4e06b4f..5610173 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueObjectTransformLayer.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueObjectTransformLayer.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueResourceTracker.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueResourceTracker.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueResourceTracker.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueResourceTracker.cs
index c05d307..7d8b30d 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueResourceTracker.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueResourceTracker.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueSymbolStringPool.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueSymbolStringPool.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueSymbolStringPool.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueSymbolStringPool.cs
index 294c835..139e84a 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueSymbolStringPool.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueSymbolStringPool.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueSymbolStringPoolEntry.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueSymbolStringPoolEntry.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueSymbolStringPoolEntry.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueSymbolStringPoolEntry.cs
index c70c02a..5f958d9 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueSymbolStringPoolEntry.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueSymbolStringPoolEntry.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueThreadSafeContext.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueThreadSafeContext.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueThreadSafeContext.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueThreadSafeContext.cs
index ab991bb..4e24f40 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueThreadSafeContext.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueThreadSafeContext.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcOpaqueThreadSafeModule.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueThreadSafeModule.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMOrcOpaqueThreadSafeModule.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueThreadSafeModule.cs
index 21cfa48..ab258cc 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcOpaqueThreadSafeModule.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcOpaqueThreadSafeModule.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMOrcSymbolPredicate.cs b/sources/LLVMSharp.Interop/Manual/LLVMOrcSymbolPredicate.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMOrcSymbolPredicate.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMOrcSymbolPredicate.cs
index 10132d8..f80cc04 100644
--- a/sources/LLVMSharp.Interop/LLVMOrcSymbolPredicate.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMOrcSymbolPredicate.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueArg.cs b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueArg.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMRemarkOpaqueArg.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueArg.cs
index 70f5a73..fc2f87b 100644
--- a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueArg.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueArg.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueDebugLoc.cs b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueDebugLoc.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMRemarkOpaqueDebugLoc.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueDebugLoc.cs
index 4a6513a..4bee92e 100644
--- a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueDebugLoc.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueDebugLoc.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueEntry.cs b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueEntry.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMRemarkOpaqueEntry.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueEntry.cs
index 00e2e1b..d815db3 100644
--- a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueEntry.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueEntry.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueParser.cs b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueParser.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMRemarkOpaqueParser.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueParser.cs
index e61b0d8..926e43b 100644
--- a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueParser.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueParser.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueString.cs b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueString.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMRemarkOpaqueString.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueString.cs
index b020350..32291c7 100644
--- a/sources/LLVMSharp.Interop/LLVMRemarkOpaqueString.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMRemarkOpaqueString.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMSymbolLookupCallback.cs b/sources/LLVMSharp.Interop/Manual/LLVMSymbolLookupCallback.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMSymbolLookupCallback.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMSymbolLookupCallback.cs
index 23a6a9d..f15268d 100644
--- a/sources/LLVMSharp.Interop/LLVMSymbolLookupCallback.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMSymbolLookupCallback.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/LLVMTarget.cs b/sources/LLVMSharp.Interop/Manual/LLVMTarget.cs
similarity index 94%
rename from sources/LLVMSharp.Interop/LLVMTarget.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMTarget.cs
index d58e177..7adb69b 100644
--- a/sources/LLVMSharp.Interop/LLVMTarget.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMTarget.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/LLVMYieldCallback.cs b/sources/LLVMSharp.Interop/Manual/LLVMYieldCallback.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/LLVMYieldCallback.cs
rename to sources/LLVMSharp.Interop/Manual/LLVMYieldCallback.cs
index 0e37e8c..f619d1a 100644
--- a/sources/LLVMSharp.Interop/LLVMYieldCallback.cs
+++ b/sources/LLVMSharp.Interop/Manual/LLVMYieldCallback.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/lto_diagnostic_handler_t.cs b/sources/LLVMSharp.Interop/Manual/lto_diagnostic_handler_t.cs
similarity index 96%
rename from sources/LLVMSharp.Interop/lto_diagnostic_handler_t.cs
rename to sources/LLVMSharp.Interop/Manual/lto_diagnostic_handler_t.cs
index 2d8fd49..58cebd8 100644
--- a/sources/LLVMSharp.Interop/lto_diagnostic_handler_t.cs
+++ b/sources/LLVMSharp.Interop/Manual/lto_diagnostic_handler_t.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
using System.Runtime.InteropServices;
diff --git a/sources/LLVMSharp.Interop/llvm_blake3_chunk_state.cs b/sources/LLVMSharp.Interop/llvm_blake3_chunk_state.cs
new file mode 100644
index 0000000..2bff357
--- /dev/null
+++ b/sources/LLVMSharp.Interop/llvm_blake3_chunk_state.cs
@@ -0,0 +1,27 @@
+// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
+
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
+// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
+
+namespace LLVMSharp.Interop;
+
+public unsafe partial struct llvm_blake3_chunk_state
+{
+ [NativeTypeName("uint32_t[8]")]
+ public fixed uint cv[8];
+
+ [NativeTypeName("uint64_t")]
+ public ulong chunk_counter;
+
+ [NativeTypeName("uint8_t[64]")]
+ public fixed byte buf[64];
+
+ [NativeTypeName("uint8_t")]
+ public byte buf_len;
+
+ [NativeTypeName("uint8_t")]
+ public byte blocks_compressed;
+
+ [NativeTypeName("uint8_t")]
+ public byte flags;
+}
diff --git a/sources/LLVMSharp.Interop/llvm_blake3_hasher.cs b/sources/LLVMSharp.Interop/llvm_blake3_hasher.cs
new file mode 100644
index 0000000..275c7c5
--- /dev/null
+++ b/sources/LLVMSharp.Interop/llvm_blake3_hasher.cs
@@ -0,0 +1,20 @@
+// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
+
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
+// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
+
+namespace LLVMSharp.Interop;
+
+public unsafe partial struct llvm_blake3_hasher
+{
+ [NativeTypeName("uint32_t[8]")]
+ public fixed uint key[8];
+
+ public llvm_blake3_chunk_state chunk;
+
+ [NativeTypeName("uint8_t")]
+ public byte cv_stack_len;
+
+ [NativeTypeName("uint8_t[1760]")]
+ public fixed byte cv_stack[1760];
+}
diff --git a/sources/LLVMSharp.Interop/lto_codegen_diagnostic_severity_t.cs b/sources/LLVMSharp.Interop/lto_codegen_diagnostic_severity_t.cs
index fd3ac7b..6d90b5f 100644
--- a/sources/LLVMSharp.Interop/lto_codegen_diagnostic_severity_t.cs
+++ b/sources/LLVMSharp.Interop/lto_codegen_diagnostic_severity_t.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/lto_codegen_model.cs b/sources/LLVMSharp.Interop/lto_codegen_model.cs
index 0fa6816..2c82465 100644
--- a/sources/LLVMSharp.Interop/lto_codegen_model.cs
+++ b/sources/LLVMSharp.Interop/lto_codegen_model.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/lto_debug_model.cs b/sources/LLVMSharp.Interop/lto_debug_model.cs
index f2839c5..873b794 100644
--- a/sources/LLVMSharp.Interop/lto_debug_model.cs
+++ b/sources/LLVMSharp.Interop/lto_debug_model.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp.Interop/lto_symbol_attributes.cs b/sources/LLVMSharp.Interop/lto_symbol_attributes.cs
index 4a5da29..2ff0463 100644
--- a/sources/LLVMSharp.Interop/lto_symbol_attributes.cs
+++ b/sources/LLVMSharp.Interop/lto_symbol_attributes.cs
@@ -1,6 +1,6 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
-// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-14.0.0/llvm/include/llvm-c
+// Ported from https://github.com/llvm/llvm-project/tree/llvmorg-15.0.0/llvm/include/llvm-c
// Original source is Copyright (c) the LLVM Project and Contributors. Licensed under the Apache License v2.0 with LLVM Exceptions. See NOTICE.txt in the project root for license information.
namespace LLVMSharp.Interop;
diff --git a/sources/LLVMSharp/Attribute.cs b/sources/LLVMSharp/Attribute.cs
index 8190f3d..74f029b 100644
--- a/sources/LLVMSharp/Attribute.cs
+++ b/sources/LLVMSharp/Attribute.cs
@@ -9,13 +9,13 @@ public sealed class Attribute : IEquatable
{
public LLVMAttributeRef Handle { get; }
- public static bool operator ==(Attribute left, Attribute right) => ReferenceEquals(left, right) || (left?.Handle == right?.Handle);
+ public static bool operator ==(Attribute? left, Attribute? right) => ReferenceEquals(left, right) || (left?.Handle == right?.Handle);
- public static bool operator !=(Attribute left, Attribute right) => !(left == right);
+ public static bool operator !=(Attribute? left, Attribute? right) => !(left == right);
- public override bool Equals(object obj) => (obj is Attribute other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is Attribute other) && Equals(other);
- public bool Equals(Attribute other) => this == other;
+ public bool Equals(Attribute? other) => this == other;
public override int GetHashCode() => Handle.GetHashCode();
diff --git a/sources/LLVMSharp/DataLayout.cs b/sources/LLVMSharp/DataLayout.cs
index 8886d6f..5e42ed7 100644
--- a/sources/LLVMSharp/DataLayout.cs
+++ b/sources/LLVMSharp/DataLayout.cs
@@ -28,13 +28,13 @@ public sealed class DataLayout : IEquatable
public uint GetPreferredAlign(Value value) => Handle.PreferredAlignmentOfGlobal(value.Handle);
- public static bool operator ==(DataLayout left, DataLayout right) => ReferenceEquals(left, right) || (left?.Handle == right?.Handle);
+ public static bool operator ==(DataLayout? left, DataLayout? right) => ReferenceEquals(left, right) || (left?.Handle == right?.Handle);
- public static bool operator !=(DataLayout left, DataLayout right) => !(left == right);
+ public static bool operator !=(DataLayout? left, DataLayout? right) => !(left == right);
- public override bool Equals(object obj) => (obj is DataLayout other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is DataLayout other) && Equals(other);
- public bool Equals(DataLayout other) => this == other;
+ public bool Equals(DataLayout? other) => this == other;
public override int GetHashCode() => Handle.GetHashCode();
diff --git a/sources/LLVMSharp/Error.cs b/sources/LLVMSharp/Error.cs
index 77bc51f..e4084a1 100644
--- a/sources/LLVMSharp/Error.cs
+++ b/sources/LLVMSharp/Error.cs
@@ -9,13 +9,13 @@ public sealed class Error : IEquatable
{
public LLVMErrorRef Handle { get; }
- public static bool operator ==(Error left, Error right) => ReferenceEquals(left, right) || (left?.Handle == right?.Handle);
+ public static bool operator ==(Error? left, Error? right) => ReferenceEquals(left, right) || (left?.Handle == right?.Handle);
- public static bool operator !=(Error left, Error right) => !(left == right);
+ public static bool operator !=(Error? left, Error? right) => !(left == right);
- public override bool Equals(object obj) => (obj is Error other) && Equals(other);
+ public override bool Equals(object? obj) => (obj is Error other) && Equals(other);
- public bool Equals(Error other) => this == other;
+ public bool Equals(Error? other) => this == other;
public override int GetHashCode() => Handle.GetHashCode();
diff --git a/sources/LLVMSharp/IRBuilder.cs b/sources/LLVMSharp/IRBuilder.cs
index 7b9ae3d..ba09614 100644
--- a/sources/LLVMSharp/IRBuilder.cs
+++ b/sources/LLVMSharp/IRBuilder.cs
@@ -32,13 +32,13 @@ public sealed class IRBuilder : IRBuilderBase
public ReturnInst CreateAggregateRet(ReadOnlySpan retVals)
{
using var retValHandles = new MarshaledArray(retVals, (value) => value.Handle);
- var handle = Handle.BuildAggregateRet(retValHandles);
+ var handle = Handle.BuildAggregateRet(retValHandles.AsSpan());
return Context.GetOrCreate(handle);
}
- public AllocaInst CreateAlloca(Type ty, Value arraySize = null, string name = "") => CreateAlloca(ty, arraySize, name.AsSpan());
+ public AllocaInst CreateAlloca(Type ty, Value? arraySize = null, string name = "") => CreateAlloca(ty, arraySize, name.AsSpan());
- public AllocaInst CreateAlloca(Type ty, Value arraySize, ReadOnlySpan name)
+ public AllocaInst CreateAlloca(Type ty, Value? arraySize, ReadOnlySpan name)
{
var handle = Handle.BuildArrayAlloca(ty.Handle, arraySize?.Handle ?? default, name);
return Context.GetOrCreate(handle);
@@ -88,12 +88,12 @@ public sealed class IRBuilder : IRBuilderBase
return Context.GetOrCreate(handle);
}
- public CallInst CreateCall(Value callee, Value[] args = null, string name = "") => CreateCall(callee, args.AsSpan(), name.AsSpan());
+ public CallInst CreateCall(FunctionType fTy, Value callee, Value[]? args = null, string name = "") => CreateCall(fTy, callee, args.AsSpan(), name.AsSpan());
- public CallInst CreateCall(Value callee, ReadOnlySpan args, ReadOnlySpan name)
+ public CallInst CreateCall(FunctionType fTy, Value callee, ReadOnlySpan args, ReadOnlySpan name)
{
using var argHandles = new MarshaledArray(args, (value) => value.Handle);
- var handle = Handle.BuildCall(callee.Handle, argHandles, name);
+ var handle = Handle.BuildCall2(fTy.Handle, callee.Handle, argHandles.AsSpan(), name);
return Context.GetOrCreate(handle);
}
@@ -247,12 +247,12 @@ public sealed class IRBuilder : IRBuilderBase
return Context.GetOrCreate(handle);
}
- public Value CreateGEP(Value ptr, Value[] idxList, string name = "") => CreateGEP(ptr, idxList.AsSpan(), name.AsSpan());
+ public Value CreateGEP(Type ty, Value ptr, Value[] idxList, string name = "") => CreateGEP(ty, ptr, idxList.AsSpan(), name.AsSpan());
- public Value CreateGEP(Value ptr, ReadOnlySpan idxList, ReadOnlySpan name)
+ public Value CreateGEP(Type ty, Value ptr, ReadOnlySpan idxList, ReadOnlySpan name)
{
using var idxListHandles = new MarshaledArray(idxList, (value) => value.Handle);
- var handle = Handle.BuildGEP(ptr.Handle, idxListHandles, name);
+ var handle = Handle.BuildGEP2(ty.Handle, ptr.Handle, idxListHandles.AsSpan(), name);
return Context.GetOrCreate(handle);
}
@@ -272,12 +272,12 @@ public sealed class IRBuilder : IRBuilderBase
return Context.GetOrCreate(handle);
}
- public Value CreateInBoundsGEP(Value ptr, Value[] idxList, string name = "") => CreateInBoundsGEP(ptr, idxList.AsSpan(), name.AsSpan());
+ public Value CreateInBoundsGEP(Type ty, Value ptr, Value[] idxList, string name = "") => CreateInBoundsGEP(ty, ptr, idxList.AsSpan(), name.AsSpan());
- public Value CreateInBoundsGEP(Value ptr, ReadOnlySpan idxList, ReadOnlySpan name)
+ public Value CreateInBoundsGEP(Type ty, Value ptr, ReadOnlySpan idxList, ReadOnlySpan name)
{
using var idxListHandles = new MarshaledArray(idxList, (value) => value.Handle);
- var handle = Handle.BuildInBoundsGEP(ptr.Handle, idxListHandles, name);
+ var handle = Handle.BuildInBoundsGEP2(ty.Handle, ptr.Handle, idxListHandles.AsSpan(), name);
return Context.GetOrCreate(handle);
}
@@ -319,12 +319,12 @@ public sealed class IRBuilder : IRBuilderBase
return Context.GetOrCreate(handle);
}
- public InvokeInst CreateInvoke(Value callee, BasicBlock normalDest, BasicBlock unwindDest, Value[] args, string name = "") => CreateInvoke(callee, normalDest, unwindDest, args.AsSpan(), name.AsSpan());
+ public InvokeInst CreateInvoke(FunctionType ty, Value callee, BasicBlock normalDest, BasicBlock unwindDest, Value[] args, string name = "") => CreateInvoke(ty, callee, normalDest, unwindDest, args.AsSpan(), name.AsSpan());
- public InvokeInst CreateInvoke(Value callee, BasicBlock normalDest, BasicBlock unwindDest, ReadOnlySpan