Skip to content

Commit

Permalink
Revert "Integrate LLVM at llvm/llvm-project@ede40da1f8c1"
Browse files Browse the repository at this point in the history
This reverts commit 13d8706.
  • Loading branch information
wsmoses committed Sep 9, 2024
1 parent 13d8706 commit 9068712
Show file tree
Hide file tree
Showing 355 changed files with 2,011,564 additions and 56 deletions.
17 changes: 17 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/LICENSE export-ignore
/Readme.md export-ignore
/clang export-ignore
/clang-tools-extra export-ignore
/compiler-rt export-ignore
/contrib export-ignore
/debuginfo-tests export-ignore
/libcxx export-ignore
/libcxxabi export-ignore
/libunwind export-ignore
/lld export-ignore
/lldb export-ignore
/llvm export-ignore
/openmp export-ignore
/polly export-ignore
/tests export-ignore
/enzyme/benchmarks export-ignore
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
38 changes: 38 additions & 0 deletions .github/workflows/bcload.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Bitcode loading CI

on: [push]

jobs:
build:
name: Bitcode loading CI LLVM ${{ matrix.llvm }} ${{ matrix.build }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
# BCLoad tests only run with old pass manager [aka up to and including 13]
llvm: ["11", "12", "13"]
build: ["Release"] # "RelWithDebInfo"
os: [ubuntu-20.04]

timeout-minutes: 30
steps:
- name: add llvm
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/`lsb_release -c | cut -f2`/ llvm-toolchain-`lsb_release -c | cut -f2`-${{ matrix.llvm }} main" || true
sudo apt-get install -y cmake gcc g++ llvm-${{ matrix.llvm }}-dev clang-${{ matrix.llvm }} libclang-${{ matrix.llvm }}-dev
sudo python3 -m pip install --upgrade pip lit
if [[ '${{ matrix.llvm }}' == '13' ]]; then
sudo sed -i 's/add_executable(llvm-omp-device-info IMPORTED)//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
sudo sed -i 's/llvm-omp-device-info//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
fi
- uses: actions/checkout@v4
- name: mkdir
run: cd enzyme && rm -rf build && mkdir build
- name: cmake
run: |
cd enzyme/build
cmake .. -DLLVM_EXTERNAL_LIT=`which lit` -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_DIR=/usr/lib/llvm-${{ matrix.llvm }}/lib/cmake/llvm
- name: make check-bcpass
run: cd enzyme/build && make -j `nproc` check-bcpass
59 changes: 59 additions & 0 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Benchmarking

on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
build:
name: Benchmark Test on os ${{ matrix.os }} and llvm ${{ matrix.llvm }} mode ${{ matrix.build }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
llvm: ["13", "14", "15", "16"]
build: ["Release", "Debug"] # "RelWithDebInfo"
os: [openstack18]
timeout-minutes: 120
steps:
- name: add llvm
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/`lsb_release -c | cut -f2`/ llvm-toolchain-`lsb_release -c | cut -f2`-${{ matrix.llvm }} main" || true
sudo apt-get install -y python3-pip autoconf cmake gcc g++ libtool gfortran libblas-dev llvm-${{ matrix.llvm }}-dev clang-${{ matrix.llvm }} libeigen3-dev libboost-dev
sudo python3 -m pip install lit pathlib
sudo touch /usr/lib/llvm-${{ matrix.llvm }}/bin/yaml-bench
if [[ '${{ matrix.llvm }}' == '13' ]]; then
sudo sed -i 's/add_executable(llvm-omp-device-info IMPORTED)//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
sudo sed -i 's/llvm-omp-device-info//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
fi
- uses: actions/checkout@v4
- name: mkdir
run: rm -rf build && mkdir build
- name: cmake
working-directory: build
run: cmake ../enzyme -DLLVM_EXTERNAL_LIT=`which lit` -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_DIR=/usr/lib/llvm-${{ matrix.llvm }}/lib/cmake/llvm
- name: make
working-directory: build
run: make -j `nproc` LLVMEnzyme-${{ matrix.llvm }}
- name: make bench-enzyme
working-directory: build
run: make bench-enzyme
- name: results
run: cat enzyme/benchmarks/*/*/results.txt
- name: graph results
if: github.event_name != 'pull_request' && matrix.build == 'Release'
run: |
for p in enzyme/benchmarks/ReverseMode/*/results.json; do
python3 enzyme/benchmarks/upload-results.py $p --url https://enzyme.mit.edu/cibench/api --token ${{ secrets.GRAPH_TOKEN }}
done
51 changes: 51 additions & 0 deletions .github/workflows/ccpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: C/C++ CI

on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:

jobs:
build:
name: Integration CI LLVM ${{ matrix.llvm }} ${{ matrix.build }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
llvm: ["11", "12", "13", "14", "15", "16", "17"]
build: ["Release"] # "RelWithDebInfo"
os: [ubuntu-20.04]

timeout-minutes: 45

steps:
- name: add llvm
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-get install -y libmpfr-dev
sudo apt-add-repository "deb http://apt.llvm.org/`lsb_release -c | cut -f2`/ llvm-toolchain-`lsb_release -c | cut -f2`-${{ matrix.llvm }} main" || true
sudo apt-get install -y cmake gcc g++ llvm-${{ matrix.llvm }}-dev libomp-${{ matrix.llvm }}-dev lld-${{ matrix.llvm }} clang-${{ matrix.llvm }} libclang-${{ matrix.llvm }}-dev libeigen3-dev libboost-dev libzstd-dev
sudo python3 -m pip install --upgrade pip lit
if [[ '${{ matrix.llvm }}' == '13' ]]; then
sudo sed -i 's/add_executable(llvm-omp-device-info IMPORTED)//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
sudo sed -i 's/llvm-omp-device-info//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
fi
- uses: actions/checkout@v4
- name: mkdir
run: rm -rf build && mkdir build
- name: cmake
working-directory: build
run: cmake ../enzyme -DLLVM_EXTERNAL_LIT=`which lit` -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_DIR=/usr/lib/llvm-${{ matrix.llvm }}/lib/cmake/llvm
- name: make
run: cd build && make -j `nproc` LLVMEnzyme-${{ matrix.llvm }} ClangEnzyme-${{ matrix.llvm }} LLDEnzyme-${{ matrix.llvm }}
- name: make test-cmake
working-directory: build
run: make -j `nproc` test-cmake
- name: make check-enzyme-integration
working-directory: build
run: make -j `nproc` check-enzyme-integration
25 changes: 25 additions & 0 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build and deploy Doxygen to Scripts

on:
push:
branches:
- main

jobs:
docs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4

- uses: mattnotmitt/[email protected]
with:
working-directory: 'enzyme/'
doxyfile-path: 'doxygen.cfg'

- uses: wsmoses/action-deploy-scripts@main
with:
locker: 'enzyme-compiler'
remote: doxygen
privateKey: ${{ secrets.SCRIPTS_PRIVATE_KEY }}
rmRemote: true
local: enzyme/doxygen/html
60 changes: 60 additions & 0 deletions .github/workflows/enzyme-bazel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Bazel

on:
schedule:
- cron: 0 0 * * *
push:
branches:
- main
pull_request:
branches:
- main
merge_group:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
build-linux:
name: Bazel ${{ matrix.build }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
build: ["Release"]
llbuild: ["Release"]
os: [ubuntu-latest]

timeout-minutes: 500
steps:

- name: Prep
run: |
python -m pip install lit
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: 'llvm/llvm-project'
path: 'llvm-project'

- name: Cache Bazel
uses: actions/cache@v4
with:
path: |
~/.cache/bazel
~/.cache/bazel-disk-cache
key: ${{ runner.os }}-bazel-${{ hashFiles('.bazelversion', '.bazelrc', 'WORKSPACE', 'WORKSPACE.bazel', 'MODULE.bazel') }}
restore-keys: |
${{ runner.os }}-bazel-
- name: Build
run: |
cd enzyme
bazel build --disk_cache=~/.cache/bazel-disk-cache :EnzymeStatic :enzymemlir-opt
- name: Test
run: |
cd enzyme
bazel test --disk_cache=~/.cache/bazel-disk-cache --test_output=errors ...
119 changes: 119 additions & 0 deletions .github/workflows/enzyme-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Enzyme CI

on:
push:
branches:
- main
pull_request:
merge_group:

jobs:
build-linux:
name: Enzyme CI LLVM ${{ matrix.llvm }} ${{ matrix.build }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
llvm: ["11", "12", "13", "14", "15", "16"]
build: ["Release", "Debug"] # "RelWithDebInfo"
os: [ubuntu-20.04]

timeout-minutes: 30

steps:
- name: add llvm
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/`lsb_release -c | cut -f2`/ llvm-toolchain-`lsb_release -c | cut -f2`-${{ matrix.llvm }} main" || true
sudo apt-get install -y cmake gcc g++ llvm-${{ matrix.llvm }}-dev libzstd-dev
sudo python3 -m pip install --upgrade pip lit
if [[ '${{ matrix.llvm }}' == '13' ]]; then
sudo sed -i 's/add_executable(llvm-omp-device-info IMPORTED)//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
sudo sed -i 's/llvm-omp-device-info//g' /usr/lib/llvm-${{matrix.llvm}}/lib/cmake/llvm/LLVMExports*.cmake
fi
- uses: actions/checkout@v4
- name: mkdir
run: rm -rf build && mkdir build
- name: cmake
working-directory: build
run: cmake ../enzyme -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_EXTERNAL_LIT=`which lit` -DLLVM_DIR=/usr/lib/llvm-${{ matrix.llvm }}/lib/cmake/llvm
- name: make
working-directory: build
run: make -j `nproc`
- name: make check-typeanalysis
working-directory: build
run: make -j `nproc` check-typeanalysis
- name: make check-activityanalysis
working-directory: build
run: make -j `nproc` check-activityanalysis
- name: make check-enzyme
working-directory: build
run: make -j `nproc` check-enzyme-bench
- name: graph results
if: github.event_name != 'pull_request' && matrix.build == 'Release'
run: python3 enzyme/test/upload-results.py build/test/Enzyme/results.json --url https://enzyme.mit.edu/cibench/api --token ${{ secrets.GRAPH_TOKEN }}

build-macos:
name: Enzyme CI LLVM ${{ matrix.llvm }} ${{ matrix.build }} macOS
runs-on: macos-latest

strategy:
fail-fast: false
matrix:
llvm: ["12", "13", "14", "15", "16"]
build: ["Release", "Debug"] # "RelWithDebInfo"

timeout-minutes: 30
steps:
- name: add llvm
run: |
brew update
brew install llvm@${{ matrix.llvm }} make cmake
sudo python3 -m pip install --upgrade --break-system-packages --user pip lit requests
- uses: actions/checkout@v4
- name: mkdir
run: rm -rf build && mkdir build
- name: cmake
working-directory: build
run: cmake ../enzyme -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_EXTERNAL_LIT=/Users/runner/Library/Python/3.12/bin/lit -DLLVM_DIR=`brew --prefix llvm@${{ matrix.llvm }}`/lib/cmake/llvm
- name: make
working-directory: build
run: make -j 3
- name: make check-typeanalysis
working-directory: build
run: make -j 3 check-typeanalysis
- name: make check-activityanalysis
working-directory: build
run: make -j 3 check-activityanalysis
- name: make check-enzyme
working-directory: build
run: make -j3 check-enzyme-bench
- name: graph results
if: github.event_name != 'pull_request' && matrix.build == 'Release'
run: python3 enzyme/test/upload-results.py build/test/Enzyme/results.json --url https://enzyme.mit.edu/cibench/api --token ${{ secrets.GRAPH_TOKEN }}

build-xcode:
name: Enzyme CI LLVM ${{ matrix.llvm }} ${{ matrix.build }} macOS XCode
runs-on: macos-latest

strategy:
fail-fast: false
matrix:
llvm: ["13"] #, "14"]
build: ["Release"] # "RelWithDebInfo"

timeout-minutes: 30
steps:
- name: add llvm
run: |
brew install llvm@${{ matrix.llvm }} make cmake gcc
sudo python3 -m pip install --upgrade --break-system-packages --user pip lit
- uses: actions/checkout@v4
- name: mkdir
run: rm -rf build && mkdir build
- name: cmake
working-directory: build
run: |
cmake ../enzyme -GXcode -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DLLVM_EXTERNAL_LIT=/Users/runner/Library/Python/3.12/bin/lit -DLLVM_DIR=`brew --prefix llvm@${{ matrix.llvm }}`/lib/cmake/llvm
cmake --build . --parallel 3
Loading

0 comments on commit 9068712

Please sign in to comment.