Originally posted by cj.wijtmans
View Post
Announcement
Collapse
No announcement yet.
ALLVM: Forthcoming Project to Ship All Software As LLVM IR
Collapse
X
-
Originally posted by cj.wijtmans View Post
Because you can do link-time-optimizations. Meaning you optimize natively to your microcode.
The advantage is that you can optimize for host ISA (new instructions, different instruction latencies) without shipping plethora of binaries, or using runtime feature detection/codepath selection.
- Likes 6
Comment
-
The obvious benefit is that you can make use of all processor features in your CPU. If you compile generic x86-64 code, you can only assume the processor running the code later to have at least SSE1 & SSE2 extensions. Everything that comes after that might or might not be present. So most vendors end up compiling for reasonable subset of processor extensions, but to not exclude possible customers that is generally very conservative.
If you want to take advantage of more recent extensions, say AVX2, the vendor either has to provide alternative binaries, exclude everyone who does not have that extension or have different code paths in the same binary with runtime detection. But compiling and linking the binary on the system it will later run removes the problem, you can simply make use of every available extension.
- Likes 1
Comment
-
Originally posted by Kushan View Post
The concept behind the idea is nothing new - Java, MSIL, etc. but using LLVM's IR, you can use any language you want, you're not constrained to Java, C# or whatever.
- Likes 2
Comment
-
Originally posted by johanb View PostEDIT: Architecture independence is also a pretty sweet.
In the end you would have to abstract all those architecture specific opts away and I didn't even mention OS specific things, short: LLVM isn't really suited for this
Anyway this idea is far from being new and I already played with LLVM IR binaries like 6 years ago.
- Likes 3
Comment
-
if i understand this correctly: it's time for another round of compiler tests. If there is to be a benefit for having to compile the program every single time (or even once on every computer) then there should be a countable performance gain. or is it more about cutting development time/energy for programming in whatever you please..?
Comment
Comment