Search code examples
c++gccvisual-c++clangllvm

What are the names of different parts of GCC, Apple LLVM, and MSVC compilers?


I'm trying to understand the names of different parts of popular compilers. The compilers I'm comparing are the GNU Compiler Collection, Apple LLVM, and Microsoft Visual C++. (Are these the correct names for the compilers?) Is the following table correct:

GCC Apple LLVM MSVC
Backend GCC LLVM MSVC
C frontend gcc clang MSVC
C++ frontend g++ clang++ MSVC

Also; if I'm compiling my C++ source files with the command clang++ on a mac:

$ clang++ --version
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

what's the name of the compiler I'm using? Should I say I'm using Apple Clang? Or Apple LLVM? Or something else?


Solution

  • This seems to answer the question:

    GCC Apple LLVM MSVC
    Backend GCC LLVM c2.dll
    C frontend gcc clang c1.dll
    C++ frontend g++ clang++ c1xx.dll