I'm using Xcode 4.5.2. I see in Build Settings that the compiler for debug says "Default compiler (Apple LLVM compiler 4.1)" and for release it is "LLVM GCC 4.2". Why would 4.1 be used for debug and 4.2 for release?
I don't think I changed that myself but I suppose I might have changed it some time ago and don't remember. In case I did change it, does anybody know which is better for release?
LLVM-GCC 4.2 is not LLVM 4.2. It's the GCC 4.2 frontend with the LLVM backend. It was an intermediate compiler used while Clang was in development. And I don't believe it's the default; I think you just have that set in your project. The default in Xcode 4.5.2 seems to be LLVM 4.1, with no distinction made between Debug and Release.
Also note that LLVM-GCC is going away completely in the near future (perhaps the next major release of Xcode).