On Friday, May 29, 2020 4:02:40 AM MST Paul Dufresne via devel wrote:
had forgotten to reply also to the list... doing it now:
[cut the part where it was suggested to make package that contains LLVM
Intermediate Representation bitcode rather than CPU specific assembler]
On 2020-05-29 1:01 a.m., John M. Harris Jr wrote:
> Paul,
> What benefit do you see in the overhead of LLVM IR, compared to standard
> packages?
John,
Where do you see overhead in the distribution of LLVM IR?
See below responses.
Advantages:
* more space on the hard disks of the servers, because they contains
repositories only for LLVM IR packages rather than one by supported
architectures
This may be a valid point, but I'm not sure it's really all that important.
I'm currently mirroring 3 different arches of the Fedora repos, and the total
disk space is 495G. That's not a lot of storage space these days, at least not
for servers. Additionally, there are a number of packages that cannot be LLVM
IR, which are needed to support running LLVM IR. Please also consider how
initramfs would be handled. Statically compiled software or LLVM IR and the
supporting software?
* less use of the CPU time of the servers because they don't
optimize
code for specific CPUs
Not handling this on the build servers means doing it on the end system, every
time the program is run.
* very reduced cost for supporting more architectures, as code is
client-side generated
Does LLVM IR have a way of handling arch-specific code?
* faster code on clients with recent CPUs, because code is optimized
for
them, and was not in the old way of doing because you had to distribute
for a common base CPU
How does LLVM IR accomplish this? Would it be slower on older CPUs, or does it
specifically compile for the host CPU's micro-arch?
* CPU specific code generation and optimizations can be done on idle
time of the clients... there is not much idle time of the servers
If it's going to be done on idle time of client systems, this is definitely
not going to work in Fedora in general. Perhaps in Silverblue or other systems
not designed to be a general purpose operating system? It actually might even
work in Fedora Workstation, but then you'd have to separate Workstation from
the base distro, assuming GNOME doesn't eat CPU idle time.
--
John M. Harris, Jr.
Splentity