我可以使用哪些 March/mtune 选项?

2023-12-25

有没有办法让 gcc 输出可用的 -march=arch 选项?我遇到构建错误(尝试过-march=x86_64),我不知道我的选择是什么。

我使用的编译器是 gcc 的专有包装器,它似乎不喜欢-march=skylake。标志应该是相同的,所以我假设我发送给 gcc 来转储架构的任何选项对于这个包装器来说都是相同的。

我设法使用虚假参数导致 gcc 出错,并转储了一个列表,但现在我正在使用包装器,但我没有看到这一点。

我怎样才能让 gcc 告诉我它支持什么?


Use gcc --target-help

-march=CPU[,+EXTENSION...]
                      generate code for CPU and EXTENSION, CPU is one of:
                       generic32, generic64, i386, i486, i586, i686,
                       pentium, pentiumpro, pentiumii, pentiumiii, pentium4,
                       prescott, nocona, core, core2, corei7, l1om, k1om,
                       iamcu, k6, k6_2, athlon, opteron, k8, amdfam10,
                       bdver1, bdver2, bdver3, bdver4, znver1, znver2,
                       btver1, btver2
...

它通常不是一般的架构x86 or x86-64但具体的微架构。但有x86-64 (not x86_64)适用于具有 64 位扩展的通用 x86 CPU。每个架构的完整列表可以在GCC's -march manual https://gcc.gnu.org/onlinedocs/gcc/Option-Index.html#Option-Index_op_letter-M。对于 x86:

  • -march=cpu-type

    为机器类型 cpu-type 生成指令。相比之下-mtune=cpu-type,它只是调整指定的生成代码cpu-type, -march=cpu-type允许 GCC 生成可能根本无法在指定处理器以外的处理器上运行的代码。指定-march=cpu-type暗示-mtune=cpu-type.

...

https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html#index-march-13 https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html#index-march-13


虽然基线版本-march is -march=x86-64,基线/默认调整选项是-mtune=generic。这样做的目的是在任何地方都不会太糟糕,即使以额外的指令或代码大小为代价,也能避免性能缺陷。


-march=native将为运行编译器的机器选择正确的架构并调整设置,或者tune=generic如果编译器无法识别正在运行的 CPU 的特定型号。

