From owner-freebsd-arch@FreeBSD.ORG Sun Apr 6 19:06:47 2014 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3A06F825; Sun, 6 Apr 2014 19:06:47 +0000 (UTC) Received: from mail-qc0-x229.google.com (mail-qc0-x229.google.com [IPv6:2607:f8b0:400d:c01::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C6EF5FD3; Sun, 6 Apr 2014 19:06:46 +0000 (UTC) Received: by mail-qc0-f169.google.com with SMTP id i17so5572542qcy.14 for ; Sun, 06 Apr 2014 12:06:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=q231UmC4L2z7zXy4V77Hu6WRIOrE1S/EUQOqgyHMuoE=; b=lPbab/t09wlLMKfPRIj4CKBAubMu2CWprnNUds0XiLmJPFjEo/pKsbE72+cViirtDO 7OSOAkaObRA3bzrdJ9mm4LWw47h22rv/ZLp4u6F5MlJhFDD7m/b/e7fdj39PvoERLJCN MFIK8tGZ3jL1+qAG+QcUGaHvxrGuzs9hj9U9IkDlPWl6A4+g35gdi4szLEOmtowHFu9m gawITw4gnwFFq9cvJ+w3YC9jWGKHEX8NheqgUwbR2DmwiMSVKks7e92VxHPm0wudSyzH 5eXOdwtIAMYQ5uCOD70yeePdc7JlvgAWbJWLIzUc2vQHQzVKsAjBazd/Og2WL5RnOp0r ZuxA== MIME-Version: 1.0 X-Received: by 10.140.21.8 with SMTP id 8mr9664345qgk.55.1396811205960; Sun, 06 Apr 2014 12:06:45 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.50.206 with HTTP; Sun, 6 Apr 2014 12:06:45 -0700 (PDT) In-Reply-To: References: <201404021607.s32G7mhw051355@svn.freebsd.org> <20140404115256.GA85137@ivaldir.etoilebsd.net> <8D6AF193-A5A3-4A28-A230-97A543395ACA@ixsystems.com> <2E0EC8CB-B3EE-4DB8-A33D-58FD2107F14D@FreeBSD.org> <6A02504F-5543-4F91-92F6-7B4FB9A34DC4@ixsystems.com> <152D73EE-DF9E-4757-B547-F1F22B12C824@FreeBSD.org> <8E3BD3C1-A441-48C5-97BC-45EF67513096@FreeBSD.org> <6418BE83-BE78-473B-9311-C849507FA885@ixsystems.com> Date: Sun, 6 Apr 2014 12:06:45 -0700 X-Google-Sender-Auth: WzW-xgNagbWwMXvajc_qUhCD3H0 Message-ID: Subject: Re: Compiler toolchain roadmap From: Adrian Chadd To: Jordan Hubbard Content-Type: text/plain; charset=ISO-8859-1 Cc: Baptiste Daroussin , David Chisnall , "freebsd-arch@freebsd.org" X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Apr 2014 19:06:47 -0000 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