I'm playing with #llvm - trying to follow what it's doing in #mesa compiling OpenCL shaders. Now, I've taken the debug IR dump from the AMD driver and written that to a .ll, fed it into llvm's 'llc' program and thrown it --debug (after building my own llvm build). Now just a 36700 line debug file to look at 🙂
@uma @kaleb_haugen "does not have any kind of upstream code" is not true. Every #BSD system includes *some* software in its base that's pulled from some other party. E.g. #FreeBSD has #OpenZFS, #Heimdal, #LLVM and #OpenSSL in its base, to name just a few.
But then, these aren't just "packaged", they're pulled into the single source repository from which the system is built and care is taken they integrate "perfectly".
#bsd #freebsd #openzfs #heimdal #openssl #llvm
Tak więc chciałem zrobić nowy, cotygodniowy snapshot #LLVM dla #Gentoo, i okazało się, że znów posypało się na 32-bitowych architekturach (tym razem, jak się okazuje, tylko na GCC). Bisekcja przypisała winę następującej łatce:
https://reviews.llvm.org/D159115#4638037
Najlepsze w tym wszystkich, że ta zmiana wylądowała zaraz po poprzednim snapshot'cie. A przyczyna? Oczywiście unikanie `stdint.h` za wszelką cenę, bo lepiej walnąć jakiś przypadkowy typ jak `unsigned long long` zamiast `uintptr_t`.
(podziękowania dla @thesamesam za sugestię użycia `uintptr_t`)
Stand back. I am compiling #llvm 16.0.6 and I don't know how big this thing is going to get.
My laptop's CPU is 73C.
Myślicie, że jest wam dzisiaj gorąco?
Najpierw walczyłem z nowym segfaultem w #pydantic 2 z Pythonem 3.12. Nie udało mi się zajść daleko, co najwyżej ustalić, że to #heisenbug.
https://github.com/pydantic/pydantic/issues/7181
Potem testowałem świeży snapshot #LLVM — tylko po to, by odkryć, że testy znów padly na 32-bitowych platformach. Po bisect'cie, okazało się, że przyczyną była zmiana "NFCi" (niezamierzająca zmian funkcjonalnych) do logiki hashowania — wygląda na to, że LLVM drukuje teraz funkcje w kolejności zależnej od platformy.
https://reviews.llvm.org/D158217#4600956
Na koniec walczyłem z segfaultem w testach #trimesh. Najwyraźniej jest to regresja związana z betą #numpy 1.26.0, więc wypracowałem backtrace i zgłosiłem błąd.
#python #gentoo #numpy #trimesh #llvm #heisenbug #pydantic
Compilers Mastodon, does anyone know of examples where major C compilers exploit UB of misaligned loads/stores to produce silent misbehavior?
That's excluding
- Generating instructions that trap if misaligned (e.g. x86 movdqa), because that's not silent.
- Exploiting code that does more than just making misaligned loads/stores, such as calling __builtin_assume_aligned.
(cc @regehr... hmm, who else should I cc. I wish Mastodon had search. #compilers #llvm #gcc)
Drodzy użytkownicy #Gentoo,
Zbliżamy się do wydania #LLVM 17.0.0. Wersje RC są już w ::gentoo, zamaskowane brakiem słów kluczowych. Będziemy wdzięczni za testowanie! W tym celu wykorzystać można poniższy fragment package.accept_keywords:
```
=dev-ml/llvm-ocaml-17.0.0_rc* **
=dev-python/lit-17.0.0_rc* **
=dev-util/lldb-17.0.0_rc* **
=dev-python/clang-python-17.0.0_rc* **
=sys-devel/clang-17.0.0_rc* **
=sys-devel/clang-common-17.0.0_rc* **
=sys-devel/clang-runtime-17.0.0_rc* **
=sys-devel/lld-17.0.0_rc* **
=sys-devel/llvm-17.0.0_rc* **
=sys-devel/llvm-common-17.0.0_rc* **
=sys-libs/compiler-rt-17.0.0_rc* **
=sys-libs/compiler-rt-sanitizers-17.0.0_rc* **
=sys-libs/libcxx-17.0.0_rc* **
=sys-libs/libcxxabi-17.0.0_rc* **
=sys-libs/libcxxrt-17.0.0_rc* **
=sys-libs/libomp-17.0.0_rc* **
=sys-libs/llvm-libunwind-17.0.0_rc* **
=dev-libs/libclc-17.0.0_rc* **
=dev-libs/mlir-17.0.0_rc* **
~sys-devel/llvmgold-17 **
~sys-devel/clang-toolchain-symlinks-17 **
~sys-devel/lld-toolchain-symlinks-17 **
~sys-devel/llvm-toolchain-symlinks-17 **
```
Wrzuciłem też pierwsze tygodniowe migawki 18.x (czyli głównej gąłęzi git). Dla tej wersji można użyć poniższego fragmentu:
```
=dev-ml/llvm-ocaml-18.0.0_pre* **
=dev-python/lit-18.0.0_pre* **
=dev-util/lldb-18.0.0_pre* **
=dev-python/clang-python-18.0.0_pre* **
=sys-devel/clang-18.0.0_pre* **
=sys-devel/clang-common-18.0.0_pre* **
=sys-devel/clang-runtime-18.0.0_pre* **
=sys-devel/lld-18.0.0_pre* **
=sys-devel/llvm-18.0.0_pre* **
=sys-devel/llvm-common-18.0.0_pre* **
=sys-libs/compiler-rt-18.0.0_pre* **
=sys-libs/compiler-rt-sanitizers-18.0.0_pre* **
=sys-libs/libcxx-18.0.0_pre* **
=sys-libs/libcxxabi-18.0.0_pre* **
=sys-libs/libcxxrt-18.0.0_pre* **
=sys-libs/libomp-18.0.0_pre* **
=sys-libs/llvm-libunwind-18.0.0_pre* **
=dev-libs/libclc-18.0.0_pre* **
=dev-libs/mlir-18.0.0_pre* **
~sys-devel/llvmgold-18 **
~sys-devel/clang-toolchain-symlinks-18 **
~sys-devel/lld-toolchain-symlinks-18 **
~sys-devel/llvm-toolchain-symlinks-18 **
```
#lldb #lld #clang #llvm #gentoo
Optimizing Rust programs with PGO and BOLT using cargo-pgo, https://kobzol.github.io/rust/cargo/2023/07/28/rust-cargo-pgo.html.
Feedback-directed optimisations made easy with `cargo-pgo`! Neat.
#rustlang #compiler #performance #pgo #bolt #llvm
Looking for a new gig?
How about Program Director at the #LLVM Foundation?
Give it a look:
#llvm #fedihire #opensource #foss #boost
The community is magic sometimes. After trying all kinds of things and hitting dead-ends, I posted the motivating example publicly. Upstream fixed it pretty easily! https://reviews.llvm.org/D156532 #LLVM
Re-Targetable #LLVM C/C++ Compiler For #RISCV
https://semiengineering.com/re-targetable-llvm-c-c-compiler-for-risc-v/
Copy hunting
https://tigerbeetle.com/blog/2023-07-26-copy-hunting/
Using #llvm IR to hunt for unexpected memcpys
Sometimes, I think #LLVM reviewers take testing too far. Case in point: https://reviews.llvm.org/D156318
Big thanks to @tonymongkolsmai, @jcinPDX, @sri and other members of the Intel OneAPI Software team!
big +1 for ease of use with the new updates to the #OneAPI HPC toolkit, specifically the new #MPI wrappers for the #LLVM based #C, #Cpp and #Fortran compilers
#HPC
😊😊😊
#oneapi #mpi #llvm #c #cpp #fortran #hpc
Big thanks to @tonymongkolsmai, @j_c_inPDX, @sramkrishna and other members of the Intel OneAPI Software team!
big +1 for ease of use with the new updates to the #OneAPI HPC toolkit, specifically the new #MPI wrappers for the #LLVM based #C, #Cpp and #Fortran compilers
😊😊😊
#oneapi #mpi #llvm #c #cpp #fortran