9 ms·
LLVM 11.0
- tony 6y agoRelease notes: https://releases.llvm.org/11.0.0/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/docs/ReleaseNotes.html
- dang 6y agoChanged to that from https://lists.llvm.org/pipermail/llvm-announce/2020-October/000089.html https://lists.llvm.org/pipermail/llvm-announce/2020-October/.... Thanks!
- zmodem 6y agoI submitted the announcement email because it links to release notes from all the projects (i.e. Clang, LLD, Flang, etc.) and not just the main LLVM ones. (Also it seems the version number changed from 11.0.0 to 11.0?)
- dang 6y agoThat makes sense, but lists of links don't make good HN submissions, since there isn't much to discuss beyond the lowest common denominator of the items on the list. It's best to pick the most interesting element from the list and submit that—especially since HN is itself a list of links already. https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sort=byDate&type=comment&query=denominator%20list%20by:dang https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor... (yes, we always do that with x.0.0 version numbers)
- azhenley 6y agoThe thing that caught my eye in the release notes is the blurb about Zig: Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. In addition to supporting LLVM as an optional backend, Zig links Clang and LLD to provide an out-of-the-box cross compilation experience, not only for Zig code but for C and C++ code as well. Using a sophisticated caching system, Zig lazily builds from source compiler-rt, mingw-w64, musl, glibc, libcxx, libcxxabi, and libunwind for the selected target - a “batteries included” drop-in for GCC/Clang that works the same on every platform.
- m4r35n357 6y agoYep, that is a highly significant feature! https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html https://andrewkelley.me/post/zig-cc-powerful-drop-in-replace...
- Shoop 6y agoI vouched for your comment but it looks like you may be shadow banned. Just an FYI -- you might want to email the mods, they're quite nice people.
- seg_lol 6y agoWhat specifically, that they mention Zig or that you learned of Zig or that Zig has a lazy build system or ??? The thing I really find interesting about Zig is the compile time function evaluation [1] and how it can stand-in for macros, code generation, precomputing values, etc. I think of CTFE as a continuation that comes baked into the binary from an earlier point in time, T-days_ago. As for this release, I am stoked to see Flang making progress. I am excited about Fortran in the browser. The interesting thing of note is that Zig is in the process of creating their own backend, but I don't see them dropping LLVM any time soon. An alternate backend is a great way to find bugs in codegen. [1] https://andrewkelley.me/post/zig-programming-language-blurs-line-compile-time-run-time.html https://andrewkelley.me/post/zig-programming-language-blurs-...
- mhh__ 6y agoI'm probably biased but comptime doesn't seem as elegant as the mechanism D provides for doing CTFE (i.e. I prefer a separation of quasi-template parameters)
- nikki93 6y agoCan you eg. generate a struct with fields based on an existing struct or on a comptime array in D? Can you receive a structure literal of anonymous type and iterate over it at compile time? (curious bc. these were a few things I found straightforward in Zig, and in C++ the main proposals involve tons of new metaclasses and reflection features for)
- gutino 6y agoAnyone was able to use test Zig in Windows? last time i tried it, it compiled but i was not able to print a hello world. Thank you.
- sobeston 6y agoIt's been working great on windows for me for the last year or so. When did you last try it?
- pjmlp 6y ago> The macros enable users to write C/C++ Vector Length Agnostic (VLA) loops, What a great idea to use VLA to mean something else than it does for ISO C99.
- sgillen 6y agoOh, good catch that's a big oof. I wonder if they were just unaware of this feature or what... I am excited for this feature though, naming aside.
- rudolph9 6y agoIs this sarcasm? I can’t tell.
- young_unixer 6y agoYes.
- MaxBarraclough 6y agoRelevant page: https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNot...
- formerly_proven 6y agoWhy not vector size agnostic?
- 6y ago
- einpoklum 6y agoA few items from the release notes that caught my attention: * The debug information now has a feature which lets your debugger recover the value of an optimized-out value in certain (common) circumstances. I wish gdb and lldb pick on up this quickly and that it doesn't need you to specify anything explicitly. * If you're doing JITing with LLVM, you can now run your code's static initializations (which apparently you couldn't before? :-O ) * Lots of RISC-V-related work (features, optimization improvements and bug fixes). * Nothing new for PTX (the CUDA IR which you can use LLVM to generate).
- DoofusOfDeath 6y ago> The debug information now has a feature which lets your debugger recover the value of an optimized-out value in certain (common) circumstances. I wish gdb and lldb pick on up this quickly and that it doesn't need you to specify anything explicitly. It drives me nuts when I compile code with "-ggdb -gdwarf-4 -O0" and gdb still reports some symbols as "optimized away". I hope the bullet point above refers to this.
- xxpor 6y agoI can't say I've ever seen that (I still use dwarf 3 however). Is there a certain pattern to it?
- jmorse2 6y agoIt's DWARF-5 only: variable values can be expressed in terms of a parameters value on entry to the function. Depending on the circumstances, that value can be recovered from further up the stack frame. (Ninja edit: although tuning for GDB might coax LLVM to emit the pre-standardised form, without DWARF-5).
- xxpor 6y agoWhen I have to debug a production crash (compiled with -O3), that's usually what I do today. Basically, the value can be derived from something that's static/global, eventually. Now that I think about it though, I'm kind of surprised gdb hasn't done that for me historically, but maybe the debug info isn't detailed enough and I can do it just because I can read the actual source.
- stabbles 6y agoAre there any benchmarks that show compilation times using LLVM 11 versus older versions for representative projects?
- kibwen 6y agoI don't have a link on me, but I recall that Rust reported some improved compilation time from upgrading to LLVM 11 (which is the default for 1.47, released last week).
- faitswulff 6y agoIIRC llvm 11 addressed a regression in compilation times.
- gjasny 6y agoOur internal mono-repo with about 11000 C++ compilation units took about the same time with clang-11 compared to clang-10. I used the Ubuntu 20.04 packages from apt.llvm.org for testing.
- ChrisRackauckas 6y agoJulia devs are posting things like: julia-master with llvm10: % julia-master --project=. --startup-file=no -e '@time using Plots' 4.028043 seconds (6.51 M allocations: 470.491 MiB, 4.07% gc time, 16.62% compilation time) llvm11: % julia-master --project=. --startup-file=no -e '@time using Plots' 3.392166 seconds (5.97 M allocations: 431.075 MiB, 3.46% gc time, 17.22% compilation time) So it looks promising that the startup + compilation time is improved.
- CyberDildonics 6y agoI wonder if cutting out a few million allocations might help
- wallnuss 6y agoJulia is particularly sensitive to LLVM compile times. LLVM 11 did improve those over LLVM 10 (which had noticeable regressions versus LLVM 9). As an example see https://github.com/JuliaLang/julia/issues/37915#issuecomment-707368026 https://github.com/JuliaLang/julia/issues/37915#issuecomment...
- GolDDranks 6y agoAVR is an official backend now. Rust has also recently added support for AVR. One more backend I'd like to see is the Espressif (ESP32 etc.) one. They've trying to upstream the support, but it seems that the lack of reviewers from the part of LLVM is slowing down the process...?
- biggerfisch 6y agoI was under the impression from reading the patch comments [1] that it was more of an issue with them not having an open copy of their ISA documentation (which then is causing a lack of possible reviewers) [1] https://reviews.llvm.org/D64830 https://reviews.llvm.org/D64830
- GolDDranks 6y agoI stand corrected.
- black_puppydog 6y agoI've been waiting for Espressif being upstreamed myself. I only arrived in the ecosystem about two months ago, but it has been absolutely amazing to see the team work. And by that I mean the esp-rs group, but also the rust-embedded working group in general. They congregate on matrix and most "remote" companies could probably learn a bit or two about remote development from them.
- snvzz 6y agoThe m68k (68000 family) backend effort is trying to get upstreamed, too. The progress is covered here[0] somewhat. https://secure.m68k.info/ https://secure.m68k.info/
- sroussey 6y agoFor more details, see the specific release notes: https://releases.llvm.org/11.0.0/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNot... https://releases.llvm.org/11.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/tools/clang/tools/extra/doc... https://releases.llvm.org/11.0.0/tools/flang/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/tools/flang/docs/ReleaseNot... https://releases.llvm.org/11.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/tools/lld/docs/ReleaseNotes... https://releases.llvm.org/11.0.0/tools/polly/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/tools/polly/docs/ReleaseNot... https://releases.llvm.org/11.0.0/projects/libcxx/docs/ReleaseNotes.html https://releases.llvm.org/11.0.0/projects/libcxx/docs/Releas...
- giancarlostoro 6y agoKind of interesting, I was looking at the wikipedia page for LLVM and noticed Delphi was listed, and sure enough the more modern compilers for Delphi are LLVM based[0]. I remember discussing with people just a few days ago here on HN about how the Delphi compiler used to be blazing fast due to being written in Assembly[1]. It's kind of nice to see that others are taking full advantage of LLVM at an official capacity at least, making it much more tried and tested, not that it wasn't already tried and tested before. I think Rust / Swift as well don't hurt. It would be nice to see Kotlin Native taken a lot more seriously by JetBrains on the other hand. [0]: http://docwiki.embarcadero.com/RADStudio/Sydney/en/LLVM-based_Delphi_Compilers http://docwiki.embarcadero.com/RADStudio/Sydney/en/LLVM-base... [1]: https://news.ycombinator.com/item?id=24735969 https://news.ycombinator.com/item?id=24735969
- schaefer 6y agoAre there any estimates within the LLVM community when c++20 feature complete might be reached?