Compiler toolchain roadmap

Adrian Chadd adrian at freebsd.org
Sun Apr 6 19:06:47 UTC 2014


Hi,

(shifting to -arch.)

Sure.

Qualcomm is a great example here. They're ARM, but they're not really
just "arm". They also have their embedded CPU architecture that they
stick inside basebands and mobile base stations that can run with an
MMU and do all that kind of jazz. They are increasingly playing in the
LLVM space, but I doubt they'll release LLVM patches for their latest
ARM or whatnot fork before it's mainstreamed.

They may want to bring up an operating system (eg android) on a new
CPU family without having to wait for the upstream compiler to have
support. So they'll jump through hoops to make sure they can use their
internal compiler fork and then merge stuff back into upstream LLVM
when things have shaken out.

I can't speak for Apple but from what I've heard they have also done
their own compiler and CPU architecture hacking. They employ LLVM
developers who will add new CPU features to existing CPUs as well as
hack on new CPUs. There are plenty of CPU features in the existing
Intel (and likely AMD) 64 bit x86 stuff that we just plain aren't
using yet in LLVM.

Then there's the research folk like Robert's group(s). They're
creating a new CPU architecture and they're also building the
toolchain for OS bringup. It's a great example of what a company
making new platforms end up doing - except here it's research, not
production. The same issues are faced.

I'm definitely not arguing "make everything work for old MIPS and ARM
platforms". I'm totally on board with the "C99 and then C11 should
just be required at this point." But part of the point of supporting
external compiler stuff isn't just to make MIPS, ARM and PPC stuff
work. It's to keep us honest. We as a project treat non-x86 as a
second class citizen and it shows in our build infrastructure (ie,
everything is native.) It's similar to the 32 vs 64 bit platform stuff
- it again made the codebase better, even if it was "ew, DEC alpha."

As an example here - I get the feeling that people care not about
32-bit x86 and would like it to die. The lack of interest and use of
freebsd/i386 by developers sometimes shows - suddenly KVA isn't
infinite anymore and a lot more stuff assumes large amounts of
physical RAM. But besides the recent push by Intel for all of their
x86 32-bit embedded stuff (which is all Linux, by the way), those
decisions also impact the 32 bit ARM platforms. Those aren't going
away.


-a


More information about the freebsd-arch mailing list