Looking at the evmjit code I noticed that the LLVM optimizer is actually used right before execution of a contract by the virtual machine. I have also noticed that the Solidity compiler has its own optimizer that optimizes bytecode.
Therefore, I was wondering ... what is the benefit of having a bytecode optimizer in the Solidity compiler vs relying completely on the LLVM optimizer in the virtual machine ?