[LLVMdev] Arm port

Chuck Robey chuckr at telenix.org
Thu May 21 14:40:48 PDT 2009


Christophe Avoinne wrote:
> Hi,
> 
> - 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 
> some goals.

Parts of this is replying to Christophe, part to Samuel, and part to Sandeep, I
decided that writing 3 different replies would have been too much like
pestering.  Reply to any part you feel like, it all is about (ultimately) my
wanting to use the llvm to support moving FreeBSD to run on the OMAP3530 as
shown on the Pandora or maybe the BeagleBoard.

------------------------------------------------------

Well, seeing as studying the Cortex code until my Pandora shows up seems like
time well spent, I'm going to be studying the llvm project as mush as I'm
capable of.  I don't know if I'll improve quickly enough to be of service to the
llvm project, but I would surely *like* to use the llvm ... you didn't make any
comment about the timing of llvm being able to support the A8, and I read where
Sandeep Patel tells me that he is (at the very least) working on that.  Is there
at least some possibility of llvm being able to provide A8 support within the
next 3 months (give or take)?  I'm looking at the best guess about A8 support
(A9 support would give me that, I think, I hope).

I know OSes fairly well, or at least I've written 3, but it's true that I've
been out of the software business for the last 4 years as I recover from severe
medical problems.  I never concentrated on compilers in school, but just after
graduating, I had a chance to buy a new copy of Aho/Setho/Ullman's compiler
book, and I'm now reading it.  I did take the compiler course, but it seemed
rather basic to me.  The OS thing they let me do as indiependent study, with a
prof watching me like I was doing a doctoral thing, and I got a whole lot out of
that.

So, I was wondering if someone has a compiler book name, something besides the
Aho book (maybe more up to date, this is a 1988 copyright) I might be able to
pick up used via Amazon, and would teach me enough to be able to contribute to
llvm.  I'm NOT new at software, just compilers.  At a minimum, telling me this
will probably cause me to go away and stop bothering you for a while.

Oh, yeah, responding to Samuel Crow, the Pandora has both Bluetooth and USB2
interfaces, so IF I have a OS in place, I can certainly make use of both my
keyboard (both USB2 and bluetooth) and 60G disk (USB2) and that's more than
enpough to develop with.  Besides that, it's got booting off of flash, so I can
write flash memory on other systems (I have 3) and easily move things into the
Pandora.  I think a lof of this applies to the BeagleBoard, too (but I haven't
got one of those).  I would likd of like it if there was an emulator, I haven't
chekced on that, you don't happen to know if there's an emulator compatible with
the OMAP3530?  I think I can leave the original Linux that it comes with in
place, and move new images into place with flash.  I could put llvm onto the
Linux partition.  Development-wise, the Pandora isn't all that bad a place to
be.  I read, it's (I think) using UBoot for the 1st level, but I'll be more
certain when my Pandora finally shows up on my doorstep.

> 
> 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,
>  >
>  > I'm
>  > 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.
> ...
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list