是否有 GCC 关键字允许结构重新排序?

2023-12-01

我知道为什么 GCC 默认情况下不重新排序结构的成员,但我很少编写依赖于结构顺序的代码,那么有什么方法可以将我的结构标记为自动重新排序吗?


以前的 GCC 版本有-fipa-struct-reorg option允许结构重新排序-fwhole-program + -combine mode.

  • -fipa-struct-reorg

    进行结构重组优化,改变C类结构布局,以便更好地利用空间局部性。这种转换对于包含结构数组的程序是有效的。有两种编译模式可用:基于配置文件(启用-fprofile-generate)或静态(使用内置启发式)。要求-fipa-type-escape提供这种转变的安全性。它仅在整个程序模式下工作,因此需要-fwhole-program and -combine被启用。考虑的结构'cold'此转换不受影响(参见--param struct-reorg-cold-struct-ratio=value).

由于以下原因,它自 GCC 4.8.x 起被删除:发行公告

结构重组和矩阵重组优化(命令行选项-fipa-struct-reorg and -fipa-matrix-reorg)已被删除。它们并不总是正确工作,也不支持链接时优化 (LTO),因此仅适用于由单个翻译单元组成的程序。

不过您仍然可以尝试struct-reorg-branch on GCC SVN or the github镜像由于它仍在积极开发中,因此您需要自行承担风险。

您还可以使用以下命令对字段重新排序clang 重新排序字段工具在铿锵工具额外

See also

  • C 结构中的自动字段重新排序以避免填充
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有 GCC 关键字允许结构重新排序? 的相关文章

  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St

随机推荐

  • 通过使用文件重定向为其提供输入来运行 Java 程序

    我正在尝试使用文件重定向来运行 Java 程序 我正在用这个简单的程序测试它 package netbeans sanbdox public class Sanbdox public static void main String args
  • 如何禁用Seaborn中hue的嵌套?

    使用时hueSeaborn 中条形图上的参数会更改条形的颜色和位置 就像下面的例子 没有色调的绘图 import seaborn as sns df x 1 2 3 4 y 5 6 7 8 hue a b b a sns barplot d
  • H2 控制台访问 h2 以外的数据库

    H2 控制台 http localhost 8082 login jsp 可以选择查看任何数据库的详细信息 如果我们要与 mysql 或其他数据库服务器通信 我们应该将 jdbc 驱动程序复制到哪里 将 jdbc 驱动程序文件 mysql
  • 在 SharePoint 2010 中编辑 SQL 扩展属性

    如何在 SharePoint 2010 中编辑表的扩展属性 到目前为止 我认为没有任何 开箱即用 的东西可以做到这一点 因此 我假设这意味着我必须创建一个自定义 Web 部件来提取表的扩展属性 然后允许我对其进行编辑 然后在编辑完成后 We
  • 设备实例 ID 的驱动器盘符

    如何从驱动器号获取设备实例 ID 我的流程从设备到达消息开始 我已成功从到达消息中获取驱动器盘符并打开 DVD 托盘 我搜索了各种Setup API项 但我还没有找到任何可以让我从驱动器号到设备实例 ID 的信息 C 或 VB NET 中的
  • 如何将查询结果分解为单独的列?

    接续我之前的问题 要作为列插入表中的栅格记录的像素值 想象一下我的查询结果有 5300 行 结果如下 value 15624 15899 56267 85955 我希望它们位于表格中 前 53 行位于val1列 第二 53 行val2专栏等
  • BigQuery - 对数组进行分组

    我想对数组进行分组 示例查询 standardSQL WITH project dataset table AS SELECT compute description key application value scaled server
  • Firebase runloop (3.0.0) 中未捕获的异常。请向 [email protected] 举报 [已关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的离线功能有问题 我使用 firebase 在我的项目中打开离线功能 一切都很好 直到我完全关闭应用程序并重新打开它 它造成了崩溃 这是日志 05 23 07 44 58 407 7
  • JUCE 和 React Native - 链接器错误“ld:未找到 -lReact 的库”

    我在使用 CocoaPods 和 React Native 时遇到此链接器错误 ld library not found for lReact 我已按照指南进行操作https facebook github io react native
  • 在flaskext.mysql中寻找dictcursor的等价物

    我编写了一个Python Flask应用程序 最初使用MySQLdb来访问MySQL 后来我出于同样的目的切换到flaskext mysql 但现在当我使用这个模块时 我看不到如何获取字典结构的游标 当我使用 MySQLdb 模块时 我使用
  • WTForms-JSON 不适用于 FormFields

    当我使用 WTForms JSON 时 嵌套表单 FormFields 不会填充数据 我无法发现我的错误 请参阅下面的示例 from flask import Flask request jsonify from flask wtf imp
  • 管理两个 UI 的最佳方法是什么?

    我创建了两个用户界面 如何关闭第一个并激活下一个 Google Apps 脚本下是否可以有两个 UI 我尝试过类似的事情 var app UiApp getActiveApplication app add app loadComponen
  • Matlab:字符串数组中的数字数组索引(无循环)

    我正在做 MIT OCW MATLAB 入门课程中的一系列问题 你可以看到here 这是问题 9 第 g iii 部分 我有一个矩阵 其中包含一门课程的最终成绩 所有成绩的范围都从 1 到 5 我还有另一个数组 其中仅包含字母 F to A
  • 在构造的字符串上使用 execvp 的问题

    我正在尝试编写一个 shell 其构造的一部分是从用户输入的字符串 缓冲区 执行代码 然而 当我尝试使用附加输入 ae echo a 执行 execvp 字符串时 它总是会搞砸并返回 1 我不知道为什么 这是相关的部分 char buffe
  • 万事达卡的正则表达式

    我找到了信用卡类型 MasterCard 的以下正则表达式 public static readonly string CreditMasterCard 5 1 5 0 9 14 然后我写了下面的代码 Regex regexMasterCa
  • 如何获取多维数组的交集?

    我有一个多维数组的数组 每个数组代表一个搜索结果集 我正在尝试找出如何过滤这组数据以仅包含每个数组中存在的数组 注意 下面显示的索引各自代表多维数组 每个数组都有一个深度嵌套的Id可用于比较的键 The Id位于 reference var
  • PlaceAutocompleteFragment 无法解析

    在我的应用程序中 我添加了谷歌地图 它们工作正常 我想添加一个 PlaceAutocompleteFragment 我正在使用已经为地图生成的密钥 并且我已启用来自 google console 的 Places Api 选项 我已将这些添
  • 处理 AdWhirl 失败

    您好 我正在开发一个 Android 应用程序并使用 AdWhirl 来显示我的广告 我希望能够处理 AdWhirl 不返回广告的情况 当它失败时 我想显示一个装饰栏 谁能给我举个例子吗 提前致谢 好吧 我现在已经弄清楚了 有两种可能的方法
  • 如何读取单个Excel单元格值

    我有一个带有sheet1的Excel文件 其中有一个我需要在第2行和第10列读取的值 这是我的代码 Excel Workbook excelWorkbook excelApp Workbooks Open workbookPath 0 fa
  • 是否有 GCC 关键字允许结构重新排序?

    我知道为什么 GCC 默认情况下不重新排序结构的成员 但我很少编写依赖于结构顺序的代码 那么有什么方法可以将我的结构标记为自动重新排序吗 以前的 GCC 版本有 fipa struct reorg option允许结构重新排序 fwhole