Please, to see 1. "The LLVM Compiler System" by Chris Lattner http://llvm.org/pubs/2007-03-12-BossaLLVMIntro.html http://llvm.org/pubs/2007-03-12-BossaLLVMIntro.pdf
2. "Vector LLVA: A Virtual Vector Instruction Set for Media Processing" by Bocchino and Vikram http://llvm.org/pubs/2006-06-15-VEE-VectorLLVA.html http://llvm.org/pubs/2006-06-15-VEE-VectorLLVA.pdf The LLVM follows the K.I.S.S. principle, GCC doesn't. The optimizing stages of GCC's backend are big, fragmented and complex. I think that the GCC's commitee goes to the wrong direction.