[PATCH] D86269: [RFC][Target] Add a new backend target called CSKY
Zixuan Wu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 20 01:25:52 PDT 2020
zixuan-wu created this revision.
zixuan-wu added a reviewer: lattner.
Herald added subscribers: llvm-commits, jfb, dexonsmith, hiraditya, arichardson, mgorny.
Herald added a project: LLVM.
zixuan-wu requested review of this revision.
Herald added a subscriber: jdoerfert.
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 can be changed)
ISA: https://github.com/c-sky/csky-doc/blob/master/CSKY%20Architecture%20user_guide.pdf
ABI: https://github.com/c-sky/csky-doc/blob/master/C-SKY_V2_CPU_Applications_Binary_Interface_Standards_Manual.pdf
This is the first patch to introduce the CSKY target and of course it's experimental now.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D86269
Files:
llvm/CODE_OWNERS.TXT
llvm/include/llvm/ADT/Triple.h
llvm/include/llvm/BinaryFormat/ELF.h
llvm/include/llvm/BinaryFormat/ELFRelocs/CSKY.def
llvm/include/llvm/IR/CMakeLists.txt
llvm/include/llvm/IR/Intrinsics.td
llvm/include/llvm/IR/IntrinsicsCSKY.td
llvm/lib/Support/Triple.cpp
llvm/lib/Target/CSKY/AsmParser/CMakeLists.txt
llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
llvm/lib/Target/CSKY/AsmParser/LLVMBuild.txt
llvm/lib/Target/CSKY/CMakeLists.txt
llvm/lib/Target/CSKY/CSKY.h
llvm/lib/Target/CSKY/CSKY.td
llvm/lib/Target/CSKY/CSKYAsmPrinter.cpp
llvm/lib/Target/CSKY/CSKYAsmPrinter.h
llvm/lib/Target/CSKY/CSKYCallingConv.h
llvm/lib/Target/CSKY/CSKYCallingConv.td
llvm/lib/Target/CSKY/CSKYConstantPoolValue.cpp
llvm/lib/Target/CSKY/CSKYConstantPoolValue.h
llvm/lib/Target/CSKY/CSKYFrameLowering.cpp
llvm/lib/Target/CSKY/CSKYFrameLowering.h
llvm/lib/Target/CSKY/CSKYISelDAGToDAG.cpp
llvm/lib/Target/CSKY/CSKYISelLowering.cpp
llvm/lib/Target/CSKY/CSKYISelLowering.h
llvm/lib/Target/CSKY/CSKYInstrFormats.td
llvm/lib/Target/CSKY/CSKYInstrFormatsF1.td
llvm/lib/Target/CSKY/CSKYInstrFormatsF2.td
llvm/lib/Target/CSKY/CSKYInstrInfo.cpp
llvm/lib/Target/CSKY/CSKYInstrInfo.h
llvm/lib/Target/CSKY/CSKYInstrInfo.td
llvm/lib/Target/CSKY/CSKYInstrInfoF1.td
llvm/lib/Target/CSKY/CSKYInstrInfoF2.td
llvm/lib/Target/CSKY/CSKYMCInstLower.cpp
llvm/lib/Target/CSKY/CSKYMCInstLower.h
llvm/lib/Target/CSKY/CSKYMachineFunctionInfo.cpp
llvm/lib/Target/CSKY/CSKYMachineFunctionInfo.h
llvm/lib/Target/CSKY/CSKYRegisterInfo.cpp
llvm/lib/Target/CSKY/CSKYRegisterInfo.h
llvm/lib/Target/CSKY/CSKYRegisterInfo.td
llvm/lib/Target/CSKY/CSKYSubtarget.cpp
llvm/lib/Target/CSKY/CSKYSubtarget.h
llvm/lib/Target/CSKY/CSKYTargetMachine.cpp
llvm/lib/Target/CSKY/CSKYTargetMachine.h
llvm/lib/Target/CSKY/CSKYTargetObjectFile.cpp
llvm/lib/Target/CSKY/CSKYTargetObjectFile.h
llvm/lib/Target/CSKY/Disassembler/CMakeLists.txt
llvm/lib/Target/CSKY/Disassembler/CSKYDisassembler.cpp
llvm/lib/Target/CSKY/Disassembler/LLVMBuild.txt
llvm/lib/Target/CSKY/LLVMBuild.txt
llvm/lib/Target/CSKY/MCTargetDesc/CMakeLists.txt
llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFObjectWriter.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYFixupKinds.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYInstPrinter.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYInstPrinter.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCExpr.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCExpr.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCTargetDesc.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCTargetDesc.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetAsmStreamer.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetAsmStreamer.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetELFStreamer.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetELFStreamer.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.h
llvm/lib/Target/CSKY/MCTargetDesc/LLVMBuild.txt
llvm/lib/Target/CSKY/README.txt
llvm/lib/Target/CSKY/TargetInfo/CMakeLists.txt
llvm/lib/Target/CSKY/TargetInfo/CSKYTargetInfo.cpp
llvm/lib/Target/CSKY/TargetInfo/CSKYTargetInfo.h
llvm/lib/Target/CSKY/TargetInfo/LLVMBuild.txt
llvm/lib/Target/CSKY/Utils/CMakeLists.txt
llvm/lib/Target/CSKY/Utils/CSKYBaseInfo.cpp
llvm/lib/Target/CSKY/Utils/CSKYBaseInfo.h
llvm/lib/Target/CSKY/Utils/LLVMBuild.txt
llvm/lib/Target/LLVMBuild.txt
llvm/test/CodeGen/CSKY/add.ll
llvm/test/CodeGen/CSKY/and.ll
llvm/test/CodeGen/CSKY/ashr.ll
llvm/test/CodeGen/CSKY/atomicrmw.ll
llvm/test/CodeGen/CSKY/br-double.ll
llvm/test/CodeGen/CSKY/br-float.ll
llvm/test/CodeGen/CSKY/br.ll
llvm/test/CodeGen/CSKY/call.ll
llvm/test/CodeGen/CSKY/cmpxchg.ll
llvm/test/CodeGen/CSKY/fadd.ll
llvm/test/CodeGen/CSKY/fcmp.ll
llvm/test/CodeGen/CSKY/fdiv.ll
llvm/test/CodeGen/CSKY/fmul.ll
llvm/test/CodeGen/CSKY/fneg.ll
llvm/test/CodeGen/CSKY/fpext.ll
llvm/test/CodeGen/CSKY/fptosi.ll
llvm/test/CodeGen/CSKY/fptoui.ll
llvm/test/CodeGen/CSKY/fptrunc.ll
llvm/test/CodeGen/CSKY/frem.ll
llvm/test/CodeGen/CSKY/fsub.ll
llvm/test/CodeGen/CSKY/icmp.ll
llvm/test/CodeGen/CSKY/indirectbr.ll
llvm/test/CodeGen/CSKY/inttoptr.ll
llvm/test/CodeGen/CSKY/ld-float.ll
llvm/test/CodeGen/CSKY/ld.ll
llvm/test/CodeGen/CSKY/lit.local.cfg
llvm/test/CodeGen/CSKY/lshr.ll
llvm/test/CodeGen/CSKY/mul.ll
llvm/test/CodeGen/CSKY/mula.ll
llvm/test/CodeGen/CSKY/or.ll
llvm/test/CodeGen/CSKY/ptrtoint.ll
llvm/test/CodeGen/CSKY/sdiv.ll
llvm/test/CodeGen/CSKY/select-float.ll
llvm/test/CodeGen/CSKY/select.ll
llvm/test/CodeGen/CSKY/sext.ll
llvm/test/CodeGen/CSKY/shl.ll
llvm/test/CodeGen/CSKY/sitofp.ll
llvm/test/CodeGen/CSKY/srem.ll
llvm/test/CodeGen/CSKY/st-float.ll
llvm/test/CodeGen/CSKY/st.ll
llvm/test/CodeGen/CSKY/sub.ll
llvm/test/CodeGen/CSKY/trunc.ll
llvm/test/CodeGen/CSKY/udiv.ll
llvm/test/CodeGen/CSKY/uitofp.ll
llvm/test/CodeGen/CSKY/urem.ll
llvm/test/CodeGen/CSKY/xor.ll
llvm/test/CodeGen/CSKY/zext.ll
llvm/utils/UpdateTestChecks/asm.py
More information about the llvm-commits
mailing list