155 lines
3.1 KiB
Text
155 lines
3.1 KiB
Text
|
set(LLVM_LINK_COMPONENTS
|
||
|
AggressiveInstCombine
|
||
|
Analysis
|
||
|
BitReader
|
||
|
BitWriter
|
||
|
CodeGenTypes
|
||
|
Core
|
||
|
Coroutines
|
||
|
Coverage
|
||
|
Demangle
|
||
|
Extensions
|
||
|
FrontendDriver
|
||
|
FrontendHLSL
|
||
|
FrontendOpenMP
|
||
|
FrontendOffloading
|
||
|
HIPStdPar
|
||
|
IPO
|
||
|
IRPrinter
|
||
|
IRReader
|
||
|
InstCombine
|
||
|
Instrumentation
|
||
|
LTO
|
||
|
Linker
|
||
|
MC
|
||
|
ObjCARCOpts
|
||
|
Object
|
||
|
Passes
|
||
|
ProfileData
|
||
|
ScalarOpts
|
||
|
Support
|
||
|
Target
|
||
|
TargetParser
|
||
|
TransformUtils
|
||
|
)
|
||
|
|
||
|
# Workaround for MSVC ARM64 performance regression:
|
||
|
# https://developercommunity.visualstudio.com/t/Compiling-a-specific-code-for-ARM64-with/10444970
|
||
|
# Since /O1 and /O2 represent a set of optimizations,
|
||
|
# our goal is to disable the /Og flag while retaining the other optimizations from the /O1|/O2 set
|
||
|
if(MSVC AND NOT CMAKE_CXX_COMPILER_ID MATCHES Clang
|
||
|
AND MSVC_VERSION VERSION_GREATER_EQUAL 1932
|
||
|
AND CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64")
|
||
|
|
||
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
|
||
|
string(REGEX MATCHALL "/[Oo][12]" opt_flags "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}")
|
||
|
if (opt_flags)
|
||
|
if(opt_flags MATCHES "1$")
|
||
|
set(opt_flags "/Od;/Os;/Oy;/Ob2;/GF;/Gy")
|
||
|
elseif (opt_flags MATCHES "2$")
|
||
|
set(opt_flags "/Od;/Oi;/Ot;/Oy;/Ob2;/GF;/Gy")
|
||
|
endif()
|
||
|
set_source_files_properties(CGBuiltin.cpp PROPERTIES COMPILE_OPTIONS "${opt_flags}")
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
add_clang_library(clangCodeGen
|
||
|
ABIInfo.cpp
|
||
|
ABIInfoImpl.cpp
|
||
|
BackendUtil.cpp
|
||
|
CGAtomic.cpp
|
||
|
CGBlocks.cpp
|
||
|
CGBuiltin.cpp
|
||
|
CGCUDANV.cpp
|
||
|
CGCUDARuntime.cpp
|
||
|
CGCXX.cpp
|
||
|
CGCXXABI.cpp
|
||
|
CGCall.cpp
|
||
|
CGClass.cpp
|
||
|
CGCleanup.cpp
|
||
|
CGCoroutine.cpp
|
||
|
CGDebugInfo.cpp
|
||
|
CGDecl.cpp
|
||
|
CGDeclCXX.cpp
|
||
|
CGException.cpp
|
||
|
CGExpr.cpp
|
||
|
CGExprAgg.cpp
|
||
|
CGExprCXX.cpp
|
||
|
CGExprComplex.cpp
|
||
|
CGExprConstant.cpp
|
||
|
CGExprScalar.cpp
|
||
|
CGGPUBuiltin.cpp
|
||
|
CGHLSLRuntime.cpp
|
||
|
CGLoopInfo.cpp
|
||
|
CGNonTrivialStruct.cpp
|
||
|
CGObjC.cpp
|
||
|
CGObjCGNU.cpp
|
||
|
CGObjCMac.cpp
|
||
|
CGObjCRuntime.cpp
|
||
|
CGOpenCLRuntime.cpp
|
||
|
CGOpenMPRuntime.cpp
|
||
|
CGOpenMPRuntimeGPU.cpp
|
||
|
CGRecordLayoutBuilder.cpp
|
||
|
CGStmt.cpp
|
||
|
CGStmtOpenMP.cpp
|
||
|
CGVTT.cpp
|
||
|
CGVTables.cpp
|
||
|
CodeGenABITypes.cpp
|
||
|
CodeGenAction.cpp
|
||
|
CodeGenFunction.cpp
|
||
|
CodeGenModule.cpp
|
||
|
CodeGenPGO.cpp
|
||
|
CodeGenTBAA.cpp
|
||
|
CodeGenTypes.cpp
|
||
|
ConstantInitBuilder.cpp
|
||
|
CoverageMappingGen.cpp
|
||
|
ItaniumCXXABI.cpp
|
||
|
LinkInModulesPass.cpp
|
||
|
MacroPPCallbacks.cpp
|
||
|
MicrosoftCXXABI.cpp
|
||
|
ModuleBuilder.cpp
|
||
|
ObjectFilePCHContainerOperations.cpp
|
||
|
PatternInit.cpp
|
||
|
SanitizerMetadata.cpp
|
||
|
SwiftCallingConv.cpp
|
||
|
TargetInfo.cpp
|
||
|
Targets/AArch64.cpp
|
||
|
Targets/AMDGPU.cpp
|
||
|
Targets/ARC.cpp
|
||
|
Targets/ARM.cpp
|
||
|
Targets/AVR.cpp
|
||
|
Targets/BPF.cpp
|
||
|
Targets/CSKY.cpp
|
||
|
Targets/Hexagon.cpp
|
||
|
Targets/Lanai.cpp
|
||
|
Targets/LoongArch.cpp
|
||
|
Targets/M68k.cpp
|
||
|
Targets/MSP430.cpp
|
||
|
Targets/Mips.cpp
|
||
|
Targets/NVPTX.cpp
|
||
|
Targets/PNaCl.cpp
|
||
|
Targets/PPC.cpp
|
||
|
Targets/RISCV.cpp
|
||
|
Targets/SPIR.cpp
|
||
|
Targets/Sparc.cpp
|
||
|
Targets/SystemZ.cpp
|
||
|
Targets/TCE.cpp
|
||
|
Targets/VE.cpp
|
||
|
Targets/WebAssembly.cpp
|
||
|
Targets/X86.cpp
|
||
|
Targets/XCore.cpp
|
||
|
VarBypassDetector.cpp
|
||
|
|
||
|
DEPENDS
|
||
|
intrinsics_gen
|
||
|
ClangDriverOptions
|
||
|
|
||
|
LINK_LIBS
|
||
|
clangAST
|
||
|
clangAnalysis
|
||
|
clangBasic
|
||
|
clangFrontend
|
||
|
clangLex
|
||
|
clangSerialization
|
||
|
)
|