What? How does C have "better optimization" than LLVM? As far as I can tell, this seems clearly false: you can't do custom alias sets, for instance, in C, whereas you can in LLVM. None of your examples mention optimization at all (and BF is also totally unrepresentative of anything in the real world).
Also, C may have easier debugging support, but it's significantly worse than having exact control over the contents of your DWARF DIEs. Making it easy to have a bad debugging experience isn't a plus as I see it.
C has better optimization than LLVM because if you generate LLVM IR, you can't compile it with icc or Visual Studio. (Or GCC, but LLVM probably already equals or beats GCC at optimization already.)
You're probably right that LLVM also has better optimization than C because of things like the possibility of doing better aliasing.
I agree that BF is unrepresentative of anything in the real world. Thank goodness.
I can certainly see how debugging support could be better if you can go beyond the support C gives you.
Also, C may have easier debugging support, but it's significantly worse than having exact control over the contents of your DWARF DIEs. Making it easy to have a bad debugging experience isn't a plus as I see it.