跳转至

第二部分:bisheng 使用指南

本项目使用的 bisheng 基于 Clang/LLVM 15.0.5,AI Core 目标不是默认 host target,因此每条命令都必须明确指定 triple 和 CPU。

两种调用模式

模式 入口 用途
编译驱动 ./bisheng -target ... C/Ascend C 预处理、优化、代码生成及目标文件生成
集成汇编器 ./bisheng -cc1as -triple ... 汇编 .s、显示机器码、生成可重定位目标文件

CPU 选择

Vector/AIV: dav-c220-vec
Cube/AIC:   dav-c220-cube

驱动模式:

-Xclang -target-cpu -Xclang dav-c220-vec

汇编器模式:

-target-cpu dav-c220-vec

不要用普通 -mcpu=dav-c220-vec 替代上述参数。当前驱动会提示该参数未使用,随后可能因为目标 feature 未启用而拒绝 builtin。

Windows 环境

随项目使用的 bisheng 是 Linux ELF。Windows PowerShell 中应通过 WSL 运行:

wsl bash -lc 'cd <TOOLCHAIN_ROOT> && ./bisheng --version'

后续页面使用 Linux shell 命令;在 WSL 中把工作目录切换到 bisheng 所在目录即可。

推荐工作流

flowchart LR
  C["Ascend C / builtin"] -->|"-S"| S["目标汇编 .s"]
  S -->|"-cc1as -show-encoding"| E["汇编 + 小端字节"]
  S -->|"-cc1as -filetype obj"| O["ELF 目标文件"]
  C -->|"-c"| O
  I["GNU inline asm"] --> C