[LLVMdev] Arm port
christophe.avoinne at laposte.net
Thu May 21 01:49:14 PDT 2009
- Cortex-A8 needs a specific instruction scheduler as dual issue forces
you to interleave some instructions to allow to run two instructions in
the same cycle for the best performance (Cortex-A9 is out-of-order so
dual issue is not an issue (!) for performance).
- Cortex-A8/A9 have several useful new instructions : for instance, bit
operations like bitfield insertion/extraction or having a pair of
instruction MOVW,MOVT to read a 32-bitconstant/address into only 2
instruction instead of 3 or 4, etc.
- VFPv3 is supported for backward compatibility but they are very slow
and not pipelined.
- NEON (SIMD coprocessor) can do a lot of impressive operations on
32-bit float or integer of any size. Most VFP operations can be done
through NEON for better performance.
Considering GCC can produce ARMv7, LLVM is not a good candidate as long
as the latter has no support ARMv7.
The main advantage about LLVM is for its ability to produce in run-time
a native code unlike GCC. But the result would be very suboptimal for
On 20/05/2009 23:02:51, Bob Wilson (bob.wilson at apple.com) wrote:
> On May 20, 2009, at 1:38 PM, Chuck Robey wrote:
> > Hmm. Well, my motivation is that I recently bought a Pandora (it
> > has the
> > Cortex-A8).
> It's not going to arrive here for a couple more months,
> > I think.
> > When it does finally arrive, I want to be able to immediately begin
> > work on
> > replacing the Linux that comes pre-installed with FreeBSD-arm.
> Hi Chuck,
> not very familiar with the Pandora, but as far as I know ARM is
> pretty good about backward compatibility. You should be able to run
> ARM code compiled by LLVM on it. LLVM currently only generates code
> for version 6 of the ARM architecture, so you
> wouldn't be taking full
> advantage of the Pandora's processor but it may
> not matter, depending
> on what you're trying to do with it.
More information about the llvm-dev