Skip to content

Commit c97bfea

Browse files
authored
Merge branch 'plugin' into tfk_maxnum
2 parents d8808fc + 38a0037 commit c97bfea

29 files changed

+5491
-349
lines changed

.github/workflows/ccpp.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,28 @@ on: [push]
44

55
jobs:
66
build:
7-
name: Test on os ${{ matrix.os }} and llvm ${{ matrix.llvm }}
7+
name: Test on os ${{ matrix.os }} and llvm ${{ matrix.llvm }} mode ${{ matrix.build }}
88
runs-on: ${{ matrix.os }}
99

1010
strategy:
1111
fail-fast: false
1212
matrix:
13-
llvm: ["6.0", "7", "8"]
14-
build: ["Release", "RelWithDebInfo", "Debug"]
13+
llvm: ["7", "8"]
14+
build: ["Release", "Debug"] # "RelWithDebInfo"
1515
os: [ubuntu-18.04]
1616

1717
steps:
1818
- name: add llvm
19-
run: sudo add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-${{ matrix.llvm }} main'
20-
- name: update ubuntu
21-
run: sudo apt-get update -y && sudo apt-get remove -y llvm* libllvm* libgl* php* mono* msbuild* libmono*
22-
- name: install llvm
23-
run: sudo apt-get install -y --no-install-recommends build-essential llvm-${{ matrix.llvm }}-tools llvm-${{ matrix.llvm }}-dev cmake
19+
run: sudo apt-get install -y llvm-${{ matrix.llvm }}-dev llvm-${{ matrix.llvm }}-tools
2420
- uses: actions/checkout@v1
21+
with:
22+
fetch-depth: 1
2523
- name: mkdir
2624
run: cd enzyme && mkdir build
2725
- name: cmake
28-
run: cd enzyme/build && cmake .. -DLLVM_EXTERNAL_LIT=/usr/lib/llvm-${{ matrix.llvm }}/build/utils/lit/lit.py -DCMAKE_BUILD_TYPE=${{ matrix.build }}
26+
run: |
27+
cd enzyme/build
28+
cmake .. -DLLVM_EXTERNAL_LIT=/usr/lib/llvm-${{ matrix.llvm }}/build/utils/lit/lit.py -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_DIR=/usr/lib/llvm-${{ matrix.llvm }}/lib/cmake/llvm
2929
- name: make
3030
run: cd enzyme/build && make
3131
- name: make check-enzyme

.github/workflows/julia.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Julia CI
2+
3+
on: [push]
4+
5+
jobs:
6+
test:
7+
name: Test on os ${{ matrix.os }} and Julia ${{ matrix.julia-version }}
8+
runs-on: ${{ matrix.os }}
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
julia-version: [1.2.0]
13+
os: [ubuntu-18.04]
14+
15+
steps:
16+
- name: "Checkout Enzyme.jl code"
17+
uses: actions/checkout@v1
18+
with:
19+
repository: wsmoses/Enzyme.jl
20+
clean: false
21+
path: Enzyme.jl
22+
token: ${{secrets.enzymejl_secret}}
23+
ref: master
24+
- name: "Checkout Enzyme code"
25+
uses: actions/checkout@v1
26+
with:
27+
fetch-depth: 1
28+
- name: "Set up Julia"
29+
uses: julia-actions/setup-julia@v0.2
30+
with:
31+
version: ${{ matrix.julia-version }}
32+
- name: "Download LLVM"
33+
run: |
34+
julia --project=contrib -e 'using Pkg; pkg"instantiate"'
35+
julia --project=contrib contrib/build_LLVM.v6.0.1.jl
36+
sudo mkdir -p /workspace
37+
sudo ln -s `pwd`/contrib/usr /workspace/destdir
38+
sudo ln -s `pwd`/contrib/usr/tools/opt `pwd`/contrib/usr/bin/opt
39+
sudo ln -s `pwd`/contrib/usr/tools/FileCheck `pwd`/contrib/usr/bin/FileCheck
40+
sudo ln -s `pwd`/contrib/usr/tools/llvm-config `pwd`/contrib/usr/bin/llvm-config
41+
env:
42+
NO_DEPS: true
43+
- name: "Build Enzyme"
44+
run: |
45+
mkdir build
46+
cd build
47+
cmake -DLLVM_DIR=../contrib/usr/lib/cmake/llvm -DLLVM_EXTERNAL_LIT=../contrib/usr/tools/lit/lit.py ../enzyme
48+
make -j
49+
- name: "Julia tests"
50+
run: |
51+
cd ../Enzyme.jl
52+
julia --project=. -e 'using Pkg; pkg"instantiate"; pkg"add ReverseDiff"'
53+
julia --project=. test/runtests.jl
54+
env:
55+
ENZYME_PATH: "../Enzyme/build/Enzyme"
56+
- name: "Check Enzyme"
57+
run: |
58+
cd build
59+
make check-enzyme

