×
注意!页面内容来自https://www.bilibili.com/opus/1077842379643289652,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页
构建 PCH 时实例化模板
如果修改时间不同,则根据内容验证 PCH 输入文件
将
加载指定插件(动态共享对象)
在预构建模块路径中查找隐式模块
指定预构建模块路径
将子进程统计信息保存到指定文件
打印子进程统计信息
生成 gcov 数据文件 (*.gcda) 的 Instrument 代码
Instrument 仅对名称与所有以分号分隔的正则表达式不匹配的文件执行操作
仪器仅对名称与分号分隔的正则表达式匹配的文件起作用
将函数划分为 N 组,并使用 -fprofile-selected-function-group 仅选择第 i 组中的函数进行插桩
生成插桩代码,将执行计数收集到
生成插桩代码,将执行计数收集到 default.profraw 中(会被 LLVM_PROFILE_FILE 环境变量覆盖)
生成插桩代码,将执行计数收集到
生成插桩代码,将执行计数收集到 default.profraw 文件中(会被选项的“=”形式或 LLVM_PROFILE_FILE 环境变量覆盖)
使用插桩数据用于配置文件引导优化
定义要检测的函数/文件列表的文件名。该文件使用清理器特例列表格式。
使用
指定样本配置文件是精确的。
启用基于样本的配置文件引导优化。
使用 -fprofile-function-groups 将函数划分为 N 个组,并仅选择第 i 组中的函数进行检测。有效范围为 0 到 N-1(含)。
设置配置文件计数器的更新方法。
使用检测数据进行配置文件引导优化。如果 pathname 是目录,则从
确定优化器在计算浮点表达式时是否支持括号
为样本分析发出伪探测
启用身份验证失败时的陷阱
启用所有间接调用的签名和身份验证
启用 C 函数指针的类型识别
启用间接 goto 目标的签名和身份验证
启用 init/fini 数组中函数指针的签名
启用指针身份验证内在函数
启用返回地址的签名和身份验证
启用 std::type_info 虚表指针的类型和地址识别
启用虚表指针的地址识别
启用虚表指针的类型识别
保存随机化结构布局功能使用的种子的文件
随机化结构布局功能使用的种子
启用原始字符串文字
允许重新关联除法运算
覆盖默认 ABI,以在寄存器中返回小型结构体
使用 atexit 或 __cxa_atexit 注册全局析构函数
启用 C++17 宽松模板参数匹配
生成只读位置无关代码(仅限 ARM)
将 -rpath 和特定于体系结构的资源目录添加到链接器标志。指定 --hip-link 时,还需将 -rpath 和 HIP 运行时库目录添加到链接器标志中。
在 Windows 上,发出 /defaultlib: 指令以链接编译器实时库(默认)。
生成读写位置无关代码(仅限 ARM)。
显示与 -Wunsafe-buffer-usage 警告相关的代码更新建议。
使用 profi 推断块数和边数。
设置 AddressSanitizer 插桩工具发出的模块析构函数类型。这些析构函数用于在代码卸载时(例如通过 `dlclose()`)注销已插桩的全局变量。
AddressSanitizer 的字段填充级别
在 AddressSanitizer 中启用链接器全局变量的死区剥离
始终为地址清理器插桩生成函数调用
在 AddressSanitizer 中使用自定义运算符 new[] 时启用数组 cookie 中毒
选择 AddressSanitizer 中堆栈返回后使用检测模式
在 AddressSanitizer 中启用作用域后使用检测
启用 ODR 指示全局变量,以避免在部分清理的程序中出现错误的 ODR 违规报告,但会增加二进制大小
使符号表中的跳转表地址规范化
为跨 DSO 调用启用控制流完整性 (CFI) 检查。
在 CFI 间接调用类型签名检查中规范化整数
在 CFI 间接调用类型签名检查中泛化指针
将 Sanitizer 覆盖率检测限制在符合提供的特殊情况列表的模块和函数上,被阻止的模块和函数除外
禁用 Sanitizer 覆盖率检测,即使这些模块和函数符合提供的特殊情况列表,即使是允许的模块和函数也是如此
指定 Sanitizer 的覆盖率检测类型
选择要定位的 HWAddressSanitizer ABI(拦截器或平台,默认拦截器)。此选项目前未使用。
在 HWAddressSanitizer 中启用别名模式
消毒器的忽略列表文件路径
启用未初始化参数和返回值的检测
在 MemorySanitizer 中启用来源跟踪
在 MemorySanitizer 中启用来源跟踪
在 MemorySanitizer 中启用销毁后使用检测
将默认 MTE 模式设置为“同步”(默认)或“异步”
为指定的消毒器启用恢复
稳定版用于杀毒器运行时的 ABI 检测。默认值:Conventional(常规)
启用杀毒器统计信息收集。
杀毒器系统忽略列表文件的路径
在 ThreadSanitizer 中启用原子操作检测(默认)
在 ThreadSanitizer 中启用函数入口/出口检测(默认)
在 ThreadSanitizer 中启用内存访问检测(默认)
为指定的消毒器启用捕获
为所有消毒器启用捕获
在发出检查元数据时,删除(或仅保留,如果为负数)指定数量的路径组件。
针对各种形式的未定义或可疑行为启用运行时检查。请参阅用户手册了解可用的检查
生成特定格式的优化记录文件
生成 YAML 优化记录文件
使用 SEH 样式的异常
为命名部分使用单独的唯一部分(仅限 ELF)
为枚举类型分配其声明的可能值范围所需的字节数
强制 wchar_t 为短无符号整型
当过载解析失败时,显示哪些过载候选项。默认为“all”。
在 -H 输出中显示跳过的包含。
字符是有符号的。
启用 C++14 大小的全局释放函数。
使用 SjLj 风格的异常。
跳过全局模块片段中声明的 ODR 检查。
启用超字级并行向量化过程
设置对无法识别的标识符执行拼写检查的最大次数(0 = 无限制)
在使用 Split DWARF 时,在没有 .dwo/.dwp 文件的情况下,在对象/可执行文件中提供最少的调试信息,以便于在线符号化/堆栈跟踪
启用 LTO 单元拆分
启用使用配置文件信息进行后期函数拆分 (x86 ELF)
使用分段堆栈
启用堆栈冲突保护
为所有函数启用堆栈保护器
为一些易受堆栈溢出攻击 (stack smashing) 影响的函数启用堆栈保护器。与 -fstack-protector 相比,此选项采用更强的启发式算法,涵盖包含任意大小(和任意类型)数组的函数,以及任何对 alloca 的调用或从局部变量获取地址的操作。
为一些易受堆栈溢出攻击 (stack smashing) 影响的函数启用堆栈保护器。此选项采用宽松的启发式算法,如果函数包含字符(或 8 位整数)数组或常量大小的 alloca 调用,且其大小大于 ssp-buffer-size(默认值:8 字节),则认为这些函数易受攻击。所有可变大小的 alloca 调用都被视为易受攻击。启用堆栈保护器的函数会在堆栈框架中添加一个保护值,并在函数退出时进行检查。该保护值在堆栈框架中的位置必须确保易受攻击变量的缓冲区溢出在覆盖函数返回地址之前先覆盖该保护值。引用堆栈保护值存储在全局变量中。
发出包含函数堆栈大小元数据的节
发出包含函数堆栈大小信息的 .su 文件
发出程序使用的所有类型的完整调试信息
启用基于严格别名规则的优化
启用基于枚举值范围的严格定义的优化
启用基于灵活数组严格定义的优化
假设溢出的浮点型到整型的强制类型转换未定义(默认)
启用基于覆盖多态 C++ 对象的严格规则的优化
控制 Swift 异步扩展帧信息的发布
启用设备的 SYCL 内核编译
运行预处理器、解析器和语义分析阶段
将此模块构建为系统模块。仅与 -emit-module 一起使用
设置模板实例化回溯中打印的最大条目数(0 = 无限制)
设置递归模板实例化的最大深度
生成 gcov 注释文件 (*.gcno)
仅针对 ThinLTO 瘦链接,将最小化的位码写入
使用提供的函数摘要索引执行 ThinLTO 导入
(适用于新的 pass 管理器)'per-pass':每个 pass 生成一份报告;'per-pass-run':每次 pass 调用生成一份报告
时间分析器跟踪的最小时间粒度(以微秒为单位)
使时间跟踪捕获详细的事件详细信息(例如源文件名)。这可以使输出大小增加 2-3 倍
与 -ftime-trace 类似。指定 JSON 文件或包含 JSON 文件的目录
启用时间分析器。根据输出文件名生成 JSON 文件。
调用指定函数,而不是陷阱指令
指定溢出时调用的函数
整数溢出陷阱
处理三字组序列
如果变量大小超过指定的实例数(以字节为单位),则停止初始化简单的自动堆栈变量
在指定数量的实例后停止初始化琐碎的自动堆栈变量
初始化琐碎的自动堆栈变量。默认为“uninitialized(未初始化)”
使用统一的 LTO 流水线
为基本块部分使用唯一名称(仅限 ELF)
通过附加模块路径的 MD5 哈希值来唯一化内部链接符号名称
开启循环展开器
允许不安全的浮点数学优化,这可能会降低精度
为单源卸载语言 CUDA 和 HIP 生成编译单元 ID 的方法:'hash'(通过哈希文件路径和命令行选项生成的 ID)| 'random'(ID 生成为随机数)| 'none'(禁用)。默认值为 'hash'。如果指定了此选项,则将被选项 '-cuid=[ID]' 覆盖。
在预处理输出中使用 #line
计算并存储用于构建AST的输入文件的哈希值。如果修改时间不匹配的文件内容相同,则视为有效文件。
使用指定的向量函数库
启用循环向量化过程
生成详细的汇编输出
启用LLVM IR验证
启用死虚函数消除优化。需要-flto=full选项。
dllexport定义的可见性。如果指定了Keep,则不调整可见性。[-fvisibility-from-dllstorageclass]
dllimport外部声明的可见性。如果指定了 Keep,则不调整可见性 [-fvisibility-from-dllstorageclass]
未指定显式 DLL 存储类型的外部声明的可见性。如果指定了 Keep,则不调整可见性 [-fvisibility-from-dllstorageclass]
根据全局变量的最终 DLL 存储类型覆盖其可见性。
使全局 C++ 运算符 new 和 delete 声明具有隐藏可见性
全局 C++ 运算符 new 和 delete 声明的可见性。如果指定了“source”,则不调整可见性。
启用 -fvisibility-inlines-hidden 后,内联 C++ 成员函数中的静态变量也将默认具有隐藏可见性。
使内联 C++ 成员函数默认具有隐藏可见性。
使全局类型具有“default”可见性,全局函数和变量默认具有“hidden”可见性。
未指定显式 DLL 存储类的定义的可见性。如果指定了 Keep,则不调整可见性 [-fvisibility-from-dllstorageclass]
设置所有全局定义的默认符号可见性
使用 WebAssembly 风格的异常
启用全程序 vtable 优化。需要 -flto
将有符号整数溢出视为二进制补码
将字符串文字存储为可写数据
启用 IBM XL #pragma pack 处理
即使包含函数并非始终被检测,也始终发出 __xray_customevent(...) 调用
即使包含函数并非始终被检测,也始终发出 __xray_typedevent(...) 调用
已弃用:定义用于注入“始终检测”XRay 属性的白名单的文件名。
定义用于注入 XRay 属性的函数/类型列表的文件名。
仅检测 N 个组中的 1 个
除非循环函数也满足最小函数大小要求,否则不检测带有循环的函数。
设置使用 XRay 检测的最小函数大小。
选择要发出的 XRay 检测点。选项:all、none、function-entry、function-exit、function、custom。默认值为“all”。“function”包含“function-entry”和“function-exit”。
在函数入口和出口生成 XRay 插桩工具。
指定 -fxray-instrument 时链接 XRay 运行时库(默认)。
默认链接到 XRay 插桩二进制文件的模式列表。
已弃用:定义用于注入“从不插桩”XRay 属性的白名单的文件名。
使用 -fxray-function-groups 时,选择要插桩的函数组。有效范围为 0 至 fxray-function-groups - 1
函数返回时清除调用使用的寄存器(仅限 AArch64/x86)
启用 System z 矢量语言扩展
将目录添加到框架包含文件搜索路径
使用指定目录中的 GCC 安装。该目录以类似“lib{,32,64}/gcc{,-cross}/$triple/$version”的路径部分结尾。注意:编译器使用的可执行文件(例如 ld)不会被所选的 GCC 安装覆盖
指定 Clang 可以找到“include”和“lib{,32,64}/gcc{,-cross}/$triple/$version”的目录。Clang 将使用版本最高的 GCC 安装。
搜索包含指定三元组的 GCC 安装。
将编译器路径和命令行发送到 CodeView 调试信息中
将类型记录哈希值发送到 .debug$H 段
生成 CodeView 调试信息
使用 dwarf 版本 2 生成源代码级调试信息
使用 dwarf 版本 3 生成源代码级调试信息
使用 dwarf 版本 4 生成源代码级调试信息
使用 dwarf 版本 5 生成源代码级调试信息
如果启用了调试信息生成,则为 ELF 二进制文件启用 DWARF32 格式。
如果启用了调试信息生成,则为 ELF 二进制文件启用 DWARF64 格式。
使用默认的 Dwarf 版本生成源码级调试信息
在 DWARF 调试部分嵌入源码文本
启用重现器(选项:off(关闭)crash (default)(崩溃(默认))error(错误)always(始终))
仅发出调试行信息指令
仅发出调试行号表
生成包含对 clang 模块或预编译头文件的外部引用的调试信息
不将编译器路径和命令行发送到 CodeView 调试信息中
恢复默认行为,不在 DWARF 调试段中嵌入源文本
不发出内联行号表。
HIP 设备编译的捆绑输出文件
HIP 的仪器设备库,它是一个包含 __cyg_profile_func_enter 和 __cyg_profile_func_exit 的 LLVM 位码
HIP 内核启动边界的默认每个块最大线程数
链接用于 GPU 的 LLVM C 库
设置 DWARF 裂变模式
将 DWARF 功能限制为指定版本中定义的功能,避免使用更高版本的功能。
DWARF 调试段压缩类型
将最多
生成源码级调试信息
显示隐藏选项的帮助
HIP 设备库
为 HIP 链接 clang-offload-bundler 包
HIP 运行时安装路径,用于查找 HIP 版本并添加 HIP 包含路径。
HIP 版本号,格式为 major.minor.patch
HIP 到 SPIR-V 转换的转换插件路径。
将所有内存分配/释放调用替换为 hipManagedMalloc/hipFree 等效项
HIP 标准并行算法加速库路径,用于查找并隐式包含库头文件
HIP 标准并行算法加速库所需的 rocPrim 路径,用于隐式包含 rocPrim 库
HIP 标准并行算法加速库所需的 rocThrust 路径,用于隐式包含 rocThrust 库
为标准并行算法启用 HIP 加速
显示头文件包含和嵌套深度
将所有之前的 -I 标志限制为双引号包含,并从包含路径中移除当前目录
将模块名称引用的目录添加到 API 注释搜索路径
即使在 -ibuiltininc 之前或之后使用 -nostdinc,也启用内置 #include 目录。在禁用该选项后使用 -nobuiltininc
将目录添加到 AFTER 包含搜索路径
将目录添加到 SYSTEM 框架搜索路径,绝对路径相对于 -isysroot
将目录添加到 SYSTEM 框架搜索路径
在解析前包含文件中的宏
包含预编译头文件
在解析前包含文件
将下一个包含目录(-I 或 -F)设置为索引器头文件映射
设置 -iwithprefix/-iwithprefixbefore 前缀
将目录添加到 QUOTE 包含搜索路径
设置系统根目录(通常为 /)
将目录添加到 SYSTEM 包含搜索路径的末尾
将目录添加到 SYSTEM 包含搜索路径
将文件描述的虚拟文件系统覆盖在真实文件系统上
将目录设置为包含前缀的包含搜索路径
将目录设置为带前缀的系统包含搜索路径
将目录添加到系统包含搜索路径,绝对路径相对于 -isysroot
将目录添加到包含搜索路径列表的末尾
libomptarget-amdgcn 位码库的路径
libomptarget-amdgcn 位码库的路径
libomptarget-nvptx 位码库的路径
将目录添加到库搜索路径
在 AIX 上启用四字原子 ABI (仅限 AIX PPC64)。使用 lqarx/stqcx 指令。
启用 SVR4 样式的位置无关代码(仅限 Mips)
对于随主程序加载的共享库,在函数级别将本地动态访问更改为初始执行访问(仅限 AIX 64 位)。
为本地动态 TLS 变量生成更快的访问序列,其中 TLS 基地址的偏移量被编码为立即数操作数(仅限 AIX 64 位)。此访问序列不适用于大于 32KB 的变量。
为本地执行 TLS 变量生成更快的访问序列,其中 TLS 基地址的偏移量被编码为立即数操作数(仅限 AIX 64 位)。此访问序列不适用于大于 32KB 的变量。
返回内存中的所有结构体(仅限 PPC32)
指定边界大小以对齐分支
指定要对齐的分支类型
将结构体中的双精度数对齐为两个字(仅限 x86)
启用 AltiVec 向量初始化器语法
设置预期默认浮点模式寄存器中的 IEEE 位。支持异常标志收集、静默和传播信号 NaN 输入的浮点操作码,符合 IEEE 754-2008 标准。此选项会更改 ABI。(仅限 AMDGPU)
启用精确内存模式(仅限 AMDGPU)
启用 APX 功能
允许在 APX 的内联汇编中使用 GPR32
获取目标可用架构列表,请使用“-mcpu=help”
链接为混合 ARM64X 映像
在 System Z 上通过反向链链接堆栈框架
强制执行间接分支和函数返回的目标
将选定的分支(fused、jcc、jmp)对齐在 32 字节边界内
启用 CABAC 指令
允许使用 CMSE(Armv8-M 安全扩展)
指定代码对象 ABI 版本。默认为 5。(仅限 AMDGPU)
启用在可能的情况下将完整的构造函数和析构函数以别名形式发出。
如需查看目标可用 CPU 的列表,请使用“-mcpu=help”
控制 PowerPC 上的 CR 位跟踪功能。“-mcrbits”(启用 CR 位跟踪支持)是 POWER8 及以上版本以及所有其他 CPU(应用优化后,-O2 及以上版本)的默认设置。
允许使用 CRC 指令(仅限 ARM/Mips)
指定 CU 波前执行模式(仅限 AMDGPU)
在程序启动时全局设置浮点控制寄存器中的非正规数为零 (DAZ) 和清零 (FTZ) 位。
默认可见性和导出之间的映射。
强制双精度浮点数为
写入包含用户和系统头文件的 depfile。
设置 EABI 类型(默认值取决于三元组)。
即使常量满足 -G
启用实验性的 RISC-V 扩展。
执行模型(仅限 WebAssembly)
禁止生成对代码段的数据访问(仅限 ARM)
如果外部定义的数据满足 -G
在函数入口处插入对 fentry 的调用(仅限 x86/SystemZ)
解决 VLLDM 勘误表 CVE-2021-35465(仅限 ARM)
解决 Cortex-A53 勘误表 835769(仅限 AArch64)
解决 Cortex-A57 勘误表 1742098(仅限 ARM)
解决 Cortex-A72 勘误表 1655431(仅限 ARM)
启用影子堆栈时强制使用软件影子堆栈
使用 32 位浮点寄存器(仅限 MIPS)
使用 64 位浮点寄存器(仅限 MIPS)
选择用于发出帧记录的帧链模型(仅限 Arm)。
将返回值替换为跳转到 ``__x86_return_thunk`` 的跳转(仅限 x86,否则会出错)
将 -MMD、-MD、-MM 或 -M 的 depfile 输出写入
生成仅使用通用寄存器的代码(仅限 AArch64/x86)
启用全局变量合并
对已知位于小型数据段 (MIPS) 中的符号使用 GP 相对访问
启用或禁用控制流保护检查和保护表生成
将缺失的头文件添加到 depfile
选择直线推测强化范围(仅限 ARM/AArch64/X86)。
启用 Hexagon HVX IEEE 浮点
设置 Hexagon 向量长度
启用 Hexagon HVX QFloat 指令
启用 Hexagon 矢量扩展
启用 Hexagon 矢量扩展
使用 Intel MCU ABI
在 AIX 操作系统中不发出汇编代码的可见性属性,或在 XCOFF 目标文件中将所有符号设置为“未指定”可见性
运行迁移器
(integrated-as) 生成可与增量链接器一起使用的目标文件
为调用添加 cs 前缀,并为间接 thunk 添加 jmp
更改间接跳转指令以抑制推测
设置 iOS 部署目标
为每个输入写入编译数据库条目
启用龙芯高级 SIMD 扩展 (LASX)。
在优化流水线后链接内置位码
-mllvm 的别名
用于转发到 LLVM 选项处理的附加参数
将 -G 行为扩展为对象本地数据 (MIPS)
生成具有扩展寻址能力的分支,通常通过间接跳转实现。
强制长双精度数为 128 位
强制长双精度数为 64 位
强制长双精度数为 80 位,填充至 128 位用于存储
不将 LR 寄存器分配用于通用用途,仅用于调用。(仅限 AArch64)
启用龙芯 SIMD 扩展 (LSX)。
仅启用负载值注入 (LVI) 的控制流缓解措施
启用负载值注入 (LVI) 的所有缓解措施
设置 macOS 部署目标
启用 4 操作数 madd.s、madd.d 及相关指令的生成。
将带有 BTI 的 .note.gnu.property 添加到汇编文件(仅限 AArch64)
编写包含用户头文件的 depfile
启用 memop 指令的生成
转发给 MLIR 选项处理的附加参数
设置默认结构布局以兼容 Microsoft 编译器标准
启用 MSA ASE(仅限 MIPS)
启用 MT ASE(仅限 MIPS)
与 -MMD 类似,但也隐含 -E 并默认写入标准输出