Update LLVM 16 scripts The CL is for the most part changing '10' to '16'. Extra changes: * Add `/cmake/` to `.git/info/sparce-checkout`. See https://github.com/llvm/llvm-project/issues/53281 * Turn OFF `LLVM_INCLUDE_BENCHMARKS` and `LLVM_INCLUDE_TESTS`. * Copy generated files from additional directories: - include/llvm/TargetParser - include/llvm/Frontend - lib/ExecutionEngine Bug: b/272710814 Change-Id: I5e18df6ba54ade60fd0e0c13069749342af99a0e Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/70950 Commit-Queue: Jean-François Geyelin <jif@google.com> Reviewed-by: Geoff Lang <geofflang@google.com> Tested-by: Jean-François Geyelin <jif@google.com>
diff --git a/third_party/llvm-16.0/scripts/update.py b/third_party/llvm-16.0/scripts/update.py index f6cf4bf..c646ee8 100644 --- a/third_party/llvm-16.0/scripts/update.py +++ b/third_party/llvm-16.0/scripts/update.py
@@ -26,15 +26,15 @@ import tempfile from os import path -# LLVM_BRANCH must match the value of the same variable in third_party/update-llvm-10.sh -LLVM_BRANCH = "release/10.x" +# LLVM_BRANCH must match the value of the same variable in third_party/update-llvm-16.sh +LLVM_BRANCH = "release/16.x" -# LLVM_COMMIT must be set to the commit hash that we last updated to when running third_party/update-llvm-10.sh. -# Run 'git show -s origin/llvm10-clean' and look for 'llvm-10-update: <hash>' to retrieve it. -LLVM_COMMIT = "d32170dbd5b0d54436537b6b75beaf44324e0c28" +# LLVM_COMMIT must be set to the commit hash that we last updated to when running third_party/update-llvm-16.sh. +# Run 'git show -s origin/llvm16-clean' and look for 'llvm-16-update: <hash>' to retrieve it. +LLVM_COMMIT = "fce3e75e01babe38576b1519dab5f752955525f9" SCRIPT_DIR = path.dirname(path.realpath(sys.argv[0])) -LLVM_STAGING_DIR = path.abspath(path.join(tempfile.gettempdir(), "llvm-10")) +LLVM_STAGING_DIR = path.abspath(path.join(tempfile.gettempdir(), "llvm-16")) LLVM_DIR = path.abspath(path.join(LLVM_STAGING_DIR, "llvm")) LLVM_OBJS = path.join(LLVM_STAGING_DIR, "build") LLVM_CONFIGS = path.abspath(path.join(SCRIPT_DIR, '..', 'configs')) @@ -117,6 +117,8 @@ '-DLLVM_ENABLE_LIBEDIT=OFF', '-DLLVM_ENABLE_LIBPFM=OFF', '-DLLVM_ENABLE_ZLIB=OFF', + '-DLLVM_INCLUDE_BENCHMARKS=OFF', + '-DLLVM_INCLUDE_TESTS=OFF', '-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON' ] @@ -193,9 +195,11 @@ 'git remote add origin https://github.com/llvm/llvm-project.git', 2) run_command('git config core.sparsecheckout true', 2) run_command('echo /llvm > .git/info/sparse-checkout', 2) + run_command('echo /cmake >> .git/info/sparse-checkout', 2) with pushd(LLVM_STAGING_DIR): run_command('echo /llvm > .git/info/sparse-checkout', 2) + run_command('echo /cmake >> .git/info/sparse-checkout', 2) run_command('git fetch origin {}'.format(LLVM_BRANCH), 2) run_command('git checkout {}'.format(LLVM_COMMIT), 2) return @@ -244,7 +248,10 @@ subdirs = [ path.join('include', 'llvm', 'IR'), path.join('include', 'llvm', 'Support'), + path.join('include', 'llvm', 'TargetParser'), + path.join('include', 'llvm', 'Frontend'), path.join('lib', 'IR'), + path.join('lib', 'ExecutionEngine'), path.join('lib', 'Transforms', 'InstCombine'), ] + [path.join('lib', 'Target', arch) for arch, defs in LLVM_TARGETS] for subdir in subdirs:
diff --git a/third_party/update-llvm-16.sh b/third_party/update-llvm-16.sh index 1823778..6f906c2 100755 --- a/third_party/update-llvm-16.sh +++ b/third_party/update-llvm-16.sh
@@ -5,20 +5,20 @@ # SwiftShader only requires the llvm project from this repo, and does not wish # to pull in everything else. # This script performs the following: -# * The llvm10-clean branch is fetched and checked out. +# * The llvm16-clean branch is fetched and checked out. # * A sparse checkout of the llvm project is made to a temporary directory. -# * The third_party/llvm-10.0/llvm is replaced with the latest LLVM version. +# * The third_party/llvm-16.0/llvm is replaced with the latest LLVM version. # * This is committed and pushed. -# * The original branch is checked out again, and a merge from llvm10-clean to +# * The original branch is checked out again, and a merge from llvm16-clean to # the original branch is made. THIRD_PARTY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )" -STAGING_DIR="/tmp/llvm-10-update" -CLEAN_BRANCH="llvm10-clean" +STAGING_DIR="/tmp/llvm-16-update" +CLEAN_BRANCH="llvm16-clean" SOURCE_DIR="${STAGING_DIR}/llvm" -TARGET_DIR="${THIRD_PARTY_DIR}/llvm-10.0/llvm" -LLVM_REPO_BRANCH="release/10.x" -BUG_NUMBER="b/152339534" +TARGET_DIR="${THIRD_PARTY_DIR}/llvm-16.0/llvm" +LLVM_REPO_BRANCH="release/16.x" +BUG_NUMBER="b/272710814" SWIFTSHADER_HEAD=`git rev-parse HEAD` @@ -46,10 +46,10 @@ if [[ -d "$TARGET_DIR" ]]; then # Look for the last update change. - LAST_TARGET_UPDATE=`git log --grep="^llvm-10-update: [0-9a-f]\{9\}$" -n 1 --pretty=format:'%h' ${TARGET_DIR}` + LAST_TARGET_UPDATE=`git log --grep="^llvm-16-update: [0-9a-f]\{9\}$" -n 1 --pretty=format:'%h' ${TARGET_DIR}` if [[ ! -z "$LAST_TARGET_UPDATE" ]]; then # Get the LLVM commit hash from the update change. - LAST_SOURCE_UPDATE=`git log $LAST_TARGET_UPDATE -n 1 | grep -oP "llvm-10-update: \K([0-9a-f]{9})"` + LAST_SOURCE_UPDATE=`git log $LAST_TARGET_UPDATE -n 1 | grep -oP "llvm-16-update: \K([0-9a-f]{9})"` if [ $LLVM_HEAD == $LAST_SOURCE_UPDATE ]; then echo "No new LLVM changes to apply" exit 0 @@ -63,9 +63,9 @@ fi fi -COMMIT_MSG=`echo -e "Update LLVM 10 to ${LLVM_HEAD}\n\n${LLVM_CHANGE_LOG}Commands:\n third_party/update-llvm-10.sh\n\nllvm-10-update: ${LLVM_HEAD}\nBug: ${BUG_NUMBER}"` +COMMIT_MSG=`echo -e "Update LLVM 16 to ${LLVM_HEAD}\n\n${LLVM_CHANGE_LOG}Commands:\n third_party/update-llvm-16.sh\n\nllvm-16-update: ${LLVM_HEAD}\nBug: ${BUG_NUMBER}"` -# Switch to the llvm-10-clean branch. +# Switch to the llvm-16-clean branch. git fetch "https://swiftshader.googlesource.com/SwiftShader" $CLEAN_BRANCH git checkout FETCH_HEAD @@ -79,7 +79,7 @@ git commit -m "$COMMIT_MSG" MERGE_SOURCE=`git log HEAD -n 1 --pretty=format:'%h'` -# Push llvm-10-clean branch. +# Push llvm-16-clean branch. git push "https://swiftshader.googlesource.com/SwiftShader" $CLEAN_BRANCH # Switch to the branch in use when calling the script.