bench/Makefile

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,42 @@
55
%-unopt.ll: %.c
66
#../build/bin/clang -fno-unroll-loops $^ -O1 -fno-vectorize -fno-slp-vectorize -S -emit-llvm -o - -ffast-math | ../build/bin/opt -early-cse-memssa - -S -o $@ -simplifycfg -simplifycfg
77
#../build/bin/clang -fno-unroll-loops $^ -O3 -fno-vectorize -fno-slp-vectorize -S -emit-llvm -o - -ffast-math | ../build/bin/opt -early-cse-memssa - -S -o $@ -simplifycfg -simplifycfg
8-
../build/bin/clang -fno-unroll-loops $^ -O3 -fno-vectorize -fno-slp-vectorize -S -emit-llvm -o - -ffast-math -o $@ #| ../build/bin/opt -early-cse-memssa - -S -o $@ -simplifycfg -simplifycfg
8+
../build/bin/clang -fno-unroll-loops $^ -O0 -fno-vectorize -fno-slp-vectorize -S -emit-llvm -o - -ffast-math -o $@ #| ../build/bin/opt -early-cse-memssa - -S -o $@ -simplifycfg -simplifycfg
99

1010
%-unopt.ll: %.cpp
1111
#../build/bin/clang++ -fno-unroll-loops $^ -O3 -fno-vectorize -fno-slp-vectorize -S -emit-llvm -o $@ -ffast-math -Wno-error=non-pod-varargs -DEIGEN_UNROLLING_LIMIT=0 -I ../../adept-2.0.5/include -I../../tapenade/ADFirstAidKit
12-
../build/bin/clang++ -fno-exceptions -fno-unroll-loops $^ -O3 -fno-vectorize -fno-slp-vectorize -S -emit-llvm -o $@ -ffast-math -Wno-error=non-pod-varargs -DEIGEN_UNROLLING_LIMIT=0 -I../../adept-2.0.5/include -I../../tapenade/ADFirstAidKit
12+
../build/bin/clang++ -fno-exceptions -fno-unroll-loops $^ -O3 -fno-vectorize -fno-slp-vectorize -S -emit-llvm -o $@ -ffast-math -Wno-error=non-pod-varargs -DEIGEN_UNROLLING_LIMIT=0 -I../../adept-2.0.5/include
1313

1414
%-preopt.ll: %-unopt.ll
15-
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme.so -enzyme -mem2reg -sroa -early-cse-memssa -adce -bdce -simplifycfg -inline -adce -aggressive-instcombine -O2 -S -o $@
15+
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme-7.so -enzyme -mem2reg -sroa -early-cse-memssa -adce -bdce -simplifycfg -inline -adce -aggressive-instcombine -O2 -S -o $@
1616

1717
%-raw.ll: %-unopt.ll
18-
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme.so -enzyme -S -o $@
18+
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme-7.so -enzyme -S -o $@
1919

