From 3108ac2c1b28d80a385563312c0a7d254dcd67c6 Mon Sep 17 00:00:00 2001 From: ZhouGuangyuan Date: Sat, 21 Mar 2026 22:42:57 +0800 Subject: [PATCH] Add metadata api and set llvm 20 as default --- .github/workflows/go.yml | 4 ++-- go.mod | 2 +- ir.go | 6 ++++++ llvm_config_llvm19.go | 2 +- llvm_config_llvm20.go | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 4bf2e8d..5e13455 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -32,7 +32,7 @@ jobs: run: go test -v -tags=llvm${{ matrix.llvm }} - name: Test default LLVM - if: matrix.llvm == 19 + if: matrix.llvm == 20 run: go test -v test-linux: @@ -57,6 +57,6 @@ jobs: run: go test -v -tags=llvm${{ matrix.llvm }} - name: Test default LLVM - if: matrix.llvm == 19 + if: matrix.llvm == 20 run: go test -v diff --git a/go.mod b/go.mod index 19f86ac..ae98918 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ module github.com/goplus/llvm -go 1.14 +go 1.22 diff --git a/ir.go b/ir.go index 6455e09..cfb133a 100644 --- a/ir.go +++ b/ir.go @@ -577,6 +577,8 @@ func (c Context) X86FP80Type() (t Type) { t.C = C.LLVMX86FP80TypeInContext(c.C) func (c Context) FP128Type() (t Type) { t.C = C.LLVMFP128TypeInContext(c.C); return } func (c Context) PPCFP128Type() (t Type) { t.C = C.LLVMPPCFP128TypeInContext(c.C); return } +func (c Context) MetadataType() (t Type) { t.C = C.LLVMMetadataTypeInContext(c.C); return } + // Operations on function types func FunctionType(returnType Type, paramTypes []Type, isVarArg bool) (t Type) { var pt *C.LLVMTypeRef @@ -828,6 +830,10 @@ func (v Value) ConstantAsMetadata() (md Metadata) { md.C = C.LLVMConstantAsMetadata(v.C) return } +func (c Context) MetadataAsValue(md Metadata) (v Value) { + v.C = C.LLVMMetadataAsValue(c.C, md.C) + return +} // Operations on scalar constants func ConstInt(t Type, n uint64, signExtend bool) (v Value) { diff --git a/llvm_config_llvm19.go b/llvm_config_llvm19.go index 78dd5a0..e540f57 100644 --- a/llvm_config_llvm19.go +++ b/llvm_config_llvm19.go @@ -1,4 +1,4 @@ -//go:build !byollvm && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18 && !llvm20 && !llvm21 +//go:build !byollvm && llvm19 package llvm diff --git a/llvm_config_llvm20.go b/llvm_config_llvm20.go index 090bdd6..b7b6e15 100644 --- a/llvm_config_llvm20.go +++ b/llvm_config_llvm20.go @@ -1,4 +1,4 @@ -//go:build !byollvm && llvm20 +//go:build !byollvm && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18 && !llvm19 && !llvm21 package llvm