From: arne@vajhoej.dk
On 3/29/2025 2:19 PM, Waldek Hebisch wrote:
> Simon Clubley wrote:
>> On 2025-03-27, Arne Vajhøj wrote:
>>> or:
>>> - people use a different backend than LLVM (GCC, custom, whatever)
>>
>> If anyone knows of a serious backend code generator other than LLVM
>> or GCC, please feel free to point me at it. :-)
>
> Depends what you consider serious (and what "backend" means).
> There is bunch of compilers that use their own backend,
> for example optimized Ocaml or SBCL Lisp. If you aim at
> highest possible speed, regardless of language, then they
> can not compete. If you look at native performance for
> relevant languages, then they are top performers (there are
> Lisp compilers which generate code via translation to C,
> resulting speed is lower than obtained using SBCL).
>
> Note that context was porting languages, "classic"
> languages are covered by VSI, so relevant things are
> backends for more exotic languages. There was recent
> trend to adopt LLVM in such cases, and Julia seem to
> be prominent example of language dependent on LLVM.
> But more popular approach seem to be via custom
> backend or via C. For example Haskell folks some time
> ago said that LLVM does not really give them advantages
> compared to going via C, and C way is easier.
For true general purpose languages, then highly
optimizing is a must have.
But for many less general purpose languages then
it is not so important.
The typical business application is not CPU bound.
There are some very widely used languages out
there where most use interpretation despite
JIT compilation being available. Because the speed
difference does not matter for most.
There are also embedded applications where
real time characteristics are essential but
speed does not matter.
If a language is more specialized and targeting
a market where speed is not important, then the
compiler backend does not need to be state of
the art.
Arne
--- SoupGate-DOS v1.05
* Origin: you cannot sedate... all the things you hate (1:229/2)
|