2020
%-raw2.ll: %-unopt.ll
21-
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme.so -enzyme -simplifycfg -mem2reg -sroa -S -o $@
21+
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme-7.so -enzyme -simplifycfg -mem2reg -sroa -S -o $@
2222
#../build/bin/opt $^ -indvars -lower-autodiff -simplifycfg -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o $@
2323
#../build/bin/opt $^ -indvars -lower-autodiff -S -o - | ../build/bin/opt - -S -o $@ -adce -bdce -aggressive-instcombine -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -O1
2424
#../build/bin/opt $^ -indvars -lower-autodiff -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o - | ../build/bin/opt - -S -o $@ -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -adce
2525

2626
%-lowernovec.ll: %-unopt.ll
2727
#../build/bin/opt $^ -indvars -lower-autodiff -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o $@ -instsimplify -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -adce -inline -instsimplify -instcombine -correlated-propagation
28-
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme.so -enzyme -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o $@ -instsimplify -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -adce -inline -instsimplify -instcombine -correlated-propagation #-autodiff_optimize=true
28+
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme-7.so -enzyme -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o $@ -instsimplify -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -adce -inline -instsimplify -instcombine -correlated-propagation #-autodiff_optimize=true
2929

3030
%-lowerprint.ll: %-unopt.ll
31-
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme.so -enzyme -verify -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o $@ -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -O3 -print-before-all -print-after-all
31+
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme-7.so -enzyme -verify -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o $@ -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -O3 -print-before-all -print-after-all
3232

3333
%-lowerq.ll: %-unopt.ll
34-
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme.so -enzyme -verify -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -o moobar.ll
34+
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme-7.so -enzyme -verify -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -o moobar.ll
3535
../build/bin/opt moobar.ll -S -o $@ -O1 -print-before-all -print-after-all
3636

3737
%-lower.ll: %-unopt.ll
38-
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme.so -enzyme -verify -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o - -enzyme_print=1 | ../build/bin/opt - -S -o $@ -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -O3
38+
../build/bin/opt $^ -indvars -load=../enzyme/build/Enzyme/LLVMEnzyme-7.so -enzyme -verify -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o - -enzyme_print=1 | ../build/bin/opt - -S -o $@ -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -O3
3939
#../build/bin/opt $^ -indvars -autodiff_inline=true -lower-autodiff -verify -mem2reg -sroa -adce -bdce -aggressive-instcombine -S -o - | ../build/bin/opt - -S -o $@ -instsimplify -correlated-propagation -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -loop-deletion -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -inline -O3
4040
#../build/bin/opt $^ -indvars -lower-autodiff -mem2reg -sroa -early-cse-memssa -adce -bdce -aggressive-instcombine -simplifycfg -correlated-propagation -deadargelim -adce -bdce -aggressive-instcombine -O3 -S -o $@
4141

