Logo
Back to Blog

The C++ Compiler Tier List: Ranking LLVM, GCC, MSVC and the Rest

Where LLVM, GCC, MSVC, Circle, and Comeau actually land.

By Coding Jesus-
The C++ Compiler Tier List: Ranking LLVM, GCC, MSVC and the Rest

The C++ Compiler Tier List: Ranking LLVM, GCC, MSVC and the Rest

Everyone has a favorite C++ compiler, and most of them are wrong. Here's where the ones that matter actually land, from the tooling that quietly runs the industry down to the stuff that's been dead for over a decade.

S tier: LLVM / Clang

Clang sits at the top, and it's not close. The reason isn't raw speed, it's everything around the compiler. You get the best diagnostics in the business, error messages that tell you what you actually did wrong instead of dumping three hundred lines of template soup on you. Then there's the tooling ecosystem nobody else can match: clang-tidy, clangd, clang-format, the sanitizers. Half of a modern C++ workflow is built on LLVM whether you realize it or not. If you're starting something new, this is the default.

A tier: GCC

GCC is peak performance and the Linux standard. It's the compiler most of the open-source world builds against, it's been battle-tested for decades, and on raw codegen it will often squeeze out numbers the others can't. So why not S? Historically its diagnostics and tooling story trailed Clang, and at the very top that's the tiebreaker. Make no mistake, this is an elite compiler. If your world is Linux and you care about the last few percent of performance, GCC earns the spot.

B tier: MSVC and NVC++

MSVC is your best bet on Windows, full stop. If you're building Windows software, you're using it, and it's good at that job. It gets docked because it's historically been slower to pick up new language features than Clang or GCC. That gap has narrowed, but the reputation was earned.

NVC++, NVIDIA's compiler, is a specialist. It lives in the GPU and HPC world, where it does things like offloading parallel algorithms straight to the device. Inside that niche it's genuinely useful. Outside of it, almost nobody touches it. Great at one thing, irrelevant to most people, which is exactly what B tier is for.

D tier: Circle

Circle in D is going to raise some eyebrows, and it should. On pure technical ambition, this is some of the most interesting work happening in C++. It's a from-scratch compiler with genuinely bleeding-edge extensions, including a borrow-checking, memory-safe dialect that pulls Rust's safety model into C++. As a feat of engineering it's absurd, over three hundred thousand lines, built by one person.

That last part is also the problem. Circle is effectively a one man project, and the signal on it went the wrong way. In late 2024 the author, Sean Baxter, posted that after eight years of solo effort he was heading back onto the job market and looking for full-time work, ideally in-office in NYC. Read that for what it is. When the only person building a compiler needs a day job again, solo development on that compiler slows down. Pair that with the reality that companies adopt new standards at a glacial pace anyway, and a single vendor experimental compiler becomes very hard to bet a real codebase on. Fascinating to watch. Not something I'd put into production. D tier.

F tier: Comeau

Comeau was, once upon a time, the most standards-conformant C++ compiler on earth. It was the only mainstream compiler that fully supported export templates, it was built on the respected EDG front end, and it worked by translating your C++ down into C. For its era it was a serious piece of software that people took seriously.

It was last updated in October 2008. It has been abandonware ever since. Respect the history, but for anyone writing code today it's a museum exhibit. F tier.

Where this leaves you

With all that said, don't outsource your judgment to a tier list, not even mine. Know why each one lands where it does, then decide for yourself.

Sources