1.2.3.1 机器描述相关的指令表示 你有没有在凌晨三点,盯着一条 指令的机器描述(Machine Description, 文件)发呆,而编译器却固执地生成了错误的寄存器约束、漏掉了关键的地址模式匹配,甚至把本该合成的 硬拆成 ?——这不是玄学,也不是运气差。这是你在 机器描述中对“指令表示”的语义粒度把握失准 的必然回响。 我们不谈抽象的“LIR 是低级中间表示”这种教科书定义。我们只聊一件事:如何让一条 x86-64 的 指令,在 TableGen 描述中,既精确表达其作为地址计算单元的本质,又不被指令选择器(Instruction Selector)误判为普通 ,更不会在寄存器分配后因约束冲突被迫插入冗余 指令。 这,就是“1.2.3.