Go bindings to a system-installed LLVM
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
IRBindings.cpp
IRBindings.h
InstrumentationBindings.cpp
InstrumentationBindings.h
LICENSE.txt
Makefile
README.markdown
SupportBindings.cpp
SupportBindings.h
analysis.go
backports.cpp
backports.go
backports.h
bitreader.go
bitwriter.go
dibuilder.go
executionengine.go
executionengine_test.go
ir.go
ir_test.go
linker.go
llvm_config.go
llvm_dep.go
string.go
string_test.go
support.go
target.go
transforms_instrumentation.go
transforms_ipo.go
transforms_pmbuilder.go
transforms_scalar.go
version.go

README.markdown

Go bindings to system LLVM

This library provides bindings to a system-installed LLVM.

Currently supported:

Usage

If you have a supported LLVM installation, you should be able to do a simple go get:

go get github.com/aykevl/go-llvm

After downloading, you may have to update the configuration for your system:

make config

If you built your own LLVM, you can also use that:

# update LLVM files
make update SRCDIR=<dir>

# configure this LLVM build
make config BUILDDIR=<builddir>

Note that you may have to comment out parts of backports.go if you use a newer version of LLVM.

License

Most of the files are extracted from the LLVM source tree, specifically all *.go, *.cpp, and *.h files come directly from bindings/go/llvm in the LLVM source tree. They are all released under the University of Illinois/NCSA Open Source License which is a permissive BSD-like license. Check upstream LLVM for detailed copyright information.

This README, the backports* files, and the Makefile are separate from LLVM but are licensed under the same license.