4242
%.o: %-lower.ll
43-
../build/bin/clang $^ -o $@ -lm -lstdc++ -g -ggdb -lblas ../../tapenade/ADFirstAidKit/*.o
43+
../build/bin/clang $^ -o $@ -lm -lstdc++ -g -ggdb #-lblas #../../tapenade/ADFirstAidKit/*.o
4444
#../build/bin/clang $^ -o $@ -lm -ladept -lstdc++ -g -ggdb -lblas
4545

4646
clean:

contrib/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
build/
2+
products/

contrib/Project.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[deps]
2+
BinaryBuilder = "12aac903-9f7c-5d81-afc2-d9565ea332ae"
3+
BinaryProvider = "b99e7846-7c00-51b0-8f62-c81ae34c0232"

contrib/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Shipping a Julia-compatible Enzyme library
2+
Since Julia has LLVM as a core dependency and uses a heavily patched version
3+
we want to ship enzyme build against the same LLVM version in a way that is compatible
4+
ABI compatible with the LLVM version used by Julia.
5+
6+
## Instructions
7+
8+
```
9+
julia --project=. build_tarballs.jl --debug x86_64-linux-gnu
10+
```

contrib/build_LLVM.v6.0.1.jl

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using BinaryProvider # requires BinaryProvider 0.3.0 or later
2+
3+
# Parse some basic command-line arguments
4+
const verbose = "--verbose" in ARGS
5+
const prefix = Prefix(get([a for a in ARGS if a != "--verbose"], 1, joinpath(@__DIR__, "usr")))
6+
products = [
7+
LibraryProduct(prefix, ["libLLVM"], :libLLVM),
8+
LibraryProduct(prefix, ["libLTO"], :libLTO),
9+
ExecutableProduct(prefix, "llvm-config", :llvm_config),
10+
]
11+
12+
# Download binaries from hosted location
13+
bin_prefix = "https://github.com/staticfloat/LLVMBuilder/releases/download/v6.0.1-7+nowasm"
14+
15+
# Listing of files generated by BinaryBuilder:
16+
download_info = Dict(
17+
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.aarch64-linux-gnu-gcc4.tar.gz", "258733cf9305f135ab8be9b6c3bea7eb7bcc4e14d951d85e7d9e31a15c255fa5"),
18+
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.aarch64-linux-gnu-gcc7.tar.gz", "baa5f6ebd814b846d7dc62687962b7a2a4e822c02e5c53030ac958661679e06f"),
19+
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.aarch64-linux-gnu-gcc8.tar.gz", "a4b63136fc760db96fa7417027c5e1042818c4047b3723dcb2472f495a35d2db"),
20+
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.arm-linux-gnueabihf-gcc4.tar.gz", "1e5733920dfb71ec013634817f8ab51ce24fc62a3bea67838a1818d93cf6b75a"),
21+
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.arm-linux-gnueabihf-gcc7.tar.gz", "d9aad01adc6f3e32f875c85c425440d59f7865648ea7e3b70b1dc1f6d2a4d42c"),
22+
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.arm-linux-gnueabihf-gcc8.tar.gz", "d4c625e28615419456c104681068bc4d28015d23cf6f18fa12744d87ee4ea408"),
23+
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.i686-linux-gnu-gcc4.tar.gz", "4430d32b9dbcdf27a91bf9888d169065a459eaae12f0cbe39314e7c5ba7d7251"),
24+
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.i686-linux-gnu-gcc7.tar.gz", "ea5c80514a178025458a28fcd442840c7a82cb96e6359cb4fa33e0fe9312f466"),
25+
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.i686-linux-gnu-gcc8.tar.gz", "d217b23c5509c7990a79c3c2f46a9c6c2fd2982d9a052e92186db227833c891e"),
26+
Windows(:i686, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.i686-w64-mingw32-gcc4.tar.gz", "e7045ddbf9da0afee4add08860f98b667a406331250b4f0a998615798d1b44b6"),
27+
Windows(:i686, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.i686-w64-mingw32-gcc7.tar.gz", "07b519d8ccea686bbb66b770fd58d7878ed818a59a8bef2ed745e3efff1e0d81"),
28+
Windows(:i686, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.i686-w64-mingw32-gcc8.tar.gz", "99850539331480460e34a631807939c4f4f903da2d4cbbfb41d869c4826acd68"),
29+
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.powerpc64le-linux-gnu-gcc4.tar.gz", "5fca09febf50921d088d0b00da881e37bbe29b1fb80ee3f3dd73baea7ace98fc"),
30+
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.powerpc64le-linux-gnu-gcc7.tar.gz", "2fff9e2baac6f8d1c12c5b92d0fdd729569ced10dedf871604e03c745cd96dab"),
31+
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.powerpc64le-linux-gnu-gcc8.tar.gz", "45bb08eec360606b39a8860bf3385fdba8014261d11fb5a251cdbb473b94156c"),
32+
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-apple-darwin14-gcc4.tar.gz", "688422a003781e2430cb4c1d44a6f07a8e077050b97213695d4995dd8bbff18c"),
33+
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-apple-darwin14-gcc7.tar.gz", "801c50b0bf3a9cebb680257d4bf043c39bab5fb50ec13c1a5c36a4b69b8a6e8c"),
34+
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-apple-darwin14-gcc8.tar.gz", "0b87531d75dd95b1646b8d3c25eaf55f6707af14c6ac9d6571df3a2bcb0b83ca"),
35+
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-linux-gnu-gcc4.tar.gz", "74af89216a5c3eba22a73b983ff8fa4b6525481368b49fa51e88b22da7cc0dd9"),
36+
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-linux-gnu-gcc7.tar.gz", "f2c335eb912720a5b3318f909eda1650973043beb033dfb3adc0f7d150b91bf6"),
37+
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-linux-gnu-gcc8.tar.gz", "33cdab926a924d6befb1bdf7db9598815dcb931c9b1de89a72d129bf5b6fb0eb"),
38+
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-linux-musl-gcc4.tar.gz", "f994ba50dbd5b465911d1d3cb0a3debb7b3c15850b58bb171992a9ec21069bcf"),
39+
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-linux-musl-gcc7.tar.gz", "9030772689d1eed85a41aae4a3413dd2fcff930537dbe782099071cef7276cb4"),
40+
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-linux-musl-gcc8.tar.gz", "62538f3b86629984adccb311ba35120f3fac1ba6cd9265ccda3d722071133834"),
41+
FreeBSD(:x86_64, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-unknown-freebsd11.1-gcc4.tar.gz", "6baf75dfe38e57024e816d139eb77187c413b255193697d3bd49a769014d2af9"),
42+
FreeBSD(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-unknown-freebsd11.1-gcc7.tar.gz", "3b38e5c912ed407999f75f6f021569984941034207943bbe393536d2f35f6cba"),
43+
FreeBSD(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-unknown-freebsd11.1-gcc8.tar.gz", "d5fd71f9ba902128d9c9685454d5dba7d5936ebb0c0e30277141439d97dc16ea"),
44+
Windows(:x86_64, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-w64-mingw32-gcc4.tar.gz", "9214e0e58a3373a8d0c34f55514aa7278d64cc2c9b866a32e3d5ecb3f3b202e5"),
45+
Windows(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-w64-mingw32-gcc7.tar.gz", "74811cb50b41ac40bc69548811063ae595ea5ec8f77108e9a2a2f7c22196376f"),
46+
Windows(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/LLVM.v6.0.1.x86_64-w64-mingw32-gcc8.tar.gz", "c8baabecbf232437d58848ceeccef31a9ca59d7e452f55ceb26981d17293ba32"),
47+
)
48+
49+
# Install unsatisfied or updated dependencies:
50+
unsatisfied = any(!satisfied(p; verbose=verbose, isolate=true) for p in products)
51+
dl_info = choose_download(download_info, platform_key_abi())
52+
if dl_info === nothing && unsatisfied
53+
# If we don't have a compatible .tar.gz to download, complain.
54+
# Alternatively, you could attempt to install from a separate provider,
55+
# build from source or something even more ambitious here.
56+
error("Your platform (\"$(Sys.MACHINE)\", parsed as \"$(triplet(platform_key_abi()))\") is not supported by this package!")
57+
end
58+
59+
# If we have a download, and we are unsatisfied (or the version we're
60+
# trying to install is not itself installed) then load it up!
61+
if unsatisfied || !isinstalled(dl_info...; prefix=prefix)
62+
# Download and install binaries
63+
install(dl_info...; prefix=prefix, force=true, verbose=verbose)
64+
end
65+
66+
# HACK
67+
if !haskey(ENV, "NO_DEPS")
68+
# Write out a deps.jl file that will contain mappings for our products
69+
write_deps_file(joinpath(@__DIR__, "deps.jl"), products, verbose=verbose)
70+
end

0 commit comments

Comments
 (0)