Quote Originally Posted by artivision View Post
If in the future, will be able to compile to VM like LLVM does, we will not need to target only one processor with one binary. For example Android must use LLVM for Java and C++ and stop be a Java toy under patent attack. Another example is that if closed source programs and games, are compiled with LLVM, then will be compatible with all processors. Some one has to develop the way.
LLVM does not compile to a VM or interpreter. It is a compiler that compiles to machine code just like GCC.
People do not target one processor with one binary, with GCC you can download a binary that works on every processor. I think you mean architecture. Such as x86 and ARM. There are many x86 processors, some from intel, some from AMD, but one x86 binary works on all chips (unless you use processor specific CFLAGS but nobody does that in distributed binaries).

As for patents against android, that is not related to Java. There was a law suit from Oracle against Google about Java, but Google won.

Another example is that if closed source programs and games, are compiled with LLVM, then will be compatible with all processors. Some one has to develop the way.
Again every compiler does this already. When you download software from the internet, it works on your machine right? It not compiled for you specific processor, but just x86.

As for one binary for every architecture, (like x86, ARM, PPC, MIPS), that can be done with GCC. GCC supports ARM and x86, so a port is just a recompile right? Wrong, many programs use bits of assembly for very intensive parts (many games and graphics engines). Also it isn't always as easy a just a recompile.

What you are describing is an interpreted language like python. The interpreter has been ported to many architectures and bytecode will run on the interpeter the same way as if it was on x86 or ARM. Compiling C++ like this is stupid as it defeats the whole purpose. Interpreters and VMs kill performance.
Actually what you describe just produces bytecode for a VM. There are no binaries.