Sign In
Forgot Password?
Sign In | | Create Account

C & C++ Development for Custom Instruction Set Architectures with GNU or LLVM Toolchains



Your custom SoC needs its own carefully tuned instruction set architecture designed to make maximum use of every transistor to deliver the performance your application needs. This is true for a DSP, a VLIW network processor, a massively multicore image processor, or a superscalar deeply pipelined predicated execution SIMD engine with special-purpose statistical counters.

You can program your SoC in assembly language. And, for inner loops and critical code paths, you certainly will. But, there's a lot of control code needed. You might even want to run Linux or uClinux, or at least an RTOS. Your application programmers aren't all going to find it easy to become experts in a special-purpose assembly language and will need to program in C or C++.

There are two strong open-source technologies that you could use to build a C/C++ compiler (and related tools) for your SoC. You can use the GNU toolchain, including GCC, GDB etc. the venerable market leader, used to build Linux, Android™, and real-time operating systems like Nucleus®. Or, you can build a LLVM toolchain, a newer toolset used by Apple® to build OS X® and iOS®.

What You Will Learn

  • The differences between the GNU and LLVM toolchains
  • The steps necessary to build a C/C++ compiler for a custom instruction set architecture
  • The challenges of building a C/C++ compiler
  • The licensing implications of using open-source software with a highly proprietary SoC

About the Presenters

Presenter Image Nathan Sidwell

Nathan Sidwell is the Director of Sourcery Services at Mentor Graphics Embedded Software Division. Previously, Nathan worked at CodeSourcery, acquired by Mentor Graphics in 2010. He has worked with computer architectures and compilation systems for over 25 years. Nathan has been a GCC developer for 15 years, working on components such as the C++ front end, code generation for various established architectures and porting to new architectures.

Presenter Image Meador Inge

Meador is a Sourcerer on the Mentor Graphics CodeBench team.

He began working on C/C++ toolchains at Microsoft in 2002. After Microsoft he joined Mentor Graphics in 2004 where he has worked on the EDGE C/C++ toolchain, Nucleus, the Linux kernel, QEMU, GCC, Binutils, and various Standard C libraries. He is also an active Open Source contributor and can often be found contributing to Python and LLVM.

Presenter Image Iain Sandoe

Iain is a Sourcerer on the Toolchain Services team.He joined Mentor Graphics in 2012 after working as an R&D consultant in the defence and aerospace sector since 1980, which involved tools and algorithm designs on a wide variety of embedded and hosted systems using both conventional and custom hardware. Since joining Mentor Graphics, he has worked on both the GCC and LLVM toolchains; most recently completing a LLVM & clang port for a novel architecture. Iain has been a contributor for a number of years to the Darwin(OSX) GCC port and to the GCC Objective-C front end.

Presenter Image Mark Mitchell

Mark Mitchell is the General Manager of open source solutions for the Mentor Graphics Embedded Software Division. Before joining Mentor Graphics, Mark Mitchell was the founder and Chief Sourcerer of CodeSourcery, Inc., which Mentor acquired in 2010. Mark has worked on C/C++ software development tools since 1994, and has been involved in Free Software Foundation’s (FSF) GNU Compiler Collection (GCC). Since 2001, he has been an active member of the GCC Steering Committee. He holds degrees in computer science from Harvard University and Stanford University.

Who Should View

  • Business owners responsible for software enablement of SoCs
  • Designers of SoCs
  • Compiler developers
  • Embedded tools developers

Related Resources


Other Related Resources

Online Chat