Announcement

Collapse
No announcement yet.

Intel Fully Embracing LLVM For Their C/C++ Compilers

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • brad0
    replied
    Originally posted by CommunityMember View Post
    And also IBM (who are moving their XLC compiler team towards improving LLVM), and Facebook too is hiring for LLVM. With all the talent from all of those companies, LLVM is clearly where a lot of the smart money and now talent is heading.
    With almost everyone already using LLVM/Clang or moving in that direction that isn't surprising.

    Leave a comment:


  • omkhar
    replied
    Would be interesting to see if Intel ever moves to rebase Clear Linux entirely on LLVM...

    Leave a comment:


  • CommunityMember
    replied
    Originally posted by paulpach View Post
    What is happening in compilers is basically the same thing that happened in browsers.

    LLVM is the compiler building block with well-written code that everyone is using, with contributions from Apple, Google, and now MS... just like WebKit.
    And also IBM (who are moving their XLC compiler team towards improving LLVM), and Facebook too is hiring for LLVM. With all the talent from all of those companies, LLVM is clearly where a lot of the smart money and now talent is heading.

    GCC is the mature and established open source solution... just like firefox.
    And like Firefox, GCC is heading towards being an "also ran" as far as innovation, as the talent goes elsewhere. Sure, there are a lot of smart people working with gcc, but when push comes to shove, the best talent will take the money, and work where their employer wants to invest, and that is more and more often LLVM.

    The GCC steering committee tried to stem the talent drain by no longer requiring assignment of copyright to FSF, but it is likely too little, too late, for all the deep resources (money) to care, and besides, Stallman is persona non grata to some (previous) GCC developers (resulting in losing additional talent, and while some individuals doubled down, although no new deep talent joined the gcc team).

    GCC showed that independent open source compilers could happen and were worthwhile. It was successful in that effort, and should be commended. And now it has been surpassed by LLVM (with LTO and PGO in the Linux kernel), which is the better compiler for at least some targets. Let open source succeed, and LLVM is one of the successes.

    Of course, those that can only offer FUD, and are apparently afraid of LLVM, and tremble in fear of the eventual stagnation of their personal favorite compiler, will be more than willing to offer allegations about the evilness that is LLVM, but they never, ever offer actual evidence of their assertions. They have decided that the mantra of meritocracy does not matter when their personal ox is gored. They, of course, show they are not in favor of free and open source meritocracy.

    Leave a comment:


  • flashmozzg
    replied
    Originally posted by grigi View Post

    MSVC is based on the Watcom compiler, Watcom really knew their stuff, and was soooo far ahead of competitors at their time. It's still a very solid compiler. Fully closed source.
    LLVM is that good-enough base that has no license restrictions so everyone is using it to cut costs, and avoid actually contributing to open source properly.
    GCC is still the easiest compiler to get up and running for a new architecture. Downside is it's fully open, and many companies don't want to take OSS seriously.

    Having had to integrate with LLVM it seems clean, but was absolute mess with bugs and undefined behavior all over the place. Even the Rust team complains a lot about the undefined behavior being a big issue for them, and it seems a very large portion of their bugs can't be fixed without LLVM fixing that, but that would break API, so they wont. Its permissive license is now limiting it as we now have multiple proprietary branches where code never goes upstream, but they all have a vested interest in steering the project.

    The thing that many people miss, is that CLANG is the very well written project, and it already talks to LLVM, hence LLVM gets all this free publicity.
    It's kinda the opposite. LLVM was designed to be sort of compiler-writer toolbox. GCC explicitly resists being librified. It's really easy to add a new backend to LLVM (as long as it's not something super exotic), juыt as it's really easy to have your own frontend generate LLVM IR. It's almost impossible to do that for GCC. That's why 99% of new languages use LLVM in some port of their pipeline. Even if it's something for web (WASM), java (Kotlin Native, plenty of JIT compilers too) or something entirely different (bpf?).
    Last edited by flashmozzg; 11 August 2021, 08:22 PM.

    Leave a comment:


  • flashmozzg
    replied
    Originally posted by paulpach View Post
    What is happening in compilers is basically the same thing that happened in browsers.

    LLVM is the compiler building block with well-written code that everyone is using, with contributions from Apple, Google, and now MS... just like WebKit.
    MSVC is the king of the hill in windows from Microsoft... just like IE used to be.
    GCC is the mature and established open source solution... just like firefox.
    And we know how it's going to end. I wouldn't be surprised if MSVC 2028 is Clang-based. Clang-cl is already pretty good drop-in replacement great for 99% of use cases (unless you rely on some really arcane hacks). And honestly, I think it'd be pretty neat, since, unlike with situation with the web, there is no "google dicator" behind LLVM. It's open and already provided huge benefit to the compiled languages ecosystem.

    Leave a comment:


  • PerformanceExpert
    replied
    Originally posted by carewolf View Post

    They are.

    The other advantages icc used to have, like autovectorization are largely caught up to. (except good vectorization of FP commands require fast-math)
    Indeed, it is hard to do a fair comparison with other compilers due to the very aggressive default settings.

    ICC still has all the SPEC tricks (just like AOCC and XL). And while the latest version is based on LLVM (again like AOCC), it will remain proprietary.

    Leave a comment:


  • aspen
    replied
    Originally posted by coats View Post
    ...The reason nobody wants to contribute to GCC is because it's GPL which is, from a legal standpoint, the most annoying and obnoxious license ever conceived and appreciated by nobody except literal software cultists who think software deserves more rights than human beings...

    No, the reason I use GPL is that I don't want 419701 lines of my (environmental modeling) code stolen, with my attribution removed.
    I mean... GPL isn't the only license which forbids that? I personally prefer MPLv2, which is similar to LGPL, but not viral to the entire project - if you change my MPL'd code, you have to open source your changes to it, but idc about your code, go do whatever with it.

    There's the Zlib license, which pretty much forbids people from pretending that they made something that they didn't. Pretty sure most BSD licenses require attribution of some sort, too.

    Leave a comment:


  • carewolf
    replied
    Originally posted by thebear View Post
    So I tried this on a project swapping CXX to icpx. I note that C++ concepts not yet supported, but that's OK. I simply added a bunch of conditional macros based on __cpp_concepts >= 201907L.

    What was more surprising though was that __FAST_MATH__ macro was defined even for -O0 (I have some code which is invalidated if compiled with imprecise floating point arithmetics). So I had to explicitly pass -fp-model precise for the macro not to be defined. It would be a shame if those reported floating point performance gains over gcc/clang just boils down to more aggressive default optimization levels...
    They are.

    The other advantages icc used to have, like autovectorization are largely caught up to. (except good vectorization of FP commands require fast-math)

    Leave a comment:


  • coats
    replied
    ...The reason nobody wants to contribute to GCC is because it's GPL which is, from a legal standpoint, the most annoying and obnoxious license ever conceived and appreciated by nobody except literal software cultists who think software deserves more rights than human beings...

    No, the reason I use GPL is that I don't want 419701 lines of my (environmental modeling) code stolen, with my attribution removed.

    Leave a comment:


  • icaci
    replied
    Originally posted by jayN View Post
    Here's a strange detail. In the last q/a of the techdecoded webinar, "Introducing the Next Gen of Intel® Parallel Studio: Transitioning to the Latest HPC Software Development Suite

    ", they state that icx and ifx will still need to be paired with gcc headers and glibc library.
    Why is that strange? GLIBC is the standard system library on Linux and GCC is the standard system compiler there. Intel doesn't need to constantly follow up and replicate what is already provided by the GCC/GLIBC combo. If Intel were to make their own system library that is completely hosted in their own tools, you won't need GCC or GLIBC headers.

    Leave a comment:

Working...
X