CoSy White Papers

Documents behind the scene

Target Interfaces in CoSy

Accurately steer compiler optimization and lowering passes to make the best use of specific architecture properties with user-programmable target interfaces. Target interfaces have visibility on full engine context, data structures and analysis functors. You can read more in this application note. PDF

Retargetable Code Optimization for Predicated Execution

This paper results from a joint research project between RWTH Aachen University, NXP and ACE. It was presented at the conference Design, Automation and Test in Europe in 2008 and received a DATE 08 BestPaper Award.

Retargetable C compilers are key components of today's embedded processor design platforms for quickly obtaining compiler support and performing early processor architecture exploration. The inherent problem of the retargetable compilation approach, though, is the well known trade-off between the compiler's flexibility and the quality of generated code. However, it can be circumvented by designing flexible, configurable code optimization techniques applicable to a certain range of target architectures. This paper focuses on target machines with predicated execution support which is wide-spread in deeply pipelined and highly parallel embedded processors used in next generation high-end video, multimedia and wireless devices. We present an efficient and quickly retargetable code optimization technique for predicated execution that is integrated into an industrial retargetable C compiler. Experimental results for several embedded processors demonstrate that the proposed technique is applicable to real-life target machines and that it produces significant code quality improvements for control intensive applications...PDF

Parallelization using Polyhedral Analysis

Multicore architectures are being introduced more and more to meet the compute power required by applications. The automatic parallelization and mapping of sequential applications onto multi-core architectures is an important research topic for which a general compiler-oriented solution does not yet exist. There are however compilation techniques and analyses that greatly help application engineers in solving this difficult problem. This paper discusses the Polyhedral and Kahn Process Network models that are being integrated into the CoSy compiler framework. It describes our experiments in semi-automatic coarse-grain parallelization of an MJPEG application and its mapping to the CELL architecture. Based on the polyhedral model that is used to calculate exact data dependences and to create a Polyhedral Reduced Dependence Graph (PRDG), the Kahn Process Network (KPN) is automatically derived from a PRDG and the extensions are made to CoSy's Intermediate Representation (IR) in order to facilitate network restructuring transformations...PDF

Exploring Possibilities with Embedded C Emulation

CoSy offers DSP developers the opportunity to access the market faster using its emulation capability. Embedded C emulation lets application development teams develop arithmetically accurate DSP applications on standard workstations. It can be applied when the target architecture has not yet fully crystallized, but it is also just more convenient than development on a simulator...PDF

DSP-C Extensions to DWARF

Although the DSP-C language extension allows DSP programs to be written in a high level language ensuring portability while being able to be compiled efficiently, it does not cater for debugging programs in the development stage. For this, it was needed to define how to represent the language extensions in symbolic debug information formats of DWARF...PDF

CoSy Compilers, an Overview of Construction and Operation

CoSy is used for constructing compilers. These compilers share various tools and common procedures in the environment in which they are constructed. The compilers themselves share components and interfaces that allow the compiler writer to focus on target code quality instead of on bookkeeping tasks. Furthermore, these compilers are unique for their scalability to host requirements, and the innovative techniques available for their construction...PDF

Programming DSPs in High-Level Languages

If you're thinking of programming your DSP in a high-level language instead of assembler, that high-level language will almost certainly be a C-type language. It's unlikely to be standard C, however, because standard C was never designed to handle the fixed point arithmetic, divided memory spaces and circular buffers that are typical of DSP architectures. Of the several C variants that are available to you, the one you choose will have a significant impact on both the portability and efficiency of the generated code...PDF

Compiler Technology and its Relationship to DSP Performance

High level languages reduce programming effort, facilitate program maintenance and encourage IP re-use - three factors that are critical to software development success in fast-moving consumer electronics markets. Yet despite this fact, most of the DSP processors at the heart of consumer products such as mobile phones, MP3 players and DVD players are still laboriously programmed in assembly language...PDF

DSP-C An extension to ISO/IEC 9899:1990

This document defines an extension to the ISO/IEC 9899:1990 ("ISO C") standard to support the specific hardware features of Digital Signal Processors(DSP's). The most important basic language elements added are a fixed point datatype (in various forms), memory spaces and circular pointers. Some features of this extension, most notably the memory spaces, may also be applicable to embedded processors which are not DSP's, such as microcontrollers...PDF
AttachmentSize
PDF icon cosy-target-interface.pdf114.3 KB