[DFAJumpThreading] Remove incoming StartBlock from all phis when unfolding select...
[llvm-project.git] / clang / lib / CodeGen / CMakeLists.txt
blobda98848e3b44387292df56db1f18d8adb67a297e
1 set(LLVM_LINK_COMPONENTS
2   AggressiveInstCombine
3   Analysis
4   BitReader
5   BitWriter
6   CodeGenTypes
7   Core
8   Coroutines
9   Coverage
10   Demangle
11   Extensions
12   FrontendHLSL
13   FrontendOpenMP
14   FrontendOffloading
15   HIPStdPar
16   IPO
17   IRPrinter
18   IRReader
19   InstCombine
20   Instrumentation
21   LTO
22   Linker
23   MC
24   ObjCARCOpts
25   Object
26   Passes
27   ProfileData
28   ScalarOpts
29   Support
30   Target
31   TargetParser
32   TransformUtils
33   )
35 # Workaround for MSVC ARM64 performance regression:
36 # https://developercommunity.visualstudio.com/t/Compiling-a-specific-code-for-ARM64-with/10444970
37 # Since /O1 and /O2 represent a set of optimizations,
38 # our goal is to disable the /Og flag while retaining the other optimizations from the /O1|/O2 set
39 if(MSVC AND NOT CMAKE_CXX_COMPILER_ID MATCHES Clang
40     AND MSVC_VERSION VERSION_GREATER_EQUAL 1932
41     AND CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64")
43   string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
44   string(REGEX MATCHALL "/[Oo][12]" opt_flags "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}")
45   if (opt_flags)
46     if(opt_flags MATCHES "1$")
47       set(opt_flags "/Od;/Os;/Oy;/Ob2;/GF;/Gy")
48     elseif (opt_flags MATCHES "2$")
49       set(opt_flags "/Od;/Oi;/Ot;/Oy;/Ob2;/GF;/Gy")
50     endif()
51     set_source_files_properties(CGBuiltin.cpp PROPERTIES COMPILE_OPTIONS "${opt_flags}")
52   endif()
53 endif()
55 add_clang_library(clangCodeGen
56   ABIInfo.cpp
57   ABIInfoImpl.cpp
58   BackendUtil.cpp
59   CGAtomic.cpp
60   CGBlocks.cpp
61   CGBuiltin.cpp
62   CGCUDANV.cpp
63   CGCUDARuntime.cpp
64   CGCXX.cpp
65   CGCXXABI.cpp
66   CGCall.cpp
67   CGClass.cpp
68   CGCleanup.cpp
69   CGCoroutine.cpp
70   CGDebugInfo.cpp
71   CGDecl.cpp
72   CGDeclCXX.cpp
73   CGException.cpp
74   CGExpr.cpp
75   CGExprAgg.cpp
76   CGExprCXX.cpp
77   CGExprComplex.cpp
78   CGExprConstant.cpp
79   CGExprScalar.cpp
80   CGGPUBuiltin.cpp
81   CGHLSLRuntime.cpp
82   CGLoopInfo.cpp
83   CGNonTrivialStruct.cpp
84   CGObjC.cpp
85   CGObjCGNU.cpp
86   CGObjCMac.cpp
87   CGObjCRuntime.cpp
88   CGOpenCLRuntime.cpp
89   CGOpenMPRuntime.cpp
90   CGOpenMPRuntimeGPU.cpp
91   CGRecordLayoutBuilder.cpp
92   CGStmt.cpp
93   CGStmtOpenMP.cpp
94   CGVTT.cpp
95   CGVTables.cpp
96   CodeGenABITypes.cpp
97   CodeGenAction.cpp
98   CodeGenFunction.cpp
99   CodeGenModule.cpp
100   CodeGenPGO.cpp
101   CodeGenTBAA.cpp
102   CodeGenTypes.cpp
103   ConstantInitBuilder.cpp
104   CoverageMappingGen.cpp
105   ItaniumCXXABI.cpp
106   MacroPPCallbacks.cpp
107   MicrosoftCXXABI.cpp
108   ModuleBuilder.cpp
109   ObjectFilePCHContainerOperations.cpp
110   PatternInit.cpp
111   SanitizerMetadata.cpp
112   SwiftCallingConv.cpp
113   TargetInfo.cpp
114   Targets/AArch64.cpp
115   Targets/AMDGPU.cpp
116   Targets/ARC.cpp
117   Targets/ARM.cpp
118   Targets/AVR.cpp
119   Targets/BPF.cpp
120   Targets/CSKY.cpp
121   Targets/Hexagon.cpp
122   Targets/Lanai.cpp
123   Targets/LoongArch.cpp
124   Targets/M68k.cpp
125   Targets/MSP430.cpp
126   Targets/Mips.cpp
127   Targets/NVPTX.cpp
128   Targets/PNaCl.cpp
129   Targets/PPC.cpp
130   Targets/RISCV.cpp
131   Targets/SPIR.cpp
132   Targets/Sparc.cpp
133   Targets/SystemZ.cpp
134   Targets/TCE.cpp
135   Targets/VE.cpp
136   Targets/WebAssembly.cpp
137   Targets/X86.cpp
138   Targets/XCore.cpp
139   VarBypassDetector.cpp
141   DEPENDS
142   intrinsics_gen
143   ClangDriverOptions
145   LINK_LIBS
146   clangAST
147   clangAnalysis
148   clangBasic
149   clangFrontend
150   clangLex
151   clangSerialization
152   )