Skip to content

Commit 0478321

Browse files
committed
Add support for LLVM 18 (and use it by default)
1 parent f653163 commit 0478321

6 files changed

+34
-34
lines changed

.github/workflows/test.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,31 @@ jobs:
1010
runs-on: macos-latest
1111
strategy:
1212
matrix:
13-
llvm: [14, 15, 16, 17]
13+
llvm: [14, 15, 16, 17, 18]
1414
steps:
1515
- name: Checkout
1616
uses: actions/checkout@v4
1717
- name: Set up Go
1818
uses: actions/setup-go@v5
1919
with:
2020
go-version: '1.22'
21-
- name: Update Homebrew
22-
if: matrix.llvm == 17 # needed as long as LLVM 17 is still fresh
23-
run: brew update
21+
#- name: Update Homebrew
22+
# if: matrix.llvm == 17 # needed as long as LLVM 17 is still fresh
23+
# run: brew update
2424
- name: Install LLVM
2525
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install llvm@${{ matrix.llvm }}
2626
- name: Test LLVM ${{ matrix.llvm }}
2727
run:
2828
go test -v -tags=llvm${{ matrix.llvm }}
2929
- name: Test default LLVM
30-
if: matrix.llvm == 17
30+
if: matrix.llvm == 18
3131
run:
3232
go test -v
3333
test-linux:
3434
runs-on: ubuntu-20.04
3535
strategy:
3636
matrix:
37-
llvm: [14, 15, 16, 17]
37+
llvm: [14, 15, 16, 17, 18]
3838
steps:
3939
- name: Checkout
4040
uses: actions/checkout@v4
@@ -52,6 +52,6 @@ jobs:
5252
run:
5353
go test -v -tags=llvm${{ matrix.llvm }}
5454
- name: Test default LLVM
55-
if: matrix.llvm == 17
55+
if: matrix.llvm == 18
5656
run:
5757
go test -v

ir.go

