File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed
Tooling/Inclusions/Stdlib Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,26 @@ set(LLVM_LINK_COMPONENTS
30
30
TransformUtils
31
31
)
32
32
33
+ # Workaround for MSVC ARM64 performance regression:
34
+ # https://developercommunity.visualstudio.com/t/Compiling-a-specific-code-for-ARM64-with/10444970
35
+ # Since /O1 and /O2 represent a set of optimizations,
36
+ # our goal is to disable the /Og flag while retaining the other optimizations from the /O1|/O2 set
37
+ if (MSVC AND NOT CMAKE_CXX_COMPILER_ID MATCHES Clang
38
+ AND MSVC_VERSION VERSION_GREATER_EQUAL 1932
39
+ AND CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64" )
40
+
41
+ string (TOUPPER "${CMAKE_BUILD_TYPE} " uppercase_CMAKE_BUILD_TYPE )
42
+ string (REGEX MATCHALL "/[Oo][12]" opt_flags "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} }" )
43
+ if (opt_flags )
44
+ if (opt_flags MATCHES "1$" )
45
+ set (opt_flags "/Od;/Os;/Oy;/Ob2;/GF;/Gy" )
46
+ elseif (opt_flags MATCHES "2$" )
47
+ set (opt_flags "/Od;/Oi;/Ot;/Oy;/Ob2;/GF;/Gy" )
48
+ endif ()
49
+ set_source_files_properties (CGBuiltin.cpp PROPERTIES COMPILE_OPTIONS "${opt_flags} " )
50
+ endif ()
51
+ endif ()
52
+
33
53
add_clang_library (clangCodeGen
34
54
ABIInfo.cpp
35
55
ABIInfoImpl.cpp
Original file line number Diff line number Diff line change
1
+ # Workaround for MSVC ARM64 performance regression:
2
+ # https://developercommunity.visualstudio.com/t/Compiling-a-specific-code-for-ARM64-with/10444970
3
+ # Since /O1 and /O2 represent a set of optimizations,
4
+ # our goal is to disable the /Og flag while retaining the other optimizations from the /O1|/O2 set
5
+ if (MSVC AND NOT CMAKE_CXX_COMPILER_ID MATCHES Clang
6
+ AND MSVC_VERSION VERSION_GREATER_EQUAL 1932
7
+ AND CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64" )
8
+
9
+ string (TOUPPER "${CMAKE_BUILD_TYPE} " uppercase_CMAKE_BUILD_TYPE )
10
+ string (REGEX MATCHALL "/[Oo][12]" opt_flags "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} }" )
11
+ if (opt_flags )
12
+ if (opt_flags MATCHES "1$" )
13
+ set (opt_flags "/Od;/Os;/Oy;/Ob2;/GF;/Gy" )
14
+ elseif (opt_flags MATCHES "2$" )
15
+ set (opt_flags "/Od;/Oi;/Ot;/Oy;/Ob2;/GF;/Gy" )
16
+ endif ()
17
+ set_source_files_properties (StandardLibrary.cpp PROPERTIES COMPILE_OPTIONS "${opt_flags} " )
18
+ endif ()
19
+ endif ()
20
+
1
21
add_clang_library (clangToolingInclusionsStdlib
2
22
StandardLibrary.cpp
3
23
You can’t perform that action at this time.
0 commit comments