Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit 1a83de6

Browse files
binarycrusaderarielb1
authored andcommittedJun 27, 2017
use -O3 with some optimizations disabled on sparc w/ gcc
A previous commit changed it so that rust's private copy of llvm was always built with -O0 on sparc, as initially that was the only option that produced a working compiler. After further investigation, it was discovered that applying -fno-delayed-branch and -fno-omit-frame-pointer was sufficient to avoid all of the code generation issues initially encountered while retaining -O3. Investigation with gcc upstream continues.
1 parent 43d93d5 commit 1a83de6

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed
 

‎CMakeLists.txt

+4-2
Original file line numberDiff line numberDiff line change
@@ -812,8 +812,10 @@ endif()
812812

813813
if( "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" AND "${LLVM_NATIVE_ARCH}" MATCHES "Sparc" )
814814
# gcc 4.x, 5.x (at least) generate bad code on sparc above -O0 when compiling
815-
# llvm; notably llvm-tblgen consistently core dumps.
816-
llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O0")
815+
# llvm. Notably llvm-tblgen consistently core dumps, *unless*
816+
# -fno-delayed-branch is specified. Finally, -fno-omit-frame-pointer is
817+
# included to avoid additional code generation and debugging issues.
818+
llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O3 -fno-delayed-branch -fno-omit-frame-pointer")
817819
endif()
818820

819821
# Put this before tblgen. Else we have a circular dependence.

0 commit comments

Comments
 (0)