-25
Original file line numberDiff line numberDiff line change
@@ -923,8 +923,6 @@ func ConstNUWSub(lhs, rhs Value) (v Value) { v.C = C.LLVMConstNUWSub(lhs.C, rhs.
923923
func ConstMul(lhs, rhs Value) (v Value) { v.C = C.LLVMConstMul(lhs.C, rhs.C); return }
924924
func ConstNSWMul(lhs, rhs Value) (v Value) { v.C = C.LLVMConstNSWMul(lhs.C, rhs.C); return }
925925
func ConstNUWMul(lhs, rhs Value) (v Value) { v.C = C.LLVMConstNUWMul(lhs.C, rhs.C); return }
926-
func ConstAnd(lhs, rhs Value) (v Value) { v.C = C.LLVMConstAnd(lhs.C, rhs.C); return }
927-
func ConstOr(lhs, rhs Value) (v Value) { v.C = C.LLVMConstOr(lhs.C, rhs.C); return }
928926
func ConstXor(lhs, rhs Value) (v Value) { v.C = C.LLVMConstXor(lhs.C, rhs.C); return }
929927

930928
func ConstICmp(pred IntPredicate, lhs, rhs Value) (v Value) {
@@ -937,8 +935,6 @@ func ConstFCmp(pred FloatPredicate, lhs, rhs Value) (v Value) {
937935
}
938936

939937
func ConstShl(lhs, rhs Value) (v Value) { v.C = C.LLVMConstShl(lhs.C, rhs.C); return }
940-
func ConstLShr(lhs, rhs Value) (v Value) { v.C = C.LLVMConstLShr(lhs.C, rhs.C); return }
941-
func ConstAShr(lhs, rhs Value) (v Value) { v.C = C.LLVMConstAShr(lhs.C, rhs.C); return }
942938

943939
func ConstGEP(t Type, v Value, indices []Value) (rv Value) {
944940
ptr, nvals := llvmValueRefs(indices)
@@ -951,35 +947,14 @@ func ConstInBoundsGEP(t Type, v Value, indices []Value) (rv Value) {
951947
return
952948
}
953949
func ConstTrunc(v Value, t Type) (rv Value) { rv.C = C.LLVMConstTrunc(v.C, t.C); return }
954-
func ConstSExt(v Value, t Type) (rv Value) { rv.C = C.LLVMConstSExt(v.C, t.C); return }
955-
func ConstZExt(v Value, t Type) (rv Value) { rv.C = C.LLVMConstZExt(v.C, t.C); return }
956-
func ConstFPTrunc(v Value, t Type) (rv Value) { rv.C = C.LLVMConstFPTrunc(v.C, t.C); return }
957-
func ConstFPExt(v Value, t Type) (rv Value) { rv.C = C.LLVMConstFPExt(v.C, t.C); return }
958-
func ConstUIToFP(v Value, t Type) (rv Value) { rv.C = C.LLVMConstUIToFP(v.C, t.C); return }
959-
func ConstSIToFP(v Value, t Type) (rv Value) { rv.C = C.LLVMConstSIToFP(v.C, t.C); return }
960-
func ConstFPToUI(v Value, t Type) (rv Value) { rv.C = C.LLVMConstFPToUI(v.C, t.C); return }
961-
func ConstFPToSI(v Value, t Type) (rv Value) { rv.C = C.LLVMConstFPToSI(v.C, t.C); return }
962950
func ConstPtrToInt(v Value, t Type) (rv Value) { rv.C = C.LLVMConstPtrToInt(v.C, t.C); return }
963951
func ConstIntToPtr(v Value, t Type) (rv Value) { rv.C = C.LLVMConstIntToPtr(v.C, t.C); return }
964952
func ConstBitCast(v Value, t Type) (rv Value) { rv.C = C.LLVMConstBitCast(v.C, t.C); return }
965-
func ConstZExtOrBitCast(v Value, t Type) (rv Value) {
966-
rv.C = C.LLVMConstZExtOrBitCast(v.C, t.C)
967-
return
968-
}
969-
func ConstSExtOrBitCast(v Value, t Type) (rv Value) {
970-
rv.C = C.LLVMConstSExtOrBitCast(v.C, t.C)
971-
return
972-
}
973953
func ConstTruncOrBitCast(v Value, t Type) (rv Value) {
974954
rv.C = C.LLVMConstTruncOrBitCast(v.C, t.C)
975955
return
976956
}
977957
func ConstPointerCast(v Value, t Type) (rv Value) { rv.C = C.LLVMConstPointerCast(v.C, t.C); return }
978-
func ConstIntCast(v Value, t Type, signed bool) (rv Value) {
979-
rv.C = C.LLVMConstIntCast(v.C, t.C, boolToLLVMBool(signed))
980-
return
981-
}
982-
func ConstFPCast(v Value, t Type) (rv Value) { rv.C = C.LLVMConstFPCast(v.C, t.C); return }
983958
func ConstExtractElement(vec, i Value) (rv Value) {
984959
rv.C = C.LLVMConstExtractElement(vec.C, i.C)
985960
return

llvm_config_darwin_llvm17.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//go:build !byollvm && darwin && !llvm14 && !llvm15 && !llvm16
1+
//go:build !byollvm && darwin && llvm17
22

33
package llvm
44

llvm_config_darwin_llvm18.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//go:build !byollvm && darwin && !llvm14 && !llvm15 && !llvm16 && !llvm17
2+
3+
package llvm
4+
5+
// Automatically generated by `make config BUILDDIR=`, do not edit.
6+
7+
// #cgo amd64 CPPFLAGS: -I/usr/local/opt/llvm@18/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
8+
// #cgo amd64 CXXFLAGS: -std=c++18
9+
// #cgo amd64 LDFLAGS: -L/usr/local/opt/llvm@18/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm
10+
// #cgo arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@18/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
11+
// #cgo arm64 CXXFLAGS: -std=c++18
12+
// #cgo arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@18/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm
13+
import "C"
14+
15+
type run_build_sh int

llvm_config_linux_llvm17.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//go:build !byollvm && linux && !llvm14 && !llvm15 && !llvm16
1+
//go:build !byollvm && linux && llvm17
22

33
package llvm
44

llvm_config_linux_llvm18.go

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//go:build !byollvm && linux && !llvm14 && !llvm15 && !llvm16 && !llvm17
2+
3+
package llvm
4+
5+
// #cgo CPPFLAGS: -I/usr/include/llvm-18 -I/usr/include/llvm-c-18 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
6+
// #cgo CXXFLAGS: -std=c++17
7+
// #cgo LDFLAGS: -L/usr/lib/llvm-18/lib -lLLVM-18
8+
import "C"
9+
10+
type run_build_sh int

0 commit comments

Comments
 (0)