Skip to content

Commit

Permalink
Don't make PDBs by default in Release mode
Browse files Browse the repository at this point in the history
Introduce the LLVM_ENABLE_PDB option so that users can request them
explicitly instead.

Add /OPT:REF and /OPT:ICF back, which /DEBUG disables by default.

Differential Revision: https://reviews.llvm.org/D43156

llvm-svn: 325296
  • Loading branch information
rnk committed Feb 15, 2018
1 parent de9ad4b commit b97ff92
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions llvm/cmake/modules/HandleLLVMOptions.cmake
Expand Up @@ -353,11 +353,18 @@ if( MSVC )

append("/Zc:inline" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)

# Generate PDB even in release for profiling.
if (uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE")
# Allow users to request PDBs in release mode. CMake offeres the
# RelWithDebInfo configuration, but it uses different optimization settings
# (/Ob1 vs /Ob2 or -O2 vs -O3). LLVM provides this flag so that users can get
# PDBs without changing codegen.
option(LLVM_ENABLE_PDB OFF)
if (LLVM_ENABLE_PDB AND uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE")
append("/Zi" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
append("/DEBUG" CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
endif (uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE")
# /DEBUG disables linker GC and ICF, but we want those in Release mode.
append("/DEBUG /OPT:REF /OPT:ICF"
CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS)
endif()

# /Zc:strictStrings is incompatible with VS12's (Visual Studio 2013's)
# debug mode headers. Instead of only enabling them in VS2013's debug mode,
Expand Down

0 comments on commit b97ff92

Please sign in to comment.