• ndesaulniers 3 days ago

    Nice write up. I admire the author's work in general.

    I wrote a little more about critical edge splitting and out-of-SSA:

    https://nickdesaulniers.github.io/blog/2023/01/27/critical-e...

    • rurban 2 days ago

      Good explanation why Go's compiler sucks on some/most cases (with lot of If's).

      • rajnathani 3 days ago

        I thought that because GoLang has an LLVM backend, that register allocation was handled by LLVM itself?

        • hu3 2 days ago

          Go's backend is custom.

          They consider LLVM too slow and made their own.

          https://github.com/go-llvm/llgo is third party and archived.

          • cedws a day ago

            After trying Rust for a while, maybe they’re right. One of the reasons I don’t think I could work with Rust is that Go has spoiled me with fast compile times for so long.

            • erik_seaberg 2 days ago

              gccgo supports dynamic linking and foreign functions, and allegedly generates better-optimized code. The default compiler can share OS threads between goroutines, but not other languages (I guess stacks are no longer segmented but they could be copied?)

          • yxhuvud 3 days ago

            Who thought it was a good idea to have scrolling change the page history?

            • seanw444 3 days ago

              On a Red Hat site no less. Man, they really are taking a tumble.

              • blipvert 3 days ago

                Jeepers! That is horrific.

                • undefined 3 days ago
                  [deleted]