I am proposing the integration of a new backend called C-SKY.
C-SKY processor is a 32-bit high-performance and low-power embedded processor designed for embedded system or SoC environment. It adopts independently design of architecture and micro architecture with extensible instruction set, which owns great features, e.g. configurable hardware, re-synthesis, easily integration etc. Additionally, it is excellent in power management. It adopts several strategies to reduce power consumption including statically designed and dynamic power supply management, low voltage supply, entering low power mode and closing internal function modules.
Now, C-SKY CPU instruction system has two versions: C-SKY V1 and C-SKY V2. You must note that the C-SKY V2.0 instruction sets are not freely exchangeable with V1.0. Conversely, available function provided by V2.0 is identical to V1.0 for most of applications. So that we strongly recommend that you should make sure you are aware of the generated result of specified application when you use them simultaneously. The two instruction sets differ in how instructions are encoded.
Basically, we can develop C-SKY V2 as prefer, and the ISA doc and ABI doc can be referred at following links. (The links are not stable, and the address may be changed). The links will be added and updated constantly later at http://llvm.org/docs/CompilerWriterInfo.html.
Here is the first patch to introduce the CSKY target, https://reviews.llvm.org/D86269. Feel free to review it if you have interest in. Of course it’s an experimental target now and would not be built as default. For now, there is just basic codegen functionality of CSKY target, and there are other parts of work left such as MC layer, compressed instruction and DSP instruction support, etc. The community behind CSKY will support all of the work constantly from now on and the main vendor of CSKY is T-HEAD company of Alibaba group.
All comments are welcome, and please feel free to comment. Thanks.
Zi Xuan Wu (Zeson)