Godot: [Compiler bug] clang 6.0.0/Xcode 9.3 clang hangs on compiling optimised `servers/physics/collision_solver_sat.cpp`

Created on 6 Apr 2018  路  4Comments  路  Source: godotengine/godot

Godot version:
master ec110076c - e3590a252

OS/device including version:

  • macOS 10.13.4 (17E199)
  • Debian GNU/Linux 9 (stretch) (4.9.0-6-amd64)

clang versions:

  • macOS, Apple LLVM version 9.1.0 (clang-902.0.39.1), Xcode 9.3 (9E145)
  • macOS, clang version 6.0.0 (tags/RELEASE_600/final), installed from MacPorts.
  • Debian, clang version 6.0.0-1~bpo9+1 (tags/RELEASE_600/final), installed from OS repo.

Last knows good clang versions:

  • macOS, Apple LLVM version 9.0.0 (clang-900.0.39.2), Xcode 9.2 (9C40B)
  • macOS, clang version 5.0.1 (tags/RELEASE_501/final), installed from MacPorts.
  • Debian, clang version 5.0.1-2~bpo9+1 (tags/RELEASE_501/final), installed from OS repo.

Fixed in clang version 7.0.0 (trunk 329027), installed from MacPorts.
NOT fixed in Xcode 9.4 beta (9Q1004A)

Steps to reproduce:
Build optimised (release or release_debug) Godot on macOS using specified compiler versions.

If you have problems compiling Godot release versions on mac, downgrade Xcode command line tools to 9.2 or use clang-5.0/clang-devel from MacPorts (add macports_clang=5.0/macports_clang=devel to build command).

Update (Apr 14): Same problem affects Linux builds too, so it's clearly compiler bug.

Update (Apr 22): Some additional information: clang seems to have problem optimising multiple inlined instances of test_axis, in _collision_capsule_capsule function.

bug macos buildsystem

Most helpful comment

Update: Bisected LLVM/Clang to following commits:

:small_blue_diamond: Bug introduced in PeepholeOptimizer: Do not form PHI with subreg arguments
master branch: llvm-project @ 1593fa8, reviews.llvm.org @ rL322313
release_60 branch: llvm-project @ f5d8d87, reviews.llvm.org @ rL322684

:small_blue_diamond: Bug fixed in PeepholeOpt cleanup/refactor; NFC
master branch: llvm-project @ 595304a, reviews.llvm.org @ rL322325

All 4 comments

I'm having the exact same issue with this.

it'd be better to mention not to use clang 6.0 on docs. I spent couple of days for it :(

Update: Bisected LLVM/Clang to following commits:

:small_blue_diamond: Bug introduced in PeepholeOptimizer: Do not form PHI with subreg arguments
master branch: llvm-project @ 1593fa8, reviews.llvm.org @ rL322313
release_60 branch: llvm-project @ f5d8d87, reviews.llvm.org @ rL322684

:small_blue_diamond: Bug fixed in PeepholeOpt cleanup/refactor; NFC
master branch: llvm-project @ 595304a, reviews.llvm.org @ rL322325

Could you file a bug report upstream? If it's a compiler issue it would be good to let them know about it.

Was this page helpful?
0 / 5 - 0 ratings