The Renesas SH C Compiler is an optimizing ANSI C and ANSI C++ compiler for the SuperH embedded RISC microprocessor family. The SH C package includes a compiler, assembler and linker is supplied as part of the High-performance Embedded Workshop IDE.

In addition to full ANSI C support, the compiler provides #pragma language extensions and command-line switches to support target specific features and extended compiler functionality.

The SH C compiler has powerful and reliable code generation facilities for SH targets. A variety of optimization features allow you to generate highly optimized PROMable code. In particular, code can be optimized for size or speed to match the requirements of the particular application being developed...


  • High-performance Embedded Workshop
  • Tool chain
  • Simulator
  • Call Walker
  • MapViewer
  • Learn More

Release Information

Latest Ver.: V.9.04 Release03

Released: Mar 7, 2016

Details of upgrade (See Tool News)

Operating Environment

Standard life cycle of Compilers (PDF | English, 日本語)

Note: V.9.xx is Renesas new product. Upgrading from any of older versions, V.8.xx, V.7.xx, V.6.xx and V.5.xx is not available.

Target Devices



Design & Development

Sample Code

Additional Details


[C/C++ Compiler]

  • Language specification: Exception handling and Template functions are supported according to ANSI/ISO standards.
  • Complies with C/C++ language in ANSI specification
    • Supports C89, C99 (subset of functions*), and C++98. * long long, // comments
  • Optimizing function: The dedicated optimization which are for each microcomputer have been implemented in addition to the general optimization techniques that are deletion of common expression, register allocation, etc. Furthermore, the optimization function has also realized the optimization over between source files at the time of a link.
  • Introduces the latest optimization technology developed for supercomputers
    • Optimization at recompilation using link information (optimization of access to external variable)
    • Inter-module optimization of access to external variable
  • Embedded function: Interruption function description, system command description, etc., which are not supported by ANSI C/C++ language Specification and which are useful to support the function for the embedded program as an extended function.
  • Extended language function for SuperH RISC engine family
    • Intrinsic functions
    • Section address operators
    • #pragma directives
  • Object generation in all CPUs from SH-1 to SH-4
  • Improved output way of compile list
  • Standard object format (ELF/DWARF2)
  • Embedded C++ language spec-compliant class libraries
  • High performance DSP library optimized by DSP instruction
  • The header file fixed.h that defines various limitations concerning the internal representation of fixed-point numbers is also added
  • Supports DSP-C language
  • Loosening limits on number of switch statements: 256 -> 2048
  • DSP library of fixed-point type is supported
  • Specify bit-field of union
  • Enhanced to 4096 level of nesting by combination of iteration statement and selection statement


  • Pre-processor function: A source program is described efficiently by pre-processor functions such as a file inclusion function, conditional assembly function, macro function, etc..
  • Instruction support to all CPU from SH-4 to SH-1 include DSP
  • Description of Double accuracy floating point constant is possible
  • File include function
  • Assembly function with condition
  • Macro function
  • Support ELF/DWARF2 format
  • Floating-point arithmetic operations can be specified in the assembler directive for reserving floating-point data
  • Supports .STACK Directive which enables the stack size of a function written in the assembly language to be reflected in the stack analysis tool
  • The number of characters in a replacement symbol specified in .DEFINE was extended from 32 characters to unlimited

[Optimizing Linkage Editor]

  • Optimizing function: It executes optimizations that are memory allocation and code optimizations that related functions callings. These optimizations can not be done in the C/C++ compiler.
  • Output file: Linkage Editor outputs several formats like ELF from, S type form and HEX form. And it is available to output the symbol reference list.
  • Compression function of debug information
  • Inter-module optimization function
  • Plurality load module selection
    • Relocatable ELF format
    • Absolute ELF format
    • S type format.
    • HEX format
    • Binary format
  • Support ELF/DWARF2 format
  • Creation and edition of library file is possible
  • Analysis by list file output
    • Output the number of times of symbol reference
    • Output symbol reference information (cross-reference information)
  • Changing error level when a section address is overlapped
  • A boundary alignment value can be specified for the section specified by the binary option.

[Standard Library Configuration Tool]

Generate the standard library file, which is provided by a compiler, by using the user-specified option. Select of the optimization and generation of the standard library file that is the reentrants type (case of SH) are available by options.

  • Customize of standard library by generating standard library for every project is possible.
  • Support reentrant library.
  • Variable change per malloc reservation size (Saving of RAM capacity is possible).
  • Variable change of the number of open file (Saving of RAM capacity is possible).
  • Support for simple I/O (Generate a small size function with no supporting floating point).

[Format Converter]

  • Conversion from the old format to ELF format
  • Conversion from ELF format to the old format


For details, refer to the "C/C++ Compiler Package for SuperH Family Software Component List (PDF | English, 日本語)".

Supported MCU core, DSP Instructions, Object Format

Compiler Package Version Supported Devices (MCUs) DSP Instructions (Note1) Support Object Format Device File Updater (Note2)
V.9 Windows version SH-1, SH-2 (Note5), SH-2E, SH2-DSP, SH-2A, SH2A-FPU, SH-3, SH3-DSP, SH-4, SH-4A, SH4AL-DSP, SH-Mobile (Note4) DSP-C language Assembly language DSP library (Note3) ELF/DWARF2 Available
V.9 UNIX version (Discontinued) SH-1, SH-2 (Note5), SH-2E, SH2-DSP, SH-2A, SH2A-FPU, SH-3, SH3-DSP, SH-4, SH-4A, SH4AL-DSP, SH-Mobile (Note4) ELF/DWARF2 Unsupported
V.8 (Discontinued) SH-1, SH-2, SH-2E, SH2-DSP, SH-3, SH3-DSP, SH-4, SH-4A, SH4AL-DSP, SH-Mobile (Note4) ELF/DWARF2
V.7 (Discontinued) SH-1, SH-2, SH-2E, SH2-DSP, SH-3, SH3-DSP, SH-4 Assembly language DSP library (Note3) ELF/DWARF2
V.6 (Discontinued) ELF/DWARF2
V.5 (Discontinued) SYSROF


  1. Available only for MCU/MPU with a DSP module.
  2. Device File Updater is a utility tool which adds or updates automatically the High-performance Embedded Workshop's source files such as a start-up routine, I/O header file, etc.
  3. The DSP library is included in this C/C++ compiler package.
  4. If you use middleware, make sure the version of your C/C++ compiler package is supported by the middleware to be used. (Please inquire of the middleware distributor.)
  5. Supports little endian. (V.9.00 Release01 or later)

(Discontinued): This version is no longer marketed.