(例如 Skylake 上的旧 gcc,仍将启用-mavx2 -mpopcnt -mbmi2等等,但会设置-mtune=generic而不是更接近合适的东西。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用哪些 March/mtune 选项? 的相关文章

  • 成员初始值设定项列表中的求值顺序是什么?

    我有一个带有一些参数的构造函数 我假设它们是按照列出的顺序初始化的 但在一种情况下 它们似乎是按相反的顺序初始化的 导致中止 当我反转参数时 程序停止中止 下面是我正在使用的语法的示例 a 之前需要初始化b 在这种情况下 你能保证这个初始化
  • 如何使用timeval结构计算毫秒?

    我想从 timeval 类型的变量中检索以毫秒为单位的值 以下是我的尝试 timeval time long int millis time gt tv sec 1000 time gt tv usec 1000 printf Second
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • 如何在 Windows 上使用命令行获取 svn 修订信息

    我正在尝试使用此命令行获取头部的修订信息 svn info https myserver branches Code Improvements rHEAD find Revision 然而 这返回修订版 1234 由于我使用 svn inf
  • 使用 Windows 命令行将多行环境变量回显到文本文件

    我有一个环境变量 SSH PRIVATE KEY 并希望使用命令行将其打印到文件中 而不使用批处理文件 这是因为我需要在 Gitlab Ci yml 脚本中使用此文件 在 Linux 中 这很简单 echo SSH PRIVATE KEY
  • 出现“重定位符号索引无效”错误时会发生什么?

    这是重现问题的测试 echo void whatever gt prog c gcc prog c 这会在 GCC 4 8 4 上产生以下错误 usr bin ld usr lib debug usr lib x86 64 linux gn
  • cmd中哪个符号是转义符?

    我有这个代码 powershell command New Object Net WebClient DownloadFile linkToMyFile file C my file 它用于下载文件 当我在远程服务器上的 cmd 中执行它时
  • 使用 gcc 理解共享库

    我试图理解 C 中共享库的以下行为 机器一 cat one c include
  • 将 XMM 寄存器压入堆栈

    有没有办法将打包双字整数从 XMM 寄存器推送到堆栈 然后在需要时将其弹出 理想情况下 我正在寻找通用寄存器的 PUSH 或 POP 之类的东西 我已经检查了英特尔手册 但我要么错过了命令 要么没有 或者我是否必须将值解压到通用寄存器然后推
  • Rails 命令有什么区别:--no-test-framework、--skip-test-unit 和 -T?

    原本我以为这三者都是一样的 但现在仔细一看 却发现它们各有不同 我通过搜索找不到任何关于此的好的文档 根据导轨API http api rubyonrails org classes Rails Generators Base html a
  • 如何使用 mingw gcc 链接 msvcr90.dll?

    如何使用 mingw gcc 链接 msvcr90 dll 我尝试了 lmsvcr90 这是最小的示例 include
  • 键值对作为控制台应用程序中的参数

    有没有一种简单的方法可以允许键 值对 都是字符串 的集合作为控制台应用程序的命令行参数 如果您的意思是有一个如下所示的命令行 c gt YourProgram exe switch1 value1 switch2 value2 这可以在启动
  • 从命令行减少 PNG 文件的位深度

    我可以从 CLI 执行什么命令或一系列命令来递归遍历目录树并将该树中所有 PNG 文件的位深度从 24bpp 减少到 16bpp 命令应该保留 alpha 层并且不应该增加 PNG 文件的大小 事实上减少会更好 我有一个基于 OSX 的系统
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • Mac psql/readline - 库未加载

    我正在 Mac Sierra 10 12 3 上工作 并且尝试通过以下方式访问 PostgreSQL 数据库psql命令 但它引发了错误 dyld Library not loaded usr local opt readline lib
  • 致命错误:Python.h:没有这样的文件或目录,python-Levenshtein 安装

    首先 我正在使用 Python 3 7 开发 Amazon EC2 实例 Amazon linux 版本 2 AMI 我正在尝试使用以下命令安装 python Levenshtein 包 pip3 install python Levens
  • 不可能的事情发生了!这是什么意思?

    我遇到了一个有趣的运行时错误 我认为这是某种内存泄漏 我写了以下程序 C Code include
  • CC、gcc 和 g++ 之间的区别?

    CC gcc g 这3个编译器在编译时有什么区别 汇编语言中的 C 和 C 代码 代码生成 可用库 语言特性等 这个问题的答案是特定于平台的 例如 Linux 上发生的情况与 Solaris 上发生的情况不同 最简单的部分 因为它不是特定于
  • 为什么 %processor_architecture% 总是返回 x86 而不是 AMD64

    我正在尝试检索环境变量来检测系统是32位还是64位 但在64位服务器上环境变量 processor architecture 正在返回x86代替AMD64 有人对此有任何线索吗 您可能获得了错误的环境变量 如果您的应用程序是在 64 位操作
  • 从命令行运行 PHP 脚本

    如何使用用于解析 Web 脚本的 PHP 解释器从命令行运行 PHP 脚本 我有一个phpinfo php从网络访问的文件显示German已安装 但是 如果我运行phpinfo php从命令行使用 php phpinfo php and g

随机推荐

  • 如何从环境变量将动态主题名称传递给@KafkaListener(topics)

    我正在写一个卡夫卡消费者 我需要将环境变量主题名称传递给 KafkaListener topics 这是我到目前为止所尝试过的 import org springframework beans factory annotation Auto
  • 使用 itextsharp 根据大小将 pdf 拆分为更小的 pdf

    因此 我们有一些非常低效的代码 可以根据允许的最大大小将 pdf 分成更小的块 又名 如果最大大小为 10megs 则将跳过 8 meg 文件 而将根据页数拆分 16 meg 文件 这是我继承的代码 我觉得必须有一种更有效的方法来做到这一点
  • numpy 中的数组切片

    今天我使用numpy数组进行一些计算 发现一个奇怪的问题 例如 假设我已经在Ipython中导入了numpy arange 并且我运行了一些脚本 如下所示 In 5 foo arange 10 In 8 foo1 foo arange 3
  • 如何通过 AJAX POST 将“数据”发送到 ASMX Web 服务?

    我可以成功地从我的网络服务接收值 因此在这方面脚本工作正常 不过 我现在尝试使用下面的 数据 字段将数据发送到网络服务 我不知道如何将一个简单的字符串 例如 test 发送到网络服务 这是我的网络方法期望的参数 任何帮助深表感谢 例如 fu
  • 将表单传递给服务层与原始输入

    验证表单并将其过滤后的输入传递到服务层更好 还是将原始输入传递到服务层并让服务验证输入 有或没有表单实例 更好 显然 如果是后者 控制器仍然需要访问表单 以便将其发送到视图进行渲染 如果是这样 您是否只需通过服务 service gt ge
  • bytesWritten,但其他设备从未收到 NSStreamEventHasBytesAvailable 事件

    我已经在 iPhone 和 Mac 之间建立了 Bonjour 网络 用户在 Mac 中显示的表格中选择 iPhone 的网络服务 并在两侧创建并打开一对流 iPhone 首先向 Mac 发送一个代码 整数 Mac成功接收 用户输入和处理暂
  • 将 _redirects 文件添加到 Netlify 上托管的 Vue SPA 的根路径

    我正在使用 Vue CLI 开发一个单页应用程序 并希望历史推送状态能够工作 以便获得干净的 URL 我必须遵循这个 https www netlify com docs redirects history pushstate and si
  • 类型错误:“str”不支持缓冲区接口

    我从我的原始代码发布 crystal open vmises dat r crystalincrement pickle load crystal crystaldir pickle load crystal crystalface pic
  • 将非数字替换为空字符串

    在我们的项目中快速添加需求 我们的数据库中保存电话号码的字段设置为仅允许 10 个字符 那么 如果我通过 913 444 5555 或其他任何内容 是否有一种快速方法可以通过某种特殊的替换函数运行字符串 我可以向它传递一组允许的字符 Reg
  • 如何获取 msvc 所需的运行时库的位置

    我有 CMake 的自定义包装器 它为各种平台 win32 SunOS 等 和不同的编译器执行配置 编译和创建发行版 我需要将所有需要的运行时库放入 distrib 中 nix 的 libgcc s so libstdc so 如 OS m
  • ViewController 内的 UINavigationController,视图顶部的间隙

    我正在开发一个通用应用程序 并尝试在 iPhone 和 iPad 版本之间共享尽可能多的代码 我需要使用 TabBarController 作为我的根视图控制器 虽然我想在每个选项卡中使用 SplitViewController 但 Spl
  • gitignore 根本不起作用。我无法让它忽略 .DS_Store 和 .gitignore 文件

    I have gitignored DS Store and gitignore文件 但仍然可以在 git status 中看到它们 有人可以向我解释如何确保在检查状态时我试图忽略的文件不会出现吗 git status Untracked
  • Tango Trees 有实际应用吗?

    平衡二叉搜索树 http en wikipedia org wiki Self balancing binary search tree给出一个O log n 保证搜索时间 探戈树 https en wikipedia org wiki T
  • 在Perl中,如何“跳过”某些文本并在剩余部分中进行搜索和替换? [复制]

    这个问题在这里已经有答案了 文本中多次出现pattern 在进行正则表达式查找和替换时 我想跳过文本的某些片段并替换pattern在剩下的部分 例如 在代码中 usr bin env perl use strict use warnings
  • 实时策略游戏如何在 PHP 中运行?

    一些 MMO 实时策略游戏 例如 Travian 或 oGame 是用 PHP 编码的 您能简单解释一下这样的游戏在幕后是如何运作的吗 游戏如何在没有玩家请求的情况下进行实时数据库更新 另外 当运行 Travian 等拥有 1000 名活跃
  • IE 兼容性问题:

    内的

    我有以下 HTML CSS 其中只有一个 span 标签样式为float right里面一个 h2 tag h2 H2 Test span SPAN text span h2 在 Firefox 上一切都运行良好 我怀疑其他好的浏览器 如

  • 带 2 补码的二进制减法

    我需要帮助使用 2 的表示形式进行二进制减法 并为每个数字使用 5 位 1 9 7 有溢出吗 9 01001 2 的补码 10111 和 7 00111 2 的补码 11001 现在我们需要添加 因为我们使用的是 2 的补码 10111 1
  • centos 7安装pymssql时出错

    我在虚拟机 Centos 7 中安装 pymssql 时遇到了这个问题 我安装的python版本是2 7 6 用于安装 pymssql 的命令 pip intall pymssql 错误信息 root dpitstsvr013 magend
  • 有没有办法对 Powershell cmdlet 的结果进行自动换行?

    简单 可能是愚蠢 的问题 我是 Powershell 新手 主要使用它来实例化托管库 因此当我需要使用其中的成员时 我不必编写小应用程序 其中一些库很旧 并且其方法签名又长又痛苦 在使用 new object 实例化后使用 get memb
  • 我可以使用哪些 March/mtune 选项?

    有没有办法让 gcc 输出可用的 march arch 选项 我遇到构建错误 尝试过 march x86 64 我不知道我的选择是什么 我使用的编译器是 gcc 的专有包装器 它似乎不喜欢 march skylake 标志应该是相同的 所以