Live data from Hacker News

Intel C/C++ compilers complete adoption of LLVM

software.intel.com

71–80 of 169 posts

Re: Intel C/C++ compilers complete adoption of LLVM

#71
post #68

Earlier quoted context omitted.

There is significant investment in building Linux with Clang so I wouldn't count on Linux keeping GCC relevant forever. Doubly so with the inevitable rustc requirement.

The ongoing efforts to add a Rust frontend to GCC prove otherwise. No Rust in GCC? No play.

Unlike C/C++, there is one canonical rustc where the language is developed and GCC will likely always play catch up.

Re: Intel C/C++ compilers complete adoption of LLVM

#72
post #28

Earlier quoted context omitted.

> Competition is good. On the other hand, collaboration is also good. Why waste time reinventing the wheel?

Wasn't LLVM reinventing the wheel at the time? They could just collaborate to GCC.

They wanted to, but RMS wasn't interested at that time: https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00...

I have also been told by more than one person that does professional compiler development that GCC's codebase is very difficult to work with. At least some commentary I've read suggests that this was a deliberate choice on the part of the GNU project.

Re: Intel C/C++ compilers complete adoption of LLVM

#73

Anyone actually use Intel compilers

Intel tried to convince us, and I think I still have a todo down on the list to try their compilers out. They gave up their attempts quickly when they discovered we have very little code that would benefit from vectorization.

Re: Intel C/C++ compilers complete adoption of LLVM

#74
post #15

Earlier quoted context omitted.

Many of the proprietary C++ compilers (Intel included) are just repackaging of the EDG front end. The monoculture has existed for a long time in the C++ world due to the complexity of implementing the language to spec. Honestly, I think it will be great to have one less set of compiler-specific oddities to worry about.

MSVC does not use EDG for the frontend as far as I'm aware. IntelliSense does, though.

Not anymore, they changed that in the last few years

Re: Intel C/C++ compilers complete adoption of LLVM

#75
post #66
post #59

Earlier quoted context omitted.

> Android is a great example. Typical Qualcomm/Mediatek/etc. behavior: take a "stable" kernel, stuff it with custom undocumented drivers and junk, be stuck on that version forever. I don't think that's such a great example in this context. Qualcomm, Mediatek, etc. are hardware vendors after all. Software to them is a necessary evil, not a reason d'être or complementary tool (as it is for NVIDIA and Intel). Their cust…

Intel and NVIDIA make their money selling hardware.

> "NVIDIA is a software-defined company today," Huang said, "with rich software content like GeForce NOW, NVIDIA virtual workstation in the cloud, NVIDIA AI, and NVIDIA Drive that will add recurring software revenue to our business model."

https://www.msn.com/en-us/money/technologyinvesting/nvidia-i...

It's a very similar story for Intel. NVIDIA and Intel are selling hardware because of their software portfolio. How many GPUs would NVIDIA sell in the HPC market if it wasn't for CUDA and the various support libraries around it?

Intel's non-client solution revenue was over 40% of their total revenue in 2020. This includes their (software-) AI solutions, applications, licence business and services. So Intel, too makes a significant amount of money from software and services around their software ecosystem.

Re: Intel C/C++ compilers complete adoption of LLVM

#76
post #24

Earlier quoted context omitted.

What that sentence actually means is "we don't want to help our competition (AMD, NVIDIA) but we don't want to re-implement the wheel". The API and fundamental part of LLVM is its IR, LLVM-IR, which is where most optimizations happen. From this point-of-view, LLVM is a "platform", and an extremely brittle one: every release has breaking changes to the IR, the IR is constantly evolved to support new hardware and new o…

ISPC is not stuck on LLVM 7. Only fails on 12 currently, works on 11 and earlier: https://github.com/freebsd/freebsd-ports/blob/85cccf4f15c42d... But hopefully that will be fixed soon.

+1 thanks for the correction, should have verified this. Last time I used ISPC it was using an extremely outdated LLVM version (5) or so, and it took years to move it to LLVM 7. I wasn't aware that they have been slowly migrating to newer LLVM versions.

Re: Intel C/C++ compilers complete adoption of LLVM

#77
post #47
post #27

Earlier quoted context omitted.

> Don't want to end up with every C/C++ compiler being a clang skin in the same way as (almost) every browser is a chrome skin. Why not ? There is one open C++ spec, that's really hard to implement, so we have a dozen C++ compilers that are impossible to support properly because they each have their own set of different ten thousand bugs. The value of supporting all of this is really small in practice, and the cost f…

Clang is lagging behind in C++ 20 support while MSVC is miles ahead. LLVM is also getting slower and slower every release.

So?

I don't see how focusing the available manpower on one implementation instead of splitting it over 10 different implementations would make this worse.

I do see how it would make this much better.

What one implementation lacks, another implementation provides. This is a weakness of the current ecosystem. Most software projects restrict themselves to the minimum common denominator, and splitting manpower across compilers lowers it.

Re: Intel C/C++ compilers complete adoption of LLVM

#78
post #9

I'm not sure I love this. I mean, LLVM is awesome and everthing, but software monocultures are pretty bad. It's not like the situation is dire yet (given that there are also GCC and MSVC), but you can imagine a situation in a couple of years when Microsoft goes "yeah, we're also gonna go with LLVM now" and also GCC starting to fade away. It's a bit concerning. Also: if icc is going to go with LLVM as a backend, then…

The recent CPPCast episode on LFortran might shed some light on that?

https://cppcast.com/lfortran/

In it, the guest talks about how he couldn't rely on LLVM for things like optimizing array operations; LLVM apparently does a poor job of that so he had to implement his own. Given that one of the key selling points of Intel's compiler is that it does a better job with SIMD optimizations, it may be exactly the same story here.

Re: Intel C/C++ compilers complete adoption of LLVM

#79
This is exactly why I've been concerned about LLVM's use of a non-copyleft license: unlike with GCC, vendors can create their own proprietary extensions and optimizations without contributing them back to the community.

(In the past, people have dismissed such concerns, saying that it would be impractical for anyone to actually do such a thing. But this project by Intel shows that it isn't just possible--in fact, it's almost inevitable.)

Re: Intel C/C++ compilers complete adoption of LLVM

#80

This is exactly why I've been concerned about LLVM's use of a non-copyleft license: unlike with GCC, vendors can create their own proprietary extensions and optimizations without contributing them back to the community. (In the past, people have dismissed such concerns, saying that it would be impractical for anyone to actually do such a thing. But this project by Intel shows that it isn't just possible--in fact, it'…

> In the past, people have dismissed such concerns

The problem is GCC made these concerns completely irrelevant. You wanted refactoring support for C or C++? Either build it on clang or get screamed at by RMS for leaking GCC internals when text base search and replace was enough for him in the early 80s.

The simple fact is that there is no GNU based alternative to clang/llvm.

Post reply on HN