Skip to content

Latest commit

 

History

History
51 lines (41 loc) · 2.46 KB

environment.md

File metadata and controls

51 lines (41 loc) · 2.46 KB

LA架构编译器常用配置及参数说明

编译器命令行选项

与龙芯架构相关的编译器选项含义包括以下三方面:

  • 配置目标架构:允许使用的指令集和寄存器范围;
  • 配置目标 ABI:标准数据类型的表示方法,函数调用传参、返回的实现方式;
  • 配置优化参数:用于指导编译器优化的微架构特性。

为此,编译器应实现以下两类命令行选项:

  • 基础选项:选择编译目标的基本配置,包括 -march -mabi -mtune;
  • 扩展选项:对基础选项或基础选项默认值的配置进行增量调整。

Table 1. 基础选项

选项 可用值 描述
-march= native loongarch64 la464 选择目标架构:设定默认可用的指令集和寄存器范围 (即默认使用的指令集模块集合)
-mabi= lp64d lp64f lp64s ilp32d ilp32f ilp32s 选择基础 ABI 类型
-mtune= native loongarch64 la464 选择目标微架构:设定微架构相关的性能调优参数; 取值范围是 -march选项的超集,默认值与 -march 值相同

Table 2. 扩展选项

选项 可用值 描述
-mfpu= 64 32 none (等同于0) 选择可用的基础浮点数指令和寄存器范围
-msoft
-float
-mfpu=none 的别名
-msingle-float -mfpu=32 的别名
-mdouble-float -mfpu=64 的别名

应用二进制接口 (ABI) 的构成

对于龙芯架构编译器,完整的 ABI 配置应包含两个部分: 基础 ABI 和 ABI 扩展特性 。前者描述了 ABI 中整 型和浮点数据的表示、 传参和返回方式,后者则代表对基础 ABI 进行的总体调整,可能需要特定 ISA 扩展支 持。

需要注意的是,不同 ABI 扩展特性之间是 互斥 的,不能相互叠加; 具有不同扩展特性的 ABI 配置之间也 互 不兼容 。

原则上本文档不会增加新的 ABI 扩展特性,除非它能提供 其他编译器优化技术不能单独实现的功能或性能优 势。

基础 ABI 共有六种,编译器可根据实现的目标架构范围,选择实现其中的一种或多种, 其标准名称和对应的 -mabi 选项值一致。

Table 3. 基础ABI类型

标准名称 数据模型 可用于传参、返回的通用/浮点寄存器宽度
lp64d LP64 64 / 64
lp64f LP64 64 / 32
lp64s LP64 64 / (无)
ilp32d ILP32 32 / 64
ilp32f ILP32 32 / 32
ilp32s ILP32 32 / (无)