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