Subject: Re: [boost] Accelerating algorithms with SIMD - Segmented iterators and alternatives
From: Bo Persson (bop_at_[hidden])
Date: 2010-10-13 12:50:52


Daniel Herring wrote:
>
> Presuming a sufficiently advanced jit architecture,
>
> - static code generation
> - may not have access to custom opcodes or hardware on the user's
> computer - may not be able to produce all optimal variants
> - cannot change after delivery
> - can only guess the actual runtime code paths
>
> - a jit on the user's machine can support
> - local benchmarking and profiling
> - user-side optimization (including profile hints)
> - use an upgraded compiler
> - save compiled results
> - ...
>
> Basically, think of it as moving the compiler from the developer's
> box to the user's executable. Both are "the same compiler", but the
> user's copy presumably knows more about the actual input data and
> hardware available.

But in practice it doesn't help much.

As a non-JIT developer you can figure what is the minimum requirements
for your program to run decently. Optimize for that!

If your customer has better hardware - fine, it will run even faster.
If your calculations need SIMD extensions, no JITing in the world can
fix that on my 486.

Bo Persson