Sujet : Re: My 66000 and High word facility
De : tkoenig (at) *nospam* netcologne.de (Thomas Koenig)
Groupes : comp.archDate : 11. Aug 2024, 09:33:47
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v99t1b$271h3$1@dont-email.me>
References : 1 2 3
User-Agent : slrn/1.0.3 (Linux)
Brett <
ggtgp@yahoo.com> schrieb:
Compilers love unrolling loops because it saves an instruction, which for a
short loop could mean 10% faster. Point out your code has more unrolls and
performance.
If you want to look at what the compiler for My 66000 does, it
can be found at
https://github.com/bagel99/llvm-my66000 .
Installation is a bit cumbersome, but manageable.
Speaking as somebody who neither designed the ISA nor written
the compiler port: The Virtual Vector methods makes unrolling
vectorized loops unprofitable; all you "gain" from unrolling those
is increased register pressure and code size. Having constants
in the instruction stream also reduces register pressure.
In the beginning, I had my doubts that 32 general registers which
are also used for floating point are enough, but looking at
generated code convinced me.
Unrolling in the presence of VVM is not that easy Non-vectorizable
loops can still be profitable to unroll, as can be outer loops.
But when working with an existing compiler which has assumptions
about currently available architectures baked in, this is quite
difficult.