🔧 Compiler66x — LLVM-based C66x DSP 编译器

基于 LLVM/Clang 框架构建的 TI C66x DSP 编译器。Windows 10 开发环境,以 TI CCS C6000 Code Generation Tools 为 golden 参考。

项目全景时间线

Compiler66x 开发历程

timeline title Compiler66x 开发时间线 2026-05 : LLVM C66x 后端启动 : TableGen .td 文件分析 : 指令编码研究 2026-06-11 : 17条指令 TableGen 完成 : isCodeGenOnly=1 移除 : Float(4)+Bit(8)+Rotate(4)+DSP(1) 2026-06-11 : LLVM 构建启动 : 8并行编译 : Release+Clang : 预计30-60分钟 2026-06-20 : CC66x 后端实现 : M2 变体分支 : largeoffset 分支 2026-06-27 : CC66x 实现完成 : C66X_IMPLEMENTATION_COMPLETE : 构建状态文档编写 2026-07-01 : CompilerSploop 启动 : 软件流水循环优化 : SPLOOP 硬件循环缓冲区 2026-07-10 : 中央 active 18条 : 全部归 Compiler66x : 主要工作量集中

项目分布

项目位置说明
Compiler66x 主线CodexWorkSpaceLLVM-based C66x 编译器主线
Compiler66x-package-m2CodexWorkSpaceM2 新编码变体分支
Compiler66x-m2-largeoffsetCodexWorkSpace大偏移量寻址分支
Compiler66x-sploopCodexWorkSpaceSPLOOP 硬件循环优化分支
Compiler66x-worktreesCodexWorkSpace多 worktree 并行开发
CC66x 实现版ClaudeWorkSpaceLLVM 后端实现完成版
CompilerSploopClaudeWorkSpace循环优化专项

已启用指令(17条)

指令分类

flowchart TB subgraph FLOAT["浮点运算 (4条)"] F1["ADDSP 单精度加法"];F2["SUBSP 单精度减法"];F3["MPYSP 单精度乘法"];F4["ABSSP 绝对值"] end subgraph BIT["位操作 (8条)"] B1["CLR/SET 位清除/设置"];B2["EXT/EXT_A 位提取"];B3["EXTU/EXTU_A 无符号位提取"];B4["LMBD/LMBDctlz 最左位检测"] end subgraph ROT["旋转/清零 (4条)"] R1["ZERO 清零"];R2["ROTL 旋转左移"];R3["ROTL_var_A 变量旋转A"];R4["ROTL_var_B 变量旋转B"] end subgraph DSP["DSP运算 (1条)"] D1["DOTP2 双点积"] end style FLOAT fill:#3987e5,color:#fff style BIT fill:#199e70,color:#fff style ROT fill:#c98500,color:#000 style DSP fill:#e66767,color:#fff

还有约 50 条指令仍标记为 codeGenOnly——它们需要在 TI CCS 模拟器上逐一验证后才能启用。后续工作是构建 LLVM 后端并逐条验证。

🔧 LLVM TableGen 是什么?

TableGen 是 LLVM 的"指令描述语言"——用一种声明式语法描述每条指令的编码格式、操作数类型、汇编语法。编译器会根据 .td 文件自动生成指令选择器、汇编器、反汇编器的代码。修改 isCodeGenOnly=1 为 0 就是"启用"一条指令。

多分支并行开发策略

并行分支管理

graph TB MAIN["🌳 Compiler66x 主线"] --> M2["M2 新编码分支"] MAIN --> LO["largeoffset 大偏移量分支"] MAIN --> SP["SPLOOP 循环优化分支"] MAIN --> WT["worktrees 并行工作树"] MAIN --> CC["CC66x Claude 实现版"] CC -->|"17条指令启用"| BUILD["⏭️ LLVM 构建验证"] style MAIN fill:#3987e5,color:#fff style BUILD fill:#199e70,color:#fff