Hasty Briefsbeta

双语

Adding a new instruction to RISC-V back end in LLVM

8 months ago
  • #RISC-V
  • #LLVM
  • #compiler
  • 编译器被描述为一种复杂但可理解的软件,它将高级代码转换为优化的机器代码。
  • 文章演示了如何在LLVM的RISC-V目标中添加一个名为'foo'的虚拟新指令,并展示该过程十分直观。
  • 'foo'指令是RISC-V中的R型指令,接受两个操作数并将结果存储在寄存器中,文中提供了具体的编码细节。
  • TableGen作为LLVM中的领域特定语言被引入,用于声明记录和模板,从而简化指令定义过程。
  • 实现过程包括在TableGen中定义'foo'指令,指定其属性、操作数和编码,而无需直接编写C++代码。
  • 创建了一个名为'dummy'的新特性标志来控制'foo'指令,遵循RISC-V的模块化扩展模型,要求在编译时显式启用。
  • 文章最后鼓励读者探索编译器开发,强调只要掌握正确知识,这类任务其实触手可及。