It, sadly, goes deeper than that, past architecture to philosophy.<p>LLVM is designed to be modularized and embedded in other binaries and toolchains, which makes it easier to build extensions and tooling around it.<p>In addition to having a mountain of legacy code, gcc&#x27;s project steering is philosophically opposed to allowing non-free (as in GPL) plugins [<a href="https:&#x2F;&#x2F;lwn.net&#x2F;Articles&#x2F;582242&#x2F;" rel="nofollow">https:&#x2F;&#x2F;lwn.net&#x2F;Articles&#x2F;582242&#x2F;</a>]. Because of this, developers looking for the most flexible toolchain seem to be backing slowly toward the exist regarding gcc, as the Clang &#x2F; LLVM steering team has made clear that they don&#x27;t see similar incompatibilities between their tool and the way developers choose to use it.<p>There is a project going on to break the gcc down into components [<a href="https:&#x2F;&#x2F;gcc.gnu.org&#x2F;wiki&#x2F;rearch" rel="nofollow">https:&#x2F;&#x2F;gcc.gnu.org&#x2F;wiki&#x2F;rearch</a>], so time will tell what comes of these two toolchains.