问题标签 [gcc9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - 编译 GCC 9.2 时出错:libgotool.a:没有这样的文件
在 VM 上全新安装 Fedora 30(在下面 yum 获取 gcc 9.1,并尝试使用它来构建 gcc 9.2):
给出:
然而 libgotool.a 存在于 /home/mmalak/gcc-9.2.0/x86_64-pc-linux-gnu/libgo/libgotool.a
python - Tensorflow skylake-avx512 从源代码编译缺少 __cpu_model 符号
我正在用skylake-avx512从源代码编译tensorflow,如下所示,我的python是这样构建的:
TensorFlow 构建命令:
唯一的选项集是 XLA JIT,其他的都设置为“no”。我正在为 tensorflow v1.12.0-devel 使用 docker 映像,并且正在编译标签 v1.12.3。
为了完整性:
我正在使用 gcc-9、g++-9 和 ubuntu 16.04 进行编译。在此之前我已经修复了几个问题,但我无法弄清楚我在这里缺少什么。有人可以帮我解决这个丢失的符号吗?
c++ - 在 if constexpr 中使用带有参数包的概念时升级到 gcc 9 后的编译错误
我有一个代码在上下文中使用带有参数包的概念if constexpr
。它曾经在 gcc 8 中编译和工作,但在 gcc 9 中中断:
GCC 9.2 产生的错误是:
请参阅此处的编译器资源管理器。您可以在 gcc 版本 8.3 和 9.2 之间切换以查看差异。
c - address-of-packed-member:禁用特定功能?
我注意到每次访问打包结构的成员时都会引发此错误
- 如何专门为处理错位的功能禁用它?(safe_unaligned_val_16/32/64 - 通过像 memcpy 一样手动逐个字节地构造输出)
- 如果我将结构指针传递给函数,GCC 是否会进行一些优化?我注意到一些优化,比如当你有一个具有 4 个字节的原始类型的结构时,它只是将该值传递给一个 32 位寄存器,而函数不改变原始类型的值。如果你知道类似的东西,请详细说明这个^
谢谢,格雷格
c - uint32_t * uint32_t = uint64_t 向量乘法与 gcc
我正在尝试将uint32_t
产生完整 64 位结果的uint64_t
向量乘以 gcc 中的向量。我期望的结果是 gcc 发出一条VPMULUDQ
指令。但是 gcc 作为代码输出的内容是对各个uint32_t
源向量进行可怕的洗牌,然后是完整的 64*64=64 乘法。这是我尝试过的:
第一个屏蔽掉uint32_t
向量中不需要的部分,希望 gcc 能优化掉 64*64=64 乘法中不需要的部分,然后看到屏蔽也毫无意义。没有这样的运气。
在这里,我尝试uint64_t
从头开始创建一个仅包含使用过的部件集的矢量。再次 gcc 应该看到每个的前 32 位uint64_t
是 0,而不是做一个完整的 64*64=64 乘法。相反,会发生大量提取和放回值,并且 64*64=64 相乘。
让我们通过将部分相乘来构建结果向量。也许 gcc 看到它可以VPMULUDQ
用来实现这一点。不走运,它回落到 4 个IMUL
操作码。
有没有办法告诉 gcc 我想要它做什么(32*32=64 乘法,一切都完美放置)?
注意:内联汇编或内在不是答案。手动编写操作码显然有效。但随后我将不得不为许多目标架构和功能集编写不同版本的代码。我希望 gcc 能够理解问题并从单个源代码中生成正确的解决方案。
gcc - 在 Windows 上使用 MSYS2 安装 GCC 9.2.0
在安装 MSYS2 并更新所有软件包并使用安装 gcc 工具链之后pacman -Sy mingw-w64-x86_64-toolchain
如上图所示,我有 9.2.0 版本。但是当我运行gcc.exe --version
它说 8.1.0
是什么原因造成的,如何更新到 9.2.0?我这样做的原因是https://sourceforge.net/p/mingw-w64/bugs/737/。
gcc - GCC 是否有用于 AVX512 操作的内置函数?
我期待找到类似的功能
__builtin_ia32_fmaddps512
根据手册,在最近的 GCC 中启用 512 位 AVX512 寄存器的使用方式与使用 256 位 AVX2 寄存器的方式相同,但它们在 GCC 9.2 中不存在。这只是等待的问题,还是它们不存在的一些政策原因?
c++ - 使用 MINGW gcc 编译时,不会为 std::string 调用重载的 new 运算符
该程序(使用选项编译-std=c++17
)
当使用 Clang 或 MSVS 编译时,打印:
在堆上分配 4 个字节
在堆上分配 2016 个字节
但是,当使用 GCC(Windows 上 MSYS 提供的版本 9.2.0)编译时,它只打印:
在堆上分配 4 个字节
我知道 GCC/libc++ 中的短字符串优化,但是对于短字符串来说,2000 个字符不是太多了吗?这完全是 SSO 的问题吗?
c++ - GCC 原生矩阵运算库
我想知道标准 gcc/glibc/g++ 附带的任何本机矩阵操作库。安装。我看到有许多第三方库boost、armadillo 等提供了实现。
但我想知道较新的 gcc 9.2 版本是否有提供矩阵运算而不是使用第三方库的本机库。
谢谢