authorgravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2024-02-19 23:12:52+01:00
committergravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2024-02-21 16:24:59+01:00
logc16818d6239a34ff211186a2e165777e17a847da
tree8d888e56aa6c6713f7a21a4b45174bca67206430
parentd3055480ec27de9107678fc9e2ac9075633f1384

Add LLVM bindings for parsing LLVM bitcode


1 files changed, 11 insertions(+), 0 deletions(-)

src/codegen/llvm/bindings.zig+11
......@@ -17,6 +17,14 @@ pub const Bool = enum(c_int) {
1717};
1818pub const AttributeIndex = c_uint;
1919
20pub const MemoryBuffer = opaque {
21 pub const createMemoryBufferWithMemoryRange = LLVMCreateMemoryBufferWithMemoryRange;
22 pub const dispose = LLVMDisposeMemoryBuffer;
23
24 extern fn LLVMCreateMemoryBufferWithMemoryRange(InputData: [*]const u8, InputDataLength: usize, BufferName: ?[*:0]const u8, RequiresNullTerminator: Bool) *MemoryBuffer;
25 extern fn LLVMDisposeMemoryBuffer(MemBuf: *MemoryBuffer) void;
26};
27
2028/// Make sure to use the *InContext functions instead of the global ones.
2129pub const Context = opaque {
2230 pub const create = LLVMContextCreate;
......@@ -25,6 +33,9 @@ pub const Context = opaque {
2533 pub const dispose = LLVMContextDispose;
2634 extern fn LLVMContextDispose(C: *Context) void;
2735
36 pub const parseBitcodeInContext2 = LLVMParseBitcodeInContext2;
37 extern fn LLVMParseBitcodeInContext2(C: *Context, MemBuf: *MemoryBuffer, OutModule: **Module) Bool;
38
2839 pub const createEnumAttribute = LLVMCreateEnumAttribute;
2940 extern fn LLVMCreateEnumAttribute(C: *Context, KindID: c_uint, Val: u64) *Attribute;
3041