タグ

memsetに関するmasterqのブックマーク (1)

  • KMC Staff Blog:GCC10の最適化によるmemsetでの無限ループの発生

    2020年11月17日 GCC10の最適化によるmemsetでの無限ループの発生 以前、「GCCの最適化による予期せぬ無限ループの発生」という記事を書きました。この時は -fno-builtin-malloc や __asm __volatile("":::"memory"); などで対策できました。 しかし今回、現状最新の GCC 10 で、memset、しかもナイーブな *(char *)s++ = (char)c; みたいな実装ではなく、NetBSD の格的な実装のもので発生し、-fno-builtin や -fno-builtin-memset、-ffreestanding などでも抑制できず、-fno-tree-loop-distribute-patterns というあまり一般的ではないオプションが必要になりました。 これは一見 GCC のオプションが効いてない、バグのように思

    masterq
    masterq 2020/11/17
    -fno-tree-loop-distribute-patternsするとこの最適化を除去できるとのこと。このオプションは-O2に含まれる
  • 1