acsim-emit-cxx 把模块特化指纹和进程特化指纹的 64 位十六进制 SHA-256 嵌进每一个生成符号:
acsim_generated::::s<module_fp>::::p<process_fp>::Process::
加法器 demo 里,一行 dispatch 赋值就超过 400 字符,gdb / 阅读 model.cpp / diff 几乎不可用。特化身份需要保留,但不应该作为日常阅读的主符号。
现状
命名规则在两处硬编码:
降级:lib/Conversion/ACIRToACSim/ACIRToACSim.cpp(dispatch 的 work/xfer/reset/validate 字符串)
发射:lib/CodeGen/EmitCxx.cpp 的 ownerNamespace / processNamespace
acsim_generated:: + Module + "::s" + module.specialization[7:]
- "::" + process + "::p" + process.specialization[7:] + "::"
substr(7) 只是去掉 sha256: 前缀,完整 64 个 hex 字符仍留在 C++ 标识符里。
acsim-emit-cxx 把模块特化指纹和进程特化指纹的 64 位十六进制 SHA-256 嵌进每一个生成符号:
acsim_generated::::s<module_fp>::::p<process_fp>::Process::
加法器 demo 里,一行 dispatch 赋值就超过 400 字符,gdb / 阅读 model.cpp / diff 几乎不可用。特化身份需要保留,但不应该作为日常阅读的主符号。
现状
命名规则在两处硬编码:
降级:lib/Conversion/ACIRToACSim/ACIRToACSim.cpp(dispatch 的 work/xfer/reset/validate 字符串)
发射:lib/CodeGen/EmitCxx.cpp 的 ownerNamespace / processNamespace
acsim_generated:: + Module + "::s" + module.specialization[7:]
substr(7) 只是去掉 sha256: 前缀,完整 64 个 hex 字符仍留在 C++ 标识符里。