perf: upgrade to LLVM 22 (#13545)
This PR upgrades LLVM from version 19 to version 22. This brings general performance improvements of up to 5% instructions depending on benchmark.
This commit is contained in:
parent
e6dfdfdcee
commit
8d2b5d08a1
4 changed files with 9 additions and 9 deletions
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
|
|
@ -253,7 +253,7 @@ jobs:
|
|||
"enabled": level >= 2,
|
||||
"test": true,
|
||||
"shell": "nix develop .#oldGlibc -c bash -euxo pipefail {0}",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/19.1.2/lean-llvm-x86_64-linux-gnu.tar.zst",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/22.1.4/lean-llvm-x86_64-linux-gnu.tar.zst",
|
||||
"prepare-llvm": "../script/prepare-llvm-linux.sh lean-llvm*",
|
||||
"binary-check": "ldd -v",
|
||||
// foreign code may be linked against more recent glibc
|
||||
|
|
@ -278,7 +278,7 @@ jobs:
|
|||
"test": level >= 1,
|
||||
"secondary": level == 0,
|
||||
"shell": "nix develop .#oldGlibc -c bash -euxo pipefail {0}",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/19.1.2/lean-llvm-x86_64-linux-gnu.tar.zst",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/22.1.4/lean-llvm-x86_64-linux-gnu.tar.zst",
|
||||
"prepare-llvm": "../script/prepare-llvm-linux.sh lean-llvm*",
|
||||
"binary-check": "ldd -v",
|
||||
// foreign code may be linked against more recent glibc
|
||||
|
|
@ -349,7 +349,7 @@ jobs:
|
|||
"test": false, // Tier 2 platform
|
||||
"enabled": level >= 2,
|
||||
"shell": "bash -euxo pipefail {0}",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/19.1.2/lean-llvm-x86_64-apple-darwin.tar.zst",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/22.1.4/lean-llvm-x86_64-apple-darwin.tar.zst",
|
||||
"prepare-llvm": "../script/prepare-llvm-macos.sh lean-llvm*",
|
||||
"binary-check": "otool -L",
|
||||
"tar": "gtar", // https://github.com/actions/runner-images/issues/2619
|
||||
|
|
@ -362,7 +362,7 @@ jobs:
|
|||
"CMAKE_OPTIONS": "-DLEAN_INSTALL_SUFFIX=-darwin_aarch64",
|
||||
"release": true,
|
||||
"shell": "bash -euxo pipefail {0}",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/19.1.2/lean-llvm-aarch64-apple-darwin.tar.zst",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/22.1.4/lean-llvm-aarch64-apple-darwin.tar.zst",
|
||||
"prepare-llvm": "../script/prepare-llvm-macos.sh lean-llvm*",
|
||||
"binary-check": "otool -L",
|
||||
"tar": "gtar", // https://github.com/actions/runner-images/issues/2619
|
||||
|
|
@ -379,7 +379,7 @@ jobs:
|
|||
"test": true,
|
||||
"shell": "msys2 {0}",
|
||||
"CMAKE_OPTIONS": "-G \"Unix Makefiles\"",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/19.1.2/lean-llvm-x86_64-w64-windows-gnu.tar.zst",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/22.1.4/lean-llvm-x86_64-w64-windows-gnu.tar.zst",
|
||||
"prepare-llvm": "../script/prepare-llvm-mingw.sh lean-llvm*",
|
||||
"binary-check": "ldd",
|
||||
},
|
||||
|
|
@ -391,7 +391,7 @@ jobs:
|
|||
"enabled": level >= 2,
|
||||
"test": true,
|
||||
"shell": "nix develop .#oldGlibcAArch -c bash -euxo pipefail {0}",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/19.1.2/lean-llvm-aarch64-linux-gnu.tar.zst",
|
||||
"llvm-url": "https://github.com/leanprover/lean-llvm/releases/download/22.1.4/lean-llvm-aarch64-linux-gnu.tar.zst",
|
||||
"prepare-llvm": "../script/prepare-llvm-linux.sh lean-llvm*",
|
||||
},
|
||||
// Started running out of memory building expensive modules, a 2GB heap is just not that much even before fragmentation
|
||||
|
|
|
|||
|
|
@ -277,7 +277,7 @@ void object_compactor::insert_mpz(object * o) {
|
|||
size_t data_sz = lean_usize_mul_checked(sizeof(mp_limb_t), nlimbs);
|
||||
size_t sz = lean_usize_add_checked(sizeof(mpz_object), data_sz);
|
||||
mpz_object * new_o = (mpz_object *)alloc(sz);
|
||||
memcpy(new_o, to_mpz(o), sizeof(mpz_object));
|
||||
memcpy((void*)new_o, to_mpz(o), sizeof(mpz_object));
|
||||
lean_set_non_heap_header((lean_object*)new_o, sz, LeanMPZ, 0);
|
||||
__mpz_struct & m = new_o->m_value.m_val[0];
|
||||
// we assume the limb array is the only indirection in an `__mpz_struct` and everything else can be bitcopied
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# The radar environment variables must be provided.
|
||||
# See also the https://github.com/leanprover/radar readme.
|
||||
|
||||
LLVM_RELEASE=19.1.2
|
||||
LLVM_RELEASE=22.1.4
|
||||
LLVM_TARBALL="$RADAR_CACHE/llvm/$LLVM_RELEASE.tar.zst"
|
||||
|
||||
if [ ! -f "$LLVM_TARBALL" ]; then
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# The radar environment variables must be provided.
|
||||
# See also the https://github.com/leanprover/radar readme.
|
||||
|
||||
LLVM_RELEASE=19.1.2
|
||||
LLVM_RELEASE=22.1.4
|
||||
LLVM_TARBALL="$RADAR_CACHE/llvm/$LLVM_RELEASE.tar.zst"
|
||||
|
||||
if [ ! -f "$LLVM_TARBALL" ]; then
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue