Ok, some feedback from xcode4 usage in 3 words: NOT PRODUCTION READY
UI is still buggy. It is really sluggish on my dual core, and the indexing process just takes all my resources. And of course, it can’t be disabled in xcode4 as opposed to xcode3. Having to renice a process to be able to work is not what I call a professional tool. Bugs have been filed from what I’ve seen in apple’s developer’s forums. Besides, source control support is limited to svn and git and not extensible.
I’m switching back to xcode 3.2.6 which apparently includes LLVM as well.
Speaking of LLVM, I was able to solve my linking problem and compile everything with LLVM front- and back-end. The problem seemed to be that default symbol visibility has changed and all dependencies must have the same setting than the project (see http://small-engineering.blogspot.com/2011/06/ld-bad-codegen-pointer-diff-in.html#more).
I would advise using LLVM frontend to GCC if you can, because error descriptions are much clearer indeed.
Performance wise, I didn’t benchmark my software with LLVM as a compiler backend, mostly because I was about to throw my keyboard by the window every 30 min because of xcode4, but I didn’t sense any big leap. I expect to see better improvements in future releases of xcode4 (4.2 I think), as announced at WWDC, once they include their custom replacement to libstdc++, with C++0x compatibility, and its move semantics. I can see many places where Juce would benefit from move semantics, such as, like, everywhere buffers are copied several times…
So, in a word: stay away from xcode4 for the moment.