Home | History | Annotate | Download | only in swiftshader
      1 cmake_minimum_required(VERSION 2.8)
      2 
      3 project(SwiftShader C CXX)
      4 
      5 # On Windows we use custom solution and project files, except for certain third-
      6 # party projects which use CMake-generated ones. They are manually (re)generated
      7 # and made path relative using build/cmake.sh, so they can be checked into the
      8 # repository. Therefore they should not be auto-regenerated and left using
      9 # absolute paths by CMake's ZERO_CHECK.
     10 if(WIN32)
     11     # Disable automatically regenerating project files on CMakeLists.txt changes.
     12     set(CMAKE_SUPPRESS_REGENERATION true)
     13 endif()
     14 
     15 ###########################################################
     16 # Detect system
     17 ###########################################################
     18 
     19 if(CMAKE_SYSTEM_NAME MATCHES "Linux")
     20     set(LINUX ON)
     21 elseif(WIN32)
     22 elseif(APPLE)
     23 else()
     24     message(FATAL_ERROR "Platform is not supported")
     25 endif()
     26 
     27 if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch")
     28     if(CMAKE_SIZEOF_VOID_P EQUAL 8)
     29         set(ARCH "aarch64")
     30     else()
     31         set(ARCH "arm")
     32     endif()
     33 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips*")
     34     if(CMAKE_SIZEOF_VOID_P EQUAL 8)
     35         set(ARCH "mips64el")
     36     else()
     37         set(ARCH "mipsel")
     38     endif()
     39 else()
     40     if(CMAKE_SIZEOF_VOID_P EQUAL 8)
     41         set(ARCH "x86_64")
     42     else()
     43         set(ARCH "x86")
     44     endif()
     45 endif()
     46 
     47 set(CMAKE_MACOSX_RPATH ON)
     48 
     49 if ((CMAKE_GENERATOR MATCHES "Visual Studio") AND (CMAKE_GENERATOR_TOOLSET STREQUAL ""))
     50   message(WARNING "Visual Studio generators use the x86 host compiler by "
     51                   "default, even for 64-bit targets. This can result in linker "
     52                   "instability and out of memory errors. To use the 64-bit "
     53                   "host compiler, pass -Thost=x64 on the CMake command line.")
     54 endif()
     55 
     56 ###########################################################
     57 # Options
     58 ###########################################################
     59 
     60 if(NOT CMAKE_BUILD_TYPE)
     61     set(CMAKE_BUILD_TYPE "Release" CACHE STRING "The type of build: Debug Release MinSizeRel RelWithDebInfo." FORCE)
     62 endif()
     63 set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release MinSizeRel RelWithDebInfo)
     64 
     65 option(BUILD_EGL "Build the EGL library" 1)
     66 option(BUILD_GLESv2 "Build the OpenGL ES 2 library" 1)
     67 option(BUILD_GLES_CM "Build the OpenGL ES 1.1 library" 1)
     68 option(BUILD_VULKAN "Build the Vulkan library" 1)
     69 
     70 option(USE_GROUP_SOURCES "Group the source files in a folder tree for Visual Studio" 1)
     71 
     72 option(BUILD_SAMPLES "Build sample programs" 1)
     73 option(BUILD_TESTS "Build test programs" 1)
     74 
     75 option (MSAN "Build with memory sanitizer" 0)
     76 option (ASAN "Build with address sanitizer" 0)
     77 option (TSAN "Build with thread sanitizer" 0)
     78 option (UBSAN "Build with undefined behavior sanitizer" 0)
     79 
     80 if(ARCH STREQUAL "arm")
     81     set(DEFAULT_REACTOR_BACKEND "Subzero")
     82 else()
     83     set(DEFAULT_REACTOR_BACKEND "LLVM")
     84 endif()
     85 
     86 set(REACTOR_BACKEND ${DEFAULT_REACTOR_BACKEND} CACHE STRING "JIT compiler back-end used by Reactor")
     87 set_property(CACHE REACTOR_BACKEND PROPERTY STRINGS LLVM Subzero)
     88 
     89 set(REACTOR_LLVM_VERSION "7" CACHE STRING "LLVM version used by Reactor")
     90 
     91 # LLVM disallows calling cmake . from the main LLVM dir, the reason is that
     92 # it builds header files that could overwrite the orignal ones. Here we
     93 # want to include LLVM as a subdirectory and even though it wouldn't cause
     94 # the problem, if cmake . is called from the main dir, the condition that
     95 # LLVM checkes, "CMAKE_CURRENT_SOURCE_DIR == CMAKE_CURRENT_BINARY_DIR" will be true. So we
     96 # disallow it ourselves too to. In addition if there are remining CMakeFiles
     97 # and CMakeCache in the directory, cmake .. from a subdirectory will still
     98 # try to build from the main directory so we instruct users to delete these
     99 # files when they get the error.
    100 if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
    101     message(FATAL_ERROR "In source builds are not allowed by LLVM, please create a build/ directory and build from there. You may have to delete the CMakeCache.txt file and CMakeFiles directory that are next to the CMakeLists.txt.")
    102 endif()
    103 
    104 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
    105 
    106 ###########################################################
    107 # Initialize submodules
    108 ###########################################################
    109 
    110 if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/.git)
    111     message(WARNING "
    112   third_party/googletest submodule missing.
    113   Running 'git submodule update --init' to download it:
    114     ")
    115 
    116     execute_process(COMMAND git submodule update --init)
    117 endif()
    118 
    119 ###########################################################
    120 # Convenience macros
    121 ###########################################################
    122 
    123 # Recursively calls source_group on the files of the directory
    124 # so that Visual Studio has the files in a folder tree
    125 macro(group_all_sources directory)
    126     file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${directory} ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/*)
    127     foreach(file ${files})
    128         if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
    129             group_all_sources(${directory}/${file})
    130         else()
    131             string(REPLACE "/" "\\" groupname ${directory})
    132             source_group(${groupname} FILES ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
    133         endif()
    134     endforeach()
    135 endmacro()
    136 
    137 # Takes target library and a directory where the export map is
    138 # and add the linker options so that only the API symbols are
    139 # exported.
    140 macro(set_shared_library_export_map TARGET DIR)
    141     if(MSVC)
    142         set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " /DEF:\"${DIR}/${TARGET}.def\"")
    143     elseif(LINUX)
    144         # The version script only exports the API functions and
    145         # hides all the others.
    146         set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--version-script=${DIR}/${TARGET}.lds")
    147         set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_DEPENDS "${DIR}/${TARGET}.lds;")
    148 
    149         # Don't allow symbols to be overridden by another module.
    150         set_property(TARGET ${TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " -fvisibility=protected")
    151 
    152         if(ARCH STREQUAL "mipsel" OR ARCH STREQUAL "mips64el")
    153           # MIPS supports sysv hash-style only.
    154           set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--hash-style=sysv")
    155         else()
    156           # Both hash-style are needed, because we want both gold and
    157           # GNU ld to be able to read our libraries.
    158           set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--hash-style=both")
    159         endif()
    160 
    161         # Gc sections is used in combination with each functions being
    162         # in its own section, to reduce the binary size.
    163         set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--gc-sections")
    164 
    165         # Don't allow undefined symbols, unless it's a Sanitizer build.
    166         if(NOT MSAN AND NOT ASAN AND NOT TSAN AND NOT UBSAN)
    167             set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-undefined")
    168         endif()
    169     endif()
    170 endmacro()
    171 
    172 if(USE_GROUP_SOURCES)
    173     group_all_sources(src)
    174 endif()
    175 
    176 ###########################################################
    177 # Directories
    178 ###########################################################
    179 
    180 set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
    181 set(OPENGL_DIR ${SOURCE_DIR}/OpenGL)
    182 set(OPENGL_COMPILER_DIR ${OPENGL_DIR}/compiler)
    183 set(VULKAN_DIR ${SOURCE_DIR}/Vulkan)
    184 if(REACTOR_LLVM_VERSION EQUAL 3)
    185     set(LLVM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/LLVM)
    186 else()
    187     set(LLVM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-7.0/llvm)
    188     set(LLVM_CONFIG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-7.0/configs)
    189 endif()
    190 set(SUBZERO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/subzero)
    191 set(SUBZERO_LLVM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-subzero)
    192 set(TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
    193 set(HELLO2_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/PowerVR_SDK/Examples/Beginner/01_HelloAPI/OGLES2)
    194 
    195 ###########################################################
    196 # Compile flags
    197 ###########################################################
    198 
    199 macro(set_cpp_flag FLAG)
    200     if(${ARGC} GREATER 1)
    201         set(CMAKE_CXX_FLAGS_${ARGV1} "${CMAKE_CXX_FLAGS_${ARGV1}} ${FLAG}")
    202     else()
    203         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
    204     endif()
    205 endmacro()
    206 
    207 if(MSVC)
    208     set_cpp_flag("/MP")
    209     add_definitions(-D_CRT_SECURE_NO_WARNINGS)
    210     add_definitions(-D_SBCS)  # Single Byte Character Set (ASCII)
    211 else()
    212     set_cpp_flag("--std=c++11")
    213     set_cpp_flag("-Wall")
    214     set_cpp_flag("-Werror=reorder")
    215     set_cpp_flag("-Werror=sign-compare")
    216     set_cpp_flag("-Werror=missing-braces")
    217     set_cpp_flag("-fno-exceptions")
    218 
    219     if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
    220        CLANG_VERSION_STRING VERSION_GREATER_EQUAL 5)
    221         set_cpp_flag("-Werror=unused-lambda-capture")
    222     endif()
    223 
    224     # Remove xor, and, or and friends from the list of keywords, they are used
    225     # by Reactor
    226     set_cpp_flag("-fno-operator-names")
    227 
    228     # LLVM headers requires these flags to be set
    229     set_cpp_flag("-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS")
    230 
    231     if(ARCH STREQUAL "x86")
    232         set_cpp_flag("-m32")
    233         set_cpp_flag("-msse2")
    234         set_cpp_flag("-mfpmath=sse")
    235         set_cpp_flag("-march=pentium4")
    236         set_cpp_flag("-mtune=generic")
    237     endif()
    238     if(ARCH STREQUAL "x86_64")
    239         set_cpp_flag("-m64")
    240         set_cpp_flag("-fPIC")
    241         set_cpp_flag("-march=x86-64")
    242         set_cpp_flag("-mtune=generic")
    243     endif()
    244     if(ARCH STREQUAL "mipsel")
    245         set_cpp_flag("-march=mips32r2")
    246         set_cpp_flag("-fPIC")
    247         set_cpp_flag("-mhard-float")
    248         set_cpp_flag("-mfp32")
    249     endif()
    250     if(ARCH STREQUAL "mips64el")
    251         set_cpp_flag("-march=mips64r2")
    252         set_cpp_flag("-mabi=64")
    253         set_cpp_flag("-fPIC")
    254     endif()
    255 
    256     if(LINUX)
    257         set_cpp_flag("-DUSE_X11=1")
    258     endif()
    259 
    260     # Use -g3 to have even more debug info
    261     set_cpp_flag("-g -g3" DEBUG)
    262     set_cpp_flag("-g -g3" RELWITHDEBINFO)
    263     if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
    264         # Treated as an unused argument with clang
    265         set_cpp_flag("-s" RELEASE)
    266     endif()
    267 
    268     # For distribution it is more important to be slim than super optimized
    269     set_cpp_flag("-Os" RELEASE)
    270     set_cpp_flag("-Os" RELWITHDEBINFO)
    271 
    272     set_cpp_flag("-DNDEBUG" RELEASE)
    273     set_cpp_flag("-DNDEBUG" RELWITHDEBINFO)
    274     set_cpp_flag("-DANGLE_DISABLE_TRACE" RELEASE)
    275     set_cpp_flag("-DANGLE_DISABLE_TRACE" RELWITHDEBINFO)
    276 
    277     # Put each variable and function in its own section so that when linking
    278     # with -gc-sections unused functions and variables are removed.
    279     set_cpp_flag("-ffunction-sections" RELEASE)
    280     set_cpp_flag("-fdata-sections" RELEASE)
    281     set_cpp_flag("-fomit-frame-pointer" RELEASE)
    282 
    283     if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
    284         if(MSAN)
    285             set_cpp_flag("-fsanitize=memory")
    286         elseif(ASAN)
    287             set_cpp_flag("-fsanitize=address")
    288         elseif(TSAN)
    289             set_cpp_flag("-fsanitize=thread")
    290         elseif(UBSAN)
    291             set_cpp_flag("-fsanitize=undefined -fsanitize-blacklist=${CMAKE_CURRENT_SOURCE_DIR}/third_party/LLVM/ubsan_blacklist.txt")
    292         endif()
    293     endif()
    294 endif()
    295 
    296 if(WIN32)
    297     add_definitions(-DWINVER=0x501 -DNOMINMAX -DSTRICT)
    298     set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} "" "lib")
    299 endif()
    300 
    301 
    302 ###########################################################
    303 # LLVM
    304 ###########################################################
    305 
    306 add_definitions(-DREACTOR_LLVM_VERSION=${REACTOR_LLVM_VERSION})
    307 
    308 if(REACTOR_LLVM_VERSION EQUAL 3)
    309 
    310 set(LLVM_LIST
    311     ${LLVM_DIR}/lib/Analysis/AliasAnalysis.cpp
    312     ${LLVM_DIR}/lib/Analysis/AliasSetTracker.cpp
    313     ${LLVM_DIR}/lib/Analysis/BasicAliasAnalysis.cpp
    314     ${LLVM_DIR}/lib/Analysis/BranchProbabilityInfo.cpp
    315     ${LLVM_DIR}/lib/Analysis/CaptureTracking.cpp
    316     ${LLVM_DIR}/lib/Analysis/ConstantFolding.cpp
    317     ${LLVM_DIR}/lib/Analysis/DIBuilder.cpp
    318     ${LLVM_DIR}/lib/Analysis/DebugInfo.cpp
    319     ${LLVM_DIR}/lib/Analysis/IVUsers.cpp
    320     ${LLVM_DIR}/lib/Analysis/InstructionSimplify.cpp
    321     ${LLVM_DIR}/lib/Analysis/Loads.cpp
    322     ${LLVM_DIR}/lib/Analysis/LoopInfo.cpp
    323     ${LLVM_DIR}/lib/Analysis/LoopPass.cpp
    324     ${LLVM_DIR}/lib/Analysis/MemoryBuiltins.cpp
    325     ${LLVM_DIR}/lib/Analysis/MemoryDependenceAnalysis.cpp
    326     ${LLVM_DIR}/lib/Analysis/NoAliasAnalysis.cpp
    327     ${LLVM_DIR}/lib/Analysis/PHITransAddr.cpp
    328     ${LLVM_DIR}/lib/Analysis/PathNumbering.cpp
    329     ${LLVM_DIR}/lib/Analysis/ProfileInfo.cpp
    330     ${LLVM_DIR}/lib/Analysis/ScalarEvolution.cpp
    331     ${LLVM_DIR}/lib/Analysis/ScalarEvolutionExpander.cpp
    332     ${LLVM_DIR}/lib/Analysis/ScalarEvolutionNormalization.cpp
    333     ${LLVM_DIR}/lib/Analysis/TypeBasedAliasAnalysis.cpp
    334     ${LLVM_DIR}/lib/Analysis/ValueTracking.cpp
    335     ${LLVM_DIR}/lib/CodeGen/AggressiveAntiDepBreaker.cpp
    336     ${LLVM_DIR}/lib/CodeGen/AllocationOrder.cpp
    337     ${LLVM_DIR}/lib/CodeGen/Analysis.cpp
    338     ${LLVM_DIR}/lib/CodeGen/BranchFolding.cpp
    339     ${LLVM_DIR}/lib/CodeGen/CalcSpillWeights.cpp
    340     ${LLVM_DIR}/lib/CodeGen/CallingConvLower.cpp
    341     ${LLVM_DIR}/lib/CodeGen/CodePlacementOpt.cpp
    342     ${LLVM_DIR}/lib/CodeGen/CriticalAntiDepBreaker.cpp
    343     ${LLVM_DIR}/lib/CodeGen/DeadMachineInstructionElim.cpp
    344     ${LLVM_DIR}/lib/CodeGen/DwarfEHPrepare.cpp
    345     ${LLVM_DIR}/lib/CodeGen/ELFCodeEmitter.cpp
    346     ${LLVM_DIR}/lib/CodeGen/ELFWriter.cpp
    347     ${LLVM_DIR}/lib/CodeGen/EdgeBundles.cpp
    348     ${LLVM_DIR}/lib/CodeGen/ExecutionDepsFix.cpp
    349     ${LLVM_DIR}/lib/CodeGen/ExpandISelPseudos.cpp
    350     ${LLVM_DIR}/lib/CodeGen/ExpandPostRAPseudos.cpp
    351     ${LLVM_DIR}/lib/CodeGen/GCMetadata.cpp
    352     ${LLVM_DIR}/lib/CodeGen/GCStrategy.cpp
    353     ${LLVM_DIR}/lib/CodeGen/InlineSpiller.cpp
    354     ${LLVM_DIR}/lib/CodeGen/InterferenceCache.cpp
    355     ${LLVM_DIR}/lib/CodeGen/IntrinsicLowering.cpp
    356     ${LLVM_DIR}/lib/CodeGen/LLVMTargetMachine.cpp
    357     ${LLVM_DIR}/lib/CodeGen/LatencyPriorityQueue.cpp
    358     ${LLVM_DIR}/lib/CodeGen/LexicalScopes.cpp
    359     ${LLVM_DIR}/lib/CodeGen/LiveDebugVariables.cpp
    360     ${LLVM_DIR}/lib/CodeGen/LiveInterval.cpp
    361     ${LLVM_DIR}/lib/CodeGen/LiveIntervalAnalysis.cpp
    362     ${LLVM_DIR}/lib/CodeGen/LiveIntervalUnion.cpp
    363     ${LLVM_DIR}/lib/CodeGen/LiveRangeCalc.cpp
    364     ${LLVM_DIR}/lib/CodeGen/LiveRangeEdit.cpp
    365     ${LLVM_DIR}/lib/CodeGen/LiveStackAnalysis.cpp
    366     ${LLVM_DIR}/lib/CodeGen/LiveVariables.cpp
    367     ${LLVM_DIR}/lib/CodeGen/LocalStackSlotAllocation.cpp
    368     ${LLVM_DIR}/lib/CodeGen/MachineBasicBlock.cpp
    369     ${LLVM_DIR}/lib/CodeGen/MachineCSE.cpp
    370     ${LLVM_DIR}/lib/CodeGen/MachineDominators.cpp
    371     ${LLVM_DIR}/lib/CodeGen/MachineFunction.cpp
    372     ${LLVM_DIR}/lib/CodeGen/MachineFunctionAnalysis.cpp
    373     ${LLVM_DIR}/lib/CodeGen/MachineFunctionPass.cpp
    374     ${LLVM_DIR}/lib/CodeGen/MachineFunctionPrinterPass.cpp
    375     ${LLVM_DIR}/lib/CodeGen/MachineInstr.cpp
    376     ${LLVM_DIR}/lib/CodeGen/MachineLICM.cpp
    377     ${LLVM_DIR}/lib/CodeGen/MachineLoopInfo.cpp
    378     ${LLVM_DIR}/lib/CodeGen/MachineModuleInfo.cpp
    379     ${LLVM_DIR}/lib/CodeGen/MachineModuleInfoImpls.cpp
    380     ${LLVM_DIR}/lib/CodeGen/MachinePassRegistry.cpp
    381     ${LLVM_DIR}/lib/CodeGen/MachineRegisterInfo.cpp
    382     ${LLVM_DIR}/lib/CodeGen/MachineSSAUpdater.cpp
    383     ${LLVM_DIR}/lib/CodeGen/MachineSink.cpp
    384     ${LLVM_DIR}/lib/CodeGen/MachineVerifier.cpp
    385     ${LLVM_DIR}/lib/CodeGen/ObjectCodeEmitter.cpp
    386     ${LLVM_DIR}/lib/CodeGen/OptimizePHIs.cpp
    387     ${LLVM_DIR}/lib/CodeGen/PHIElimination.cpp
    388     ${LLVM_DIR}/lib/CodeGen/PHIEliminationUtils.cpp
    389     ${LLVM_DIR}/lib/CodeGen/Passes.cpp
    390     ${LLVM_DIR}/lib/CodeGen/PeepholeOptimizer.cpp
    391     ${LLVM_DIR}/lib/CodeGen/PostRASchedulerList.cpp
    392     ${LLVM_DIR}/lib/CodeGen/ProcessImplicitDefs.cpp
    393     ${LLVM_DIR}/lib/CodeGen/PrologEpilogInserter.cpp
    394     ${LLVM_DIR}/lib/CodeGen/PseudoSourceValue.cpp
    395     ${LLVM_DIR}/lib/CodeGen/RegAllocBasic.cpp
    396     ${LLVM_DIR}/lib/CodeGen/RegAllocFast.cpp
    397     ${LLVM_DIR}/lib/CodeGen/RegAllocGreedy.cpp
    398     ${LLVM_DIR}/lib/CodeGen/RegAllocLinearScan.cpp
    399     ${LLVM_DIR}/lib/CodeGen/RegisterClassInfo.cpp
    400     ${LLVM_DIR}/lib/CodeGen/RegisterCoalescer.cpp
    401     ${LLVM_DIR}/lib/CodeGen/RegisterScavenging.cpp
    402     ${LLVM_DIR}/lib/CodeGen/RenderMachineFunction.cpp
    403     ${LLVM_DIR}/lib/CodeGen/ScheduleDAG.cpp
    404     ${LLVM_DIR}/lib/CodeGen/ScheduleDAGEmit.cpp
    405     ${LLVM_DIR}/lib/CodeGen/ScheduleDAGInstrs.cpp
    406     ${LLVM_DIR}/lib/CodeGen/ScheduleDAGPrinter.cpp
    407     ${LLVM_DIR}/lib/CodeGen/ScoreboardHazardRecognizer.cpp
    408     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    409     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FastISel.cpp
    410     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
    411     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
    412     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    413     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    414     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    415     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
    416     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
    417     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    418     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    419     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
    420     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
    421     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
    422     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
    423     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    424     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    425     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    426     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
    427     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    428     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/TargetSelectionDAGInfo.cpp
    429     ${LLVM_DIR}/lib/CodeGen/ShrinkWrapping.cpp
    430     ${LLVM_DIR}/lib/CodeGen/SjLjEHPrepare.cpp
    431     ${LLVM_DIR}/lib/CodeGen/SlotIndexes.cpp
    432     ${LLVM_DIR}/lib/CodeGen/SpillPlacement.cpp
    433     ${LLVM_DIR}/lib/CodeGen/Spiller.cpp
    434     ${LLVM_DIR}/lib/CodeGen/SplitKit.cpp
    435     ${LLVM_DIR}/lib/CodeGen/StackProtector.cpp
    436     ${LLVM_DIR}/lib/CodeGen/StackSlotColoring.cpp
    437     ${LLVM_DIR}/lib/CodeGen/StrongPHIElimination.cpp
    438     ${LLVM_DIR}/lib/CodeGen/TailDuplication.cpp
    439     ${LLVM_DIR}/lib/CodeGen/TargetInstrInfoImpl.cpp
    440     ${LLVM_DIR}/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    441     ${LLVM_DIR}/lib/CodeGen/TwoAddressInstructionPass.cpp
    442     ${LLVM_DIR}/lib/CodeGen/UnreachableBlockElim.cpp
    443     ${LLVM_DIR}/lib/CodeGen/VirtRegMap.cpp
    444     ${LLVM_DIR}/lib/CodeGen/VirtRegRewriter.cpp
    445     ${LLVM_DIR}/lib/ExecutionEngine/ExecutionEngine.cpp
    446     ${LLVM_DIR}/lib/ExecutionEngine/JIT/Intercept.cpp
    447     ${LLVM_DIR}/lib/ExecutionEngine/JIT/JIT.cpp
    448     ${LLVM_DIR}/lib/ExecutionEngine/JIT/JITDebugRegisterer.cpp
    449     ${LLVM_DIR}/lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp
    450     ${LLVM_DIR}/lib/ExecutionEngine/JIT/JITEmitter.cpp
    451     ${LLVM_DIR}/lib/ExecutionEngine/JIT/JITMemoryManager.cpp
    452     ${LLVM_DIR}/lib/ExecutionEngine/JIT/OProfileJITEventListener.cpp
    453     ${LLVM_DIR}/lib/ExecutionEngine/TargetSelect.cpp
    454     ${LLVM_DIR}/lib/MC/ELFObjectWriter.cpp
    455     ${LLVM_DIR}/lib/MC/MCAsmBackend.cpp
    456     ${LLVM_DIR}/lib/MC/MCAsmInfo.cpp
    457     ${LLVM_DIR}/lib/MC/MCAsmInfoCOFF.cpp
    458     ${LLVM_DIR}/lib/MC/MCAsmInfoDarwin.cpp
    459     ${LLVM_DIR}/lib/MC/MCAsmStreamer.cpp
    460     ${LLVM_DIR}/lib/MC/MCAssembler.cpp
    461     ${LLVM_DIR}/lib/MC/MCCodeEmitter.cpp
    462     ${LLVM_DIR}/lib/MC/MCCodeGenInfo.cpp
    463     ${LLVM_DIR}/lib/MC/MCContext.cpp
    464     ${LLVM_DIR}/lib/MC/MCDwarf.cpp
    465     ${LLVM_DIR}/lib/MC/MCELF.cpp
    466     ${LLVM_DIR}/lib/MC/MCELFObjectTargetWriter.cpp
    467     ${LLVM_DIR}/lib/MC/MCELFStreamer.cpp
    468     ${LLVM_DIR}/lib/MC/MCExpr.cpp
    469     ${LLVM_DIR}/lib/MC/MCInst.cpp
    470     ${LLVM_DIR}/lib/MC/MCInstPrinter.cpp
    471     ${LLVM_DIR}/lib/MC/MCInstrAnalysis.cpp
    472     ${LLVM_DIR}/lib/MC/MCLoggingStreamer.cpp
    473     ${LLVM_DIR}/lib/MC/MCMachOStreamer.cpp
    474     ${LLVM_DIR}/lib/MC/MCMachObjectTargetWriter.cpp
    475     ${LLVM_DIR}/lib/MC/MCNullStreamer.cpp
    476     ${LLVM_DIR}/lib/MC/MCObjectFileInfo.cpp
    477     ${LLVM_DIR}/lib/MC/MCObjectStreamer.cpp
    478     ${LLVM_DIR}/lib/MC/MCObjectWriter.cpp
    479     ${LLVM_DIR}/lib/MC/MCSection.cpp
    480     ${LLVM_DIR}/lib/MC/MCSectionCOFF.cpp
    481     ${LLVM_DIR}/lib/MC/MCSectionELF.cpp
    482     ${LLVM_DIR}/lib/MC/MCSectionMachO.cpp
    483     ${LLVM_DIR}/lib/MC/MCStreamer.cpp
    484     ${LLVM_DIR}/lib/MC/MCSubtargetInfo.cpp
    485     ${LLVM_DIR}/lib/MC/MCSymbol.cpp
    486     ${LLVM_DIR}/lib/MC/MCWin64EH.cpp
    487     ${LLVM_DIR}/lib/MC/MachObjectWriter.cpp
    488     ${LLVM_DIR}/lib/MC/SubtargetFeature.cpp
    489     ${LLVM_DIR}/lib/MC/WinCOFFObjectWriter.cpp
    490     ${LLVM_DIR}/lib/MC/WinCOFFStreamer.cpp
    491     ${LLVM_DIR}/lib/Support/APFloat.cpp
    492     ${LLVM_DIR}/lib/Support/APInt.cpp
    493     ${LLVM_DIR}/lib/Support/Allocator.cpp
    494     ${LLVM_DIR}/lib/Support/Atomic.cpp
    495     ${LLVM_DIR}/lib/Support/BlockFrequency.cpp
    496     ${LLVM_DIR}/lib/Support/BranchProbability.cpp
    497     ${LLVM_DIR}/lib/Support/CommandLine.cpp
    498     ${LLVM_DIR}/lib/Support/ConstantRange.cpp
    499     ${LLVM_DIR}/lib/Support/CrashRecoveryContext.cpp
    500     ${LLVM_DIR}/lib/Support/DAGDeltaAlgorithm.cpp
    501     ${LLVM_DIR}/lib/Support/DataExtractor.cpp
    502     ${LLVM_DIR}/lib/Support/Debug.cpp
    503     ${LLVM_DIR}/lib/Support/DeltaAlgorithm.cpp
    504     ${LLVM_DIR}/lib/Support/Disassembler.cpp
    505     ${LLVM_DIR}/lib/Support/Dwarf.cpp
    506     ${LLVM_DIR}/lib/Support/DynamicLibrary.cpp
    507     ${LLVM_DIR}/lib/Support/Errno.cpp
    508     ${LLVM_DIR}/lib/Support/ErrorHandling.cpp
    509     ${LLVM_DIR}/lib/Support/FileUtilities.cpp
    510     ${LLVM_DIR}/lib/Support/FoldingSet.cpp
    511     ${LLVM_DIR}/lib/Support/FormattedStream.cpp
    512     ${LLVM_DIR}/lib/Support/GraphWriter.cpp
    513     ${LLVM_DIR}/lib/Support/Host.cpp
    514     ${LLVM_DIR}/lib/Support/IncludeFile.cpp
    515     ${LLVM_DIR}/lib/Support/IntEqClasses.cpp
    516     ${LLVM_DIR}/lib/Support/IntervalMap.cpp
    517     ${LLVM_DIR}/lib/Support/IsInf.cpp
    518     ${LLVM_DIR}/lib/Support/IsNAN.cpp
    519     ${LLVM_DIR}/lib/Support/ManagedStatic.cpp
    520     ${LLVM_DIR}/lib/Support/Memory.cpp
    521     ${LLVM_DIR}/lib/Support/MemoryBuffer.cpp
    522     ${LLVM_DIR}/lib/Support/MemoryObject.cpp
    523     ${LLVM_DIR}/lib/Support/Mutex.cpp
    524     ${LLVM_DIR}/lib/Support/Path.cpp
    525     ${LLVM_DIR}/lib/Support/PathV2.cpp
    526     ${LLVM_DIR}/lib/Support/PrettyStackTrace.cpp
    527     ${LLVM_DIR}/lib/Support/Process.cpp
    528     ${LLVM_DIR}/lib/Support/Program.cpp
    529     ${LLVM_DIR}/lib/Support/RWMutex.cpp
    530     ${LLVM_DIR}/lib/Support/SearchForAddressOfSpecialSymbol.cpp
    531     ${LLVM_DIR}/lib/Support/Signals.cpp
    532     ${LLVM_DIR}/lib/Support/SmallPtrSet.cpp
    533     ${LLVM_DIR}/lib/Support/SmallVector.cpp
    534     ${LLVM_DIR}/lib/Support/SourceMgr.cpp
    535     ${LLVM_DIR}/lib/Support/Statistic.cpp
    536     ${LLVM_DIR}/lib/Support/StringExtras.cpp
    537     ${LLVM_DIR}/lib/Support/StringMap.cpp
    538     ${LLVM_DIR}/lib/Support/StringPool.cpp
    539     ${LLVM_DIR}/lib/Support/StringRef.cpp
    540     ${LLVM_DIR}/lib/Support/SystemUtils.cpp
    541     ${LLVM_DIR}/lib/Support/TargetRegistry.cpp
    542     ${LLVM_DIR}/lib/Support/ThreadLocal.cpp
    543     ${LLVM_DIR}/lib/Support/Threading.cpp
    544     ${LLVM_DIR}/lib/Support/TimeValue.cpp
    545     ${LLVM_DIR}/lib/Support/Timer.cpp
    546     ${LLVM_DIR}/lib/Support/ToolOutputFile.cpp
    547     ${LLVM_DIR}/lib/Support/Triple.cpp
    548     ${LLVM_DIR}/lib/Support/Twine.cpp
    549     ${LLVM_DIR}/lib/Support/Valgrind.cpp
    550     ${LLVM_DIR}/lib/Support/circular_raw_ostream.cpp
    551     ${LLVM_DIR}/lib/Support/raw_os_ostream.cpp
    552     ${LLVM_DIR}/lib/Support/raw_ostream.cpp
    553     ${LLVM_DIR}/lib/Support/system_error.cpp
    554     ${LLVM_DIR}/lib/Target/Mangler.cpp
    555     ${LLVM_DIR}/lib/Target/TargetData.cpp
    556     ${LLVM_DIR}/lib/Target/TargetELFWriterInfo.cpp
    557     ${LLVM_DIR}/lib/Target/TargetFrameLowering.cpp
    558     ${LLVM_DIR}/lib/Target/TargetInstrInfo.cpp
    559     ${LLVM_DIR}/lib/Target/TargetLibraryInfo.cpp
    560     ${LLVM_DIR}/lib/Target/TargetLoweringObjectFile.cpp
    561     ${LLVM_DIR}/lib/Target/TargetMachine.cpp
    562     ${LLVM_DIR}/lib/Target/TargetRegisterInfo.cpp
    563     ${LLVM_DIR}/lib/Target/TargetSubtargetInfo.cpp
    564     ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
    565     ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86InstComments.cpp
    566     ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
    567     ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
    568     ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
    569     ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
    570     ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
    571     ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
    572     ${LLVM_DIR}/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
    573     ${LLVM_DIR}/lib/Target/X86/Utils/X86ShuffleDecode.cpp
    574     ${LLVM_DIR}/lib/Target/X86/X86CodeEmitter.cpp
    575     ${LLVM_DIR}/lib/Target/X86/X86ELFWriterInfo.cpp
    576     ${LLVM_DIR}/lib/Target/X86/X86FastISel.cpp
    577     ${LLVM_DIR}/lib/Target/X86/X86FloatingPoint.cpp
    578     ${LLVM_DIR}/lib/Target/X86/X86FrameLowering.cpp
    579     ${LLVM_DIR}/lib/Target/X86/X86ISelDAGToDAG.cpp
    580     ${LLVM_DIR}/lib/Target/X86/X86ISelLowering.cpp
    581     ${LLVM_DIR}/lib/Target/X86/X86InstrInfo.cpp
    582     ${LLVM_DIR}/lib/Target/X86/X86JITInfo.cpp
    583     ${LLVM_DIR}/lib/Target/X86/X86RegisterInfo.cpp
    584     ${LLVM_DIR}/lib/Target/X86/X86SelectionDAGInfo.cpp
    585     ${LLVM_DIR}/lib/Target/X86/X86Subtarget.cpp
    586     ${LLVM_DIR}/lib/Target/X86/X86TargetMachine.cpp
    587     ${LLVM_DIR}/lib/Target/X86/X86TargetObjectFile.cpp
    588     ${LLVM_DIR}/lib/Target/X86/X86VZeroUpper.cpp
    589     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    590     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    591     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCalls.cpp
    592     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCasts.cpp
    593     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCompares.cpp
    594     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
    595     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    596     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombinePHI.cpp
    597     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSelect.cpp
    598     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineShifts.cpp
    599     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    600     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
    601     ${LLVM_DIR}/lib/Transforms/InstCombine/InstructionCombining.cpp
    602     ${LLVM_DIR}/lib/Transforms/Scalar/ADCE.cpp
    603     ${LLVM_DIR}/lib/Transforms/Scalar/CodeGenPrepare.cpp
    604     ${LLVM_DIR}/lib/Transforms/Scalar/DeadStoreElimination.cpp
    605     ${LLVM_DIR}/lib/Transforms/Scalar/GVN.cpp
    606     ${LLVM_DIR}/lib/Transforms/Scalar/LICM.cpp
    607     ${LLVM_DIR}/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    608     ${LLVM_DIR}/lib/Transforms/Scalar/Reassociate.cpp
    609     ${LLVM_DIR}/lib/Transforms/Scalar/Reg2Mem.cpp
    610     ${LLVM_DIR}/lib/Transforms/Scalar/SCCP.cpp
    611     ${LLVM_DIR}/lib/Transforms/Scalar/ScalarReplAggregates.cpp
    612     ${LLVM_DIR}/lib/Transforms/Scalar/SimplifyCFGPass.cpp
    613     ${LLVM_DIR}/lib/Transforms/Utils/AddrModeMatcher.cpp
    614     ${LLVM_DIR}/lib/Transforms/Utils/BasicBlockUtils.cpp
    615     ${LLVM_DIR}/lib/Transforms/Utils/BreakCriticalEdges.cpp
    616     ${LLVM_DIR}/lib/Transforms/Utils/BuildLibCalls.cpp
    617     ${LLVM_DIR}/lib/Transforms/Utils/DemoteRegToStack.cpp
    618     ${LLVM_DIR}/lib/Transforms/Utils/InstructionNamer.cpp
    619     ${LLVM_DIR}/lib/Transforms/Utils/LCSSA.cpp
    620     ${LLVM_DIR}/lib/Transforms/Utils/Local.cpp
    621     ${LLVM_DIR}/lib/Transforms/Utils/LoopSimplify.cpp
    622     ${LLVM_DIR}/lib/Transforms/Utils/LowerInvoke.cpp
    623     ${LLVM_DIR}/lib/Transforms/Utils/LowerSwitch.cpp
    624     ${LLVM_DIR}/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
    625     ${LLVM_DIR}/lib/Transforms/Utils/SSAUpdater.cpp
    626     ${LLVM_DIR}/lib/Transforms/Utils/SimplifyCFG.cpp
    627     ${LLVM_DIR}/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
    628     ${LLVM_DIR}/lib/VMCore/AsmWriter.cpp
    629     ${LLVM_DIR}/lib/VMCore/Attributes.cpp
    630     ${LLVM_DIR}/lib/VMCore/BasicBlock.cpp
    631     ${LLVM_DIR}/lib/VMCore/ConstantFold.cpp
    632     ${LLVM_DIR}/lib/VMCore/Constants.cpp
    633     ${LLVM_DIR}/lib/VMCore/DebugInfoProbe.cpp
    634     ${LLVM_DIR}/lib/VMCore/DebugLoc.cpp
    635     ${LLVM_DIR}/lib/VMCore/Dominators.cpp
    636     ${LLVM_DIR}/lib/VMCore/Function.cpp
    637     ${LLVM_DIR}/lib/VMCore/Globals.cpp
    638     ${LLVM_DIR}/lib/VMCore/IRBuilder.cpp
    639     ${LLVM_DIR}/lib/VMCore/InlineAsm.cpp
    640     ${LLVM_DIR}/lib/VMCore/Instruction.cpp
    641     ${LLVM_DIR}/lib/VMCore/Instructions.cpp
    642     ${LLVM_DIR}/lib/VMCore/IntrinsicInst.cpp
    643     ${LLVM_DIR}/lib/VMCore/LLVMContext.cpp
    644     ${LLVM_DIR}/lib/VMCore/LLVMContextImpl.cpp
    645     ${LLVM_DIR}/lib/VMCore/LeakDetector.cpp
    646     ${LLVM_DIR}/lib/VMCore/Metadata.cpp
    647     ${LLVM_DIR}/lib/VMCore/Module.cpp
    648     ${LLVM_DIR}/lib/VMCore/Pass.cpp
    649     ${LLVM_DIR}/lib/VMCore/PassManager.cpp
    650     ${LLVM_DIR}/lib/VMCore/PassRegistry.cpp
    651     ${LLVM_DIR}/lib/VMCore/PrintModulePass.cpp
    652     ${LLVM_DIR}/lib/VMCore/Type.cpp
    653     ${LLVM_DIR}/lib/VMCore/Use.cpp
    654     ${LLVM_DIR}/lib/VMCore/User.cpp
    655     ${LLVM_DIR}/lib/VMCore/Value.cpp
    656     ${LLVM_DIR}/lib/VMCore/ValueSymbolTable.cpp
    657     ${LLVM_DIR}/lib/VMCore/ValueTypes.cpp
    658     ${LLVM_DIR}/lib/VMCore/Verifier.cpp
    659 )
    660 
    661 if(WIN32)
    662     set(LLVM_INCLUDE_DIR ${LLVM_DIR}/include)
    663 elseif(LINUX)
    664     set(LLVM_INCLUDE_DIR ${LLVM_DIR}/include-linux)
    665 elseif(APPLE)
    666     set(LLVM_INCLUDE_DIR ${LLVM_DIR}/include-osx)
    667 endif()
    668 
    669 list(APPEND LLVM_INCLUDE_DIR
    670     ${LLVM_DIR}/include
    671     ${LLVM_DIR}/lib/Target/X86
    672 )
    673 
    674 elseif(REACTOR_LLVM_VERSION EQUAL 7)
    675 
    676 set(LLVM_LIST
    677     ${LLVM_DIR}/lib/Analysis/AliasAnalysis.cpp
    678     ${LLVM_DIR}/lib/Analysis/AliasAnalysisEvaluator.cpp
    679     ${LLVM_DIR}/lib/Analysis/AliasAnalysisSummary.cpp
    680     ${LLVM_DIR}/lib/Analysis/AliasSetTracker.cpp
    681     ${LLVM_DIR}/lib/Analysis/Analysis.cpp
    682     ${LLVM_DIR}/lib/Analysis/AssumptionCache.cpp
    683     ${LLVM_DIR}/lib/Analysis/BasicAliasAnalysis.cpp
    684     ${LLVM_DIR}/lib/Analysis/BlockFrequencyInfo.cpp
    685     ${LLVM_DIR}/lib/Analysis/BlockFrequencyInfoImpl.cpp
    686     ${LLVM_DIR}/lib/Analysis/BranchProbabilityInfo.cpp
    687     ${LLVM_DIR}/lib/Analysis/CFG.cpp
    688     ${LLVM_DIR}/lib/Analysis/CFGPrinter.cpp
    689     ${LLVM_DIR}/lib/Analysis/CFLAndersAliasAnalysis.cpp
    690     ${LLVM_DIR}/lib/Analysis/CFLSteensAliasAnalysis.cpp
    691     ${LLVM_DIR}/lib/Analysis/CGSCCPassManager.cpp
    692     ${LLVM_DIR}/lib/Analysis/CallGraph.cpp
    693     ${LLVM_DIR}/lib/Analysis/CallGraphSCCPass.cpp
    694     ${LLVM_DIR}/lib/Analysis/CallPrinter.cpp
    695     ${LLVM_DIR}/lib/Analysis/CaptureTracking.cpp
    696     ${LLVM_DIR}/lib/Analysis/CmpInstAnalysis.cpp
    697     ${LLVM_DIR}/lib/Analysis/CodeMetrics.cpp
    698     ${LLVM_DIR}/lib/Analysis/ConstantFolding.cpp
    699     ${LLVM_DIR}/lib/Analysis/CostModel.cpp
    700     ${LLVM_DIR}/lib/Analysis/Delinearization.cpp
    701     ${LLVM_DIR}/lib/Analysis/DemandedBits.cpp
    702     ${LLVM_DIR}/lib/Analysis/DependenceAnalysis.cpp
    703     ${LLVM_DIR}/lib/Analysis/DivergenceAnalysis.cpp
    704     ${LLVM_DIR}/lib/Analysis/DomPrinter.cpp
    705     ${LLVM_DIR}/lib/Analysis/DominanceFrontier.cpp
    706     ${LLVM_DIR}/lib/Analysis/EHPersonalities.cpp
    707     ${LLVM_DIR}/lib/Analysis/GlobalsModRef.cpp
    708     ${LLVM_DIR}/lib/Analysis/IVUsers.cpp
    709     ${LLVM_DIR}/lib/Analysis/IndirectCallPromotionAnalysis.cpp
    710     ${LLVM_DIR}/lib/Analysis/InlineCost.cpp
    711     ${LLVM_DIR}/lib/Analysis/InstCount.cpp
    712     ${LLVM_DIR}/lib/Analysis/InstructionSimplify.cpp
    713     ${LLVM_DIR}/lib/Analysis/Interval.cpp
    714     ${LLVM_DIR}/lib/Analysis/IntervalPartition.cpp
    715     ${LLVM_DIR}/lib/Analysis/IteratedDominanceFrontier.cpp
    716     ${LLVM_DIR}/lib/Analysis/LazyBlockFrequencyInfo.cpp
    717     ${LLVM_DIR}/lib/Analysis/LazyBranchProbabilityInfo.cpp
    718     ${LLVM_DIR}/lib/Analysis/LazyCallGraph.cpp
    719     ${LLVM_DIR}/lib/Analysis/LazyValueInfo.cpp
    720     ${LLVM_DIR}/lib/Analysis/Lint.cpp
    721     ${LLVM_DIR}/lib/Analysis/Loads.cpp
    722     ${LLVM_DIR}/lib/Analysis/LoopAccessAnalysis.cpp
    723     ${LLVM_DIR}/lib/Analysis/LoopAnalysisManager.cpp
    724     ${LLVM_DIR}/lib/Analysis/LoopInfo.cpp
    725     ${LLVM_DIR}/lib/Analysis/LoopPass.cpp
    726     ${LLVM_DIR}/lib/Analysis/LoopUnrollAnalyzer.cpp
    727     ${LLVM_DIR}/lib/Analysis/MemDepPrinter.cpp
    728     ${LLVM_DIR}/lib/Analysis/MemDerefPrinter.cpp
    729     ${LLVM_DIR}/lib/Analysis/MemoryBuiltins.cpp
    730     ${LLVM_DIR}/lib/Analysis/MemoryDependenceAnalysis.cpp
    731     ${LLVM_DIR}/lib/Analysis/MemoryLocation.cpp
    732     ${LLVM_DIR}/lib/Analysis/MemorySSA.cpp
    733     ${LLVM_DIR}/lib/Analysis/MemorySSAUpdater.cpp
    734     ${LLVM_DIR}/lib/Analysis/ModuleDebugInfoPrinter.cpp
    735     ${LLVM_DIR}/lib/Analysis/ModuleSummaryAnalysis.cpp
    736     ${LLVM_DIR}/lib/Analysis/MustExecute.cpp
    737     ${LLVM_DIR}/lib/Analysis/ObjCARCAliasAnalysis.cpp
    738     ${LLVM_DIR}/lib/Analysis/ObjCARCAnalysisUtils.cpp
    739     ${LLVM_DIR}/lib/Analysis/ObjCARCInstKind.cpp
    740     ${LLVM_DIR}/lib/Analysis/OptimizationRemarkEmitter.cpp
    741     ${LLVM_DIR}/lib/Analysis/OrderedBasicBlock.cpp
    742     ${LLVM_DIR}/lib/Analysis/PHITransAddr.cpp
    743     ${LLVM_DIR}/lib/Analysis/PhiValues.cpp
    744     ${LLVM_DIR}/lib/Analysis/PostDominators.cpp
    745     ${LLVM_DIR}/lib/Analysis/ProfileSummaryInfo.cpp
    746     ${LLVM_DIR}/lib/Analysis/PtrUseVisitor.cpp
    747     ${LLVM_DIR}/lib/Analysis/RegionInfo.cpp
    748     ${LLVM_DIR}/lib/Analysis/RegionPass.cpp
    749     ${LLVM_DIR}/lib/Analysis/RegionPrinter.cpp
    750     ${LLVM_DIR}/lib/Analysis/ScalarEvolution.cpp
    751     ${LLVM_DIR}/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
    752     ${LLVM_DIR}/lib/Analysis/ScalarEvolutionExpander.cpp
    753     ${LLVM_DIR}/lib/Analysis/ScalarEvolutionNormalization.cpp
    754     ${LLVM_DIR}/lib/Analysis/ScopedNoAliasAA.cpp
    755     ${LLVM_DIR}/lib/Analysis/SyntheticCountsUtils.cpp
    756     ${LLVM_DIR}/lib/Analysis/TargetLibraryInfo.cpp
    757     ${LLVM_DIR}/lib/Analysis/TargetTransformInfo.cpp
    758     ${LLVM_DIR}/lib/Analysis/Trace.cpp
    759     ${LLVM_DIR}/lib/Analysis/TypeBasedAliasAnalysis.cpp
    760     ${LLVM_DIR}/lib/Analysis/TypeMetadataUtils.cpp
    761     ${LLVM_DIR}/lib/Analysis/ValueLattice.cpp
    762     ${LLVM_DIR}/lib/Analysis/ValueLatticeUtils.cpp
    763     ${LLVM_DIR}/lib/Analysis/ValueTracking.cpp
    764     ${LLVM_DIR}/lib/Analysis/VectorUtils.cpp
    765     ${LLVM_DIR}/lib/BinaryFormat/Dwarf.cpp
    766     ${LLVM_DIR}/lib/BinaryFormat/Magic.cpp
    767     ${LLVM_DIR}/lib/BinaryFormat/Wasm.cpp
    768     ${LLVM_DIR}/lib/Bitcode/Reader/BitReader.cpp
    769     ${LLVM_DIR}/lib/Bitcode/Reader/BitcodeReader.cpp
    770     ${LLVM_DIR}/lib/Bitcode/Reader/BitstreamReader.cpp
    771     ${LLVM_DIR}/lib/Bitcode/Reader/MetadataLoader.cpp
    772     ${LLVM_DIR}/lib/Bitcode/Reader/ValueList.cpp
    773     ${LLVM_DIR}/lib/Bitcode/Writer/BitWriter.cpp
    774     ${LLVM_DIR}/lib/Bitcode/Writer/BitcodeWriter.cpp
    775     ${LLVM_DIR}/lib/Bitcode/Writer/BitcodeWriterPass.cpp
    776     ${LLVM_DIR}/lib/Bitcode/Writer/ValueEnumerator.cpp
    777     ${LLVM_DIR}/lib/CodeGen/AggressiveAntiDepBreaker.cpp
    778     ${LLVM_DIR}/lib/CodeGen/AllocationOrder.cpp
    779     ${LLVM_DIR}/lib/CodeGen/Analysis.cpp
    780     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/ARMException.cpp
    781     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AccelTable.cpp
    782     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AddressPool.cpp
    783     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    784     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
    785     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
    786     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
    787     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DIE.cpp
    788     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DIEHash.cpp
    789     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp
    790     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
    791     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DebugLocStream.cpp
    792     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
    793     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
    794     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    795     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
    796     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfFile.cpp
    797     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
    798     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
    799     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/EHStreamer.cpp
    800     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
    801     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp
    802     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/WinCFGuard.cpp
    803     ${LLVM_DIR}/lib/CodeGen/AsmPrinter/WinException.cpp
    804     ${LLVM_DIR}/lib/CodeGen/AtomicExpandPass.cpp
    805     ${LLVM_DIR}/lib/CodeGen/BasicTargetTransformInfo.cpp
    806     ${LLVM_DIR}/lib/CodeGen/BranchFolding.cpp
    807     ${LLVM_DIR}/lib/CodeGen/BranchRelaxation.cpp
    808     ${LLVM_DIR}/lib/CodeGen/BreakFalseDeps.cpp
    809     ${LLVM_DIR}/lib/CodeGen/BuiltinGCs.cpp
    810     ${LLVM_DIR}/lib/CodeGen/CFIInstrInserter.cpp
    811     ${LLVM_DIR}/lib/CodeGen/CalcSpillWeights.cpp
    812     ${LLVM_DIR}/lib/CodeGen/CallingConvLower.cpp
    813     ${LLVM_DIR}/lib/CodeGen/CodeGen.cpp
    814     ${LLVM_DIR}/lib/CodeGen/CodeGenPrepare.cpp
    815     ${LLVM_DIR}/lib/CodeGen/CriticalAntiDepBreaker.cpp
    816     ${LLVM_DIR}/lib/CodeGen/DFAPacketizer.cpp
    817     ${LLVM_DIR}/lib/CodeGen/DeadMachineInstructionElim.cpp
    818     ${LLVM_DIR}/lib/CodeGen/DetectDeadLanes.cpp
    819     ${LLVM_DIR}/lib/CodeGen/DwarfEHPrepare.cpp
    820     ${LLVM_DIR}/lib/CodeGen/EarlyIfConversion.cpp
    821     ${LLVM_DIR}/lib/CodeGen/EdgeBundles.cpp
    822     ${LLVM_DIR}/lib/CodeGen/ExecutionDomainFix.cpp
    823     ${LLVM_DIR}/lib/CodeGen/ExpandISelPseudos.cpp
    824     ${LLVM_DIR}/lib/CodeGen/ExpandMemCmp.cpp
    825     ${LLVM_DIR}/lib/CodeGen/ExpandPostRAPseudos.cpp
    826     ${LLVM_DIR}/lib/CodeGen/ExpandReductions.cpp
    827     ${LLVM_DIR}/lib/CodeGen/FEntryInserter.cpp
    828     ${LLVM_DIR}/lib/CodeGen/FaultMaps.cpp
    829     ${LLVM_DIR}/lib/CodeGen/FuncletLayout.cpp
    830     ${LLVM_DIR}/lib/CodeGen/GCMetadata.cpp
    831     ${LLVM_DIR}/lib/CodeGen/GCMetadataPrinter.cpp
    832     ${LLVM_DIR}/lib/CodeGen/GCRootLowering.cpp
    833     ${LLVM_DIR}/lib/CodeGen/GCStrategy.cpp
    834     ${LLVM_DIR}/lib/CodeGen/GlobalISel/CallLowering.cpp
    835     ${LLVM_DIR}/lib/CodeGen/GlobalISel/Combiner.cpp
    836     ${LLVM_DIR}/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    837     ${LLVM_DIR}/lib/CodeGen/GlobalISel/GlobalISel.cpp
    838     ${LLVM_DIR}/lib/CodeGen/GlobalISel/IRTranslator.cpp
    839     ${LLVM_DIR}/lib/CodeGen/GlobalISel/InstructionSelect.cpp
    840     ${LLVM_DIR}/lib/CodeGen/GlobalISel/InstructionSelector.cpp
    841     ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
    842     ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
    843     ${LLVM_DIR}/lib/CodeGen/GlobalISel/Legalizer.cpp
    844     ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    845     ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
    846     ${LLVM_DIR}/lib/CodeGen/GlobalISel/Localizer.cpp
    847     ${LLVM_DIR}/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
    848     ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegBankSelect.cpp
    849     ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegisterBank.cpp
    850     ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
    851     ${LLVM_DIR}/lib/CodeGen/GlobalISel/Utils.cpp
    852     ${LLVM_DIR}/lib/CodeGen/GlobalMerge.cpp
    853     ${LLVM_DIR}/lib/CodeGen/IfConversion.cpp
    854     ${LLVM_DIR}/lib/CodeGen/ImplicitNullChecks.cpp
    855     ${LLVM_DIR}/lib/CodeGen/IndirectBrExpandPass.cpp
    856     ${LLVM_DIR}/lib/CodeGen/InlineSpiller.cpp
    857     ${LLVM_DIR}/lib/CodeGen/InterferenceCache.cpp
    858     ${LLVM_DIR}/lib/CodeGen/InterleavedAccessPass.cpp
    859     ${LLVM_DIR}/lib/CodeGen/IntrinsicLowering.cpp
    860     ${LLVM_DIR}/lib/CodeGen/LLVMTargetMachine.cpp
    861     ${LLVM_DIR}/lib/CodeGen/LatencyPriorityQueue.cpp
    862     ${LLVM_DIR}/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
    863     ${LLVM_DIR}/lib/CodeGen/LexicalScopes.cpp
    864     ${LLVM_DIR}/lib/CodeGen/LiveDebugValues.cpp
    865     ${LLVM_DIR}/lib/CodeGen/LiveDebugVariables.cpp
    866     ${LLVM_DIR}/lib/CodeGen/LiveInterval.cpp
    867     ${LLVM_DIR}/lib/CodeGen/LiveIntervalUnion.cpp
    868     ${LLVM_DIR}/lib/CodeGen/LiveIntervals.cpp
    869     ${LLVM_DIR}/lib/CodeGen/LivePhysRegs.cpp
    870     ${LLVM_DIR}/lib/CodeGen/LiveRangeCalc.cpp
    871     ${LLVM_DIR}/lib/CodeGen/LiveRangeEdit.cpp
    872     ${LLVM_DIR}/lib/CodeGen/LiveRangeShrink.cpp
    873     ${LLVM_DIR}/lib/CodeGen/LiveRegMatrix.cpp
    874     ${LLVM_DIR}/lib/CodeGen/LiveRegUnits.cpp
    875     ${LLVM_DIR}/lib/CodeGen/LiveStacks.cpp
    876     ${LLVM_DIR}/lib/CodeGen/LiveVariables.cpp
    877     ${LLVM_DIR}/lib/CodeGen/LocalStackSlotAllocation.cpp
    878     ${LLVM_DIR}/lib/CodeGen/LoopTraversal.cpp
    879     ${LLVM_DIR}/lib/CodeGen/LowLevelType.cpp
    880     ${LLVM_DIR}/lib/CodeGen/LowerEmuTLS.cpp
    881     ${LLVM_DIR}/lib/CodeGen/MIRCanonicalizerPass.cpp
    882     ${LLVM_DIR}/lib/CodeGen/MIRPrinter.cpp
    883     ${LLVM_DIR}/lib/CodeGen/MIRPrintingPass.cpp
    884     ${LLVM_DIR}/lib/CodeGen/MachineBasicBlock.cpp
    885     ${LLVM_DIR}/lib/CodeGen/MachineBlockFrequencyInfo.cpp
    886     ${LLVM_DIR}/lib/CodeGen/MachineBlockPlacement.cpp
    887     ${LLVM_DIR}/lib/CodeGen/MachineBranchProbabilityInfo.cpp
    888     ${LLVM_DIR}/lib/CodeGen/MachineCSE.cpp
    889     ${LLVM_DIR}/lib/CodeGen/MachineCombiner.cpp
    890     ${LLVM_DIR}/lib/CodeGen/MachineCopyPropagation.cpp
    891     ${LLVM_DIR}/lib/CodeGen/MachineDominanceFrontier.cpp
    892     ${LLVM_DIR}/lib/CodeGen/MachineDominators.cpp
    893     ${LLVM_DIR}/lib/CodeGen/MachineFrameInfo.cpp
    894     ${LLVM_DIR}/lib/CodeGen/MachineFunction.cpp
    895     ${LLVM_DIR}/lib/CodeGen/MachineFunctionPass.cpp
    896     ${LLVM_DIR}/lib/CodeGen/MachineFunctionPrinterPass.cpp
    897     ${LLVM_DIR}/lib/CodeGen/MachineInstr.cpp
    898     ${LLVM_DIR}/lib/CodeGen/MachineInstrBundle.cpp
    899     ${LLVM_DIR}/lib/CodeGen/MachineLICM.cpp
    900     ${LLVM_DIR}/lib/CodeGen/MachineLoopInfo.cpp
    901     ${LLVM_DIR}/lib/CodeGen/MachineModuleInfo.cpp
    902     ${LLVM_DIR}/lib/CodeGen/MachineModuleInfoImpls.cpp
    903     ${LLVM_DIR}/lib/CodeGen/MachineOperand.cpp
    904     ${LLVM_DIR}/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
    905     ${LLVM_DIR}/lib/CodeGen/MachineOutliner.cpp
    906     ${LLVM_DIR}/lib/CodeGen/MachinePassRegistry.cpp
    907     ${LLVM_DIR}/lib/CodeGen/MachinePipeliner.cpp
    908     ${LLVM_DIR}/lib/CodeGen/MachinePostDominators.cpp
    909     ${LLVM_DIR}/lib/CodeGen/MachineRegionInfo.cpp
    910     ${LLVM_DIR}/lib/CodeGen/MachineRegisterInfo.cpp
    911     ${LLVM_DIR}/lib/CodeGen/MachineSSAUpdater.cpp
    912     ${LLVM_DIR}/lib/CodeGen/MachineScheduler.cpp
    913     ${LLVM_DIR}/lib/CodeGen/MachineSink.cpp
    914     ${LLVM_DIR}/lib/CodeGen/MachineTraceMetrics.cpp
    915     ${LLVM_DIR}/lib/CodeGen/MachineVerifier.cpp
    916     ${LLVM_DIR}/lib/CodeGen/MacroFusion.cpp
    917     ${LLVM_DIR}/lib/CodeGen/OptimizePHIs.cpp
    918     ${LLVM_DIR}/lib/CodeGen/PHIElimination.cpp
    919     ${LLVM_DIR}/lib/CodeGen/PHIEliminationUtils.cpp
    920     ${LLVM_DIR}/lib/CodeGen/ParallelCG.cpp
    921     ${LLVM_DIR}/lib/CodeGen/PatchableFunction.cpp
    922     ${LLVM_DIR}/lib/CodeGen/PeepholeOptimizer.cpp
    923     ${LLVM_DIR}/lib/CodeGen/PostRAHazardRecognizer.cpp
    924     ${LLVM_DIR}/lib/CodeGen/PostRASchedulerList.cpp
    925     ${LLVM_DIR}/lib/CodeGen/PreISelIntrinsicLowering.cpp
    926     ${LLVM_DIR}/lib/CodeGen/ProcessImplicitDefs.cpp
    927     ${LLVM_DIR}/lib/CodeGen/PrologEpilogInserter.cpp
    928     ${LLVM_DIR}/lib/CodeGen/PseudoSourceValue.cpp
    929     ${LLVM_DIR}/lib/CodeGen/ReachingDefAnalysis.cpp
    930     ${LLVM_DIR}/lib/CodeGen/RegAllocBase.cpp
    931     ${LLVM_DIR}/lib/CodeGen/RegAllocBasic.cpp
    932     ${LLVM_DIR}/lib/CodeGen/RegAllocFast.cpp
    933     ${LLVM_DIR}/lib/CodeGen/RegAllocGreedy.cpp
    934     ${LLVM_DIR}/lib/CodeGen/RegAllocPBQP.cpp
    935     ${LLVM_DIR}/lib/CodeGen/RegUsageInfoCollector.cpp
    936     ${LLVM_DIR}/lib/CodeGen/RegUsageInfoPropagate.cpp
    937     ${LLVM_DIR}/lib/CodeGen/RegisterClassInfo.cpp
    938     ${LLVM_DIR}/lib/CodeGen/RegisterCoalescer.cpp
    939     ${LLVM_DIR}/lib/CodeGen/RegisterPressure.cpp
    940     ${LLVM_DIR}/lib/CodeGen/RegisterScavenging.cpp
    941     ${LLVM_DIR}/lib/CodeGen/RegisterUsageInfo.cpp
    942     ${LLVM_DIR}/lib/CodeGen/RenameIndependentSubregs.cpp
    943     ${LLVM_DIR}/lib/CodeGen/ResetMachineFunctionPass.cpp
    944     ${LLVM_DIR}/lib/CodeGen/SafeStack.cpp
    945     ${LLVM_DIR}/lib/CodeGen/SafeStackColoring.cpp
    946     ${LLVM_DIR}/lib/CodeGen/SafeStackLayout.cpp
    947     ${LLVM_DIR}/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
    948     ${LLVM_DIR}/lib/CodeGen/ScheduleDAG.cpp
    949     ${LLVM_DIR}/lib/CodeGen/ScheduleDAGInstrs.cpp
    950     ${LLVM_DIR}/lib/CodeGen/ScheduleDAGPrinter.cpp
    951     ${LLVM_DIR}/lib/CodeGen/ScoreboardHazardRecognizer.cpp
    952     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    953     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FastISel.cpp
    954     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
    955     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
    956     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    957     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    958     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    959     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
    960     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
    961     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    962     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    963     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
    964     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
    965     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
    966     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
    967     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
    968     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    969     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
    970     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    971     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
    972     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    973     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
    974     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp
    975     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
    976     ${LLVM_DIR}/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    977     ${LLVM_DIR}/lib/CodeGen/ShadowStackGCLowering.cpp
    978     ${LLVM_DIR}/lib/CodeGen/ShrinkWrap.cpp
    979     ${LLVM_DIR}/lib/CodeGen/SjLjEHPrepare.cpp
    980     ${LLVM_DIR}/lib/CodeGen/SlotIndexes.cpp
    981     ${LLVM_DIR}/lib/CodeGen/SpillPlacement.cpp
    982     ${LLVM_DIR}/lib/CodeGen/SplitKit.cpp
    983     ${LLVM_DIR}/lib/CodeGen/StackColoring.cpp
    984     ${LLVM_DIR}/lib/CodeGen/StackMapLivenessAnalysis.cpp
    985     ${LLVM_DIR}/lib/CodeGen/StackMaps.cpp
    986     ${LLVM_DIR}/lib/CodeGen/StackProtector.cpp
    987     ${LLVM_DIR}/lib/CodeGen/StackSlotColoring.cpp
    988     ${LLVM_DIR}/lib/CodeGen/TailDuplication.cpp
    989     ${LLVM_DIR}/lib/CodeGen/TailDuplicator.cpp
    990     ${LLVM_DIR}/lib/CodeGen/TargetFrameLoweringImpl.cpp
    991     ${LLVM_DIR}/lib/CodeGen/TargetInstrInfo.cpp
    992     ${LLVM_DIR}/lib/CodeGen/TargetLoweringBase.cpp
    993     ${LLVM_DIR}/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    994     ${LLVM_DIR}/lib/CodeGen/TargetOptionsImpl.cpp
    995     ${LLVM_DIR}/lib/CodeGen/TargetPassConfig.cpp
    996     ${LLVM_DIR}/lib/CodeGen/TargetRegisterInfo.cpp
    997     ${LLVM_DIR}/lib/CodeGen/TargetSchedule.cpp
    998     ${LLVM_DIR}/lib/CodeGen/TargetSubtargetInfo.cpp
    999     ${LLVM_DIR}/lib/CodeGen/TwoAddressInstructionPass.cpp
   1000     ${LLVM_DIR}/lib/CodeGen/UnreachableBlockElim.cpp
   1001     ${LLVM_DIR}/lib/CodeGen/ValueTypes.cpp
   1002     ${LLVM_DIR}/lib/CodeGen/VirtRegMap.cpp
   1003     ${LLVM_DIR}/lib/CodeGen/WasmEHPrepare.cpp
   1004     ${LLVM_DIR}/lib/CodeGen/WinEHPrepare.cpp
   1005     ${LLVM_DIR}/lib/CodeGen/XRayInstrumentation.cpp
   1006     ${LLVM_DIR}/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp
   1007     ${LLVM_DIR}/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp
   1008     ${LLVM_DIR}/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
   1009     ${LLVM_DIR}/lib/DebugInfo/CodeView/CodeViewError.cpp
   1010     ${LLVM_DIR}/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
   1011     ${LLVM_DIR}/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
   1012     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp
   1013     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp
   1014     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
   1015     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp
   1016     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp
   1017     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp
   1018     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp
   1019     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugSubsection.cpp
   1020     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp
   1021     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp
   1022     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp
   1023     ${LLVM_DIR}/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp
   1024     ${LLVM_DIR}/lib/DebugInfo/CodeView/EnumTables.cpp
   1025     ${LLVM_DIR}/lib/DebugInfo/CodeView/Formatters.cpp
   1026     ${LLVM_DIR}/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
   1027     ${LLVM_DIR}/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp
   1028     ${LLVM_DIR}/lib/DebugInfo/CodeView/Line.cpp
   1029     ${LLVM_DIR}/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp
   1030     ${LLVM_DIR}/lib/DebugInfo/CodeView/RecordName.cpp
   1031     ${LLVM_DIR}/lib/DebugInfo/CodeView/RecordSerialization.cpp
   1032     ${LLVM_DIR}/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp
   1033     ${LLVM_DIR}/lib/DebugInfo/CodeView/StringsAndChecksums.cpp
   1034     ${LLVM_DIR}/lib/DebugInfo/CodeView/SymbolDumper.cpp
   1035     ${LLVM_DIR}/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
   1036     ${LLVM_DIR}/lib/DebugInfo/CodeView/SymbolSerializer.cpp
   1037     ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
   1038     ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeHashing.cpp
   1039     ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeIndex.cpp
   1040     ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
   1041     ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
   1042     ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
   1043     ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeTableCollection.cpp
   1044     ${LLVM_DIR}/lib/ExecutionEngine/ExecutionEngine.cpp
   1045     ${LLVM_DIR}/lib/ExecutionEngine/ExecutionEngineBindings.cpp
   1046     ${LLVM_DIR}/lib/ExecutionEngine/GDBRegistrationListener.cpp
   1047     ${LLVM_DIR}/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
   1048     ${LLVM_DIR}/lib/ExecutionEngine/Orc/Core.cpp
   1049     ${LLVM_DIR}/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
   1050     ${LLVM_DIR}/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
   1051     ${LLVM_DIR}/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
   1052     ${LLVM_DIR}/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
   1053     ${LLVM_DIR}/lib/ExecutionEngine/Orc/LLJIT.cpp
   1054     ${LLVM_DIR}/lib/ExecutionEngine/Orc/Layer.cpp
   1055     ${LLVM_DIR}/lib/ExecutionEngine/Orc/Legacy.cpp
   1056     ${LLVM_DIR}/lib/ExecutionEngine/Orc/NullResolver.cpp
   1057     ${LLVM_DIR}/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
   1058     ${LLVM_DIR}/lib/ExecutionEngine/Orc/OrcABISupport.cpp
   1059     ${LLVM_DIR}/lib/ExecutionEngine/Orc/OrcCBindings.cpp
   1060     ${LLVM_DIR}/lib/ExecutionEngine/Orc/OrcError.cpp
   1061     ${LLVM_DIR}/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
   1062     ${LLVM_DIR}/lib/ExecutionEngine/Orc/RPCUtils.cpp
   1063     ${LLVM_DIR}/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
   1064     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
   1065     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
   1066     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
   1067     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp
   1068     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
   1069     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
   1070     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
   1071     ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp
   1072     ${LLVM_DIR}/lib/ExecutionEngine/SectionMemoryManager.cpp
   1073     ${LLVM_DIR}/lib/ExecutionEngine/TargetSelect.cpp
   1074     ${LLVM_DIR}/lib/IR/AsmWriter.cpp
   1075     ${LLVM_DIR}/lib/IR/Attributes.cpp
   1076     ${LLVM_DIR}/lib/IR/AutoUpgrade.cpp
   1077     ${LLVM_DIR}/lib/IR/BasicBlock.cpp
   1078     ${LLVM_DIR}/lib/IR/Comdat.cpp
   1079     ${LLVM_DIR}/lib/IR/ConstantFold.cpp
   1080     ${LLVM_DIR}/lib/IR/ConstantRange.cpp
   1081     ${LLVM_DIR}/lib/IR/Constants.cpp
   1082     ${LLVM_DIR}/lib/IR/Core.cpp
   1083     ${LLVM_DIR}/lib/IR/DIBuilder.cpp
   1084     ${LLVM_DIR}/lib/IR/DataLayout.cpp
   1085     ${LLVM_DIR}/lib/IR/DebugInfo.cpp
   1086     ${LLVM_DIR}/lib/IR/DebugInfoMetadata.cpp
   1087     ${LLVM_DIR}/lib/IR/DebugLoc.cpp
   1088     ${LLVM_DIR}/lib/IR/DiagnosticHandler.cpp
   1089     ${LLVM_DIR}/lib/IR/DiagnosticInfo.cpp
   1090     ${LLVM_DIR}/lib/IR/DiagnosticPrinter.cpp
   1091     ${LLVM_DIR}/lib/IR/DomTreeUpdater.cpp
   1092     ${LLVM_DIR}/lib/IR/Dominators.cpp
   1093     ${LLVM_DIR}/lib/IR/Function.cpp
   1094     ${LLVM_DIR}/lib/IR/GVMaterializer.cpp
   1095     ${LLVM_DIR}/lib/IR/Globals.cpp
   1096     ${LLVM_DIR}/lib/IR/IRBuilder.cpp
   1097     ${LLVM_DIR}/lib/IR/IRPrintingPasses.cpp
   1098     ${LLVM_DIR}/lib/IR/InlineAsm.cpp
   1099     ${LLVM_DIR}/lib/IR/Instruction.cpp
   1100     ${LLVM_DIR}/lib/IR/Instructions.cpp
   1101     ${LLVM_DIR}/lib/IR/IntrinsicInst.cpp
   1102     ${LLVM_DIR}/lib/IR/LLVMContext.cpp
   1103     ${LLVM_DIR}/lib/IR/LLVMContextImpl.cpp
   1104     ${LLVM_DIR}/lib/IR/LegacyPassManager.cpp
   1105     ${LLVM_DIR}/lib/IR/MDBuilder.cpp
   1106     ${LLVM_DIR}/lib/IR/Mangler.cpp
   1107     ${LLVM_DIR}/lib/IR/Metadata.cpp
   1108     ${LLVM_DIR}/lib/IR/Module.cpp
   1109     ${LLVM_DIR}/lib/IR/ModuleSummaryIndex.cpp
   1110     ${LLVM_DIR}/lib/IR/Operator.cpp
   1111     ${LLVM_DIR}/lib/IR/OptBisect.cpp
   1112     ${LLVM_DIR}/lib/IR/Pass.cpp
   1113     ${LLVM_DIR}/lib/IR/PassManager.cpp
   1114     ${LLVM_DIR}/lib/IR/PassRegistry.cpp
   1115     ${LLVM_DIR}/lib/IR/ProfileSummary.cpp
   1116     ${LLVM_DIR}/lib/IR/SafepointIRVerifier.cpp
   1117     ${LLVM_DIR}/lib/IR/Statepoint.cpp
   1118     ${LLVM_DIR}/lib/IR/Type.cpp
   1119     ${LLVM_DIR}/lib/IR/TypeFinder.cpp
   1120     ${LLVM_DIR}/lib/IR/Use.cpp
   1121     ${LLVM_DIR}/lib/IR/User.cpp
   1122     ${LLVM_DIR}/lib/IR/Value.cpp
   1123     ${LLVM_DIR}/lib/IR/ValueSymbolTable.cpp
   1124     ${LLVM_DIR}/lib/IR/Verifier.cpp
   1125     ${LLVM_DIR}/lib/IRReader/IRReader.cpp
   1126     ${LLVM_DIR}/lib/MC/ConstantPools.cpp
   1127     ${LLVM_DIR}/lib/MC/ELFObjectWriter.cpp
   1128     ${LLVM_DIR}/lib/MC/MCAsmBackend.cpp
   1129     ${LLVM_DIR}/lib/MC/MCAsmInfo.cpp
   1130     ${LLVM_DIR}/lib/MC/MCAsmInfoCOFF.cpp
   1131     ${LLVM_DIR}/lib/MC/MCAsmInfoDarwin.cpp
   1132     ${LLVM_DIR}/lib/MC/MCAsmInfoELF.cpp
   1133     ${LLVM_DIR}/lib/MC/MCAsmInfoWasm.cpp
   1134     ${LLVM_DIR}/lib/MC/MCAsmMacro.cpp
   1135     ${LLVM_DIR}/lib/MC/MCAsmStreamer.cpp
   1136     ${LLVM_DIR}/lib/MC/MCAssembler.cpp
   1137     ${LLVM_DIR}/lib/MC/MCCodeEmitter.cpp
   1138     ${LLVM_DIR}/lib/MC/MCCodePadder.cpp
   1139     ${LLVM_DIR}/lib/MC/MCCodeView.cpp
   1140     ${LLVM_DIR}/lib/MC/MCContext.cpp
   1141     ${LLVM_DIR}/lib/MC/MCDisassembler/Disassembler.cpp
   1142     ${LLVM_DIR}/lib/MC/MCDisassembler/MCDisassembler.cpp
   1143     ${LLVM_DIR}/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp
   1144     ${LLVM_DIR}/lib/MC/MCDisassembler/MCRelocationInfo.cpp
   1145     ${LLVM_DIR}/lib/MC/MCDisassembler/MCSymbolizer.cpp
   1146     ${LLVM_DIR}/lib/MC/MCDwarf.cpp
   1147     ${LLVM_DIR}/lib/MC/MCELFObjectTargetWriter.cpp
   1148     ${LLVM_DIR}/lib/MC/MCELFStreamer.cpp
   1149     ${LLVM_DIR}/lib/MC/MCExpr.cpp
   1150     ${LLVM_DIR}/lib/MC/MCFragment.cpp
   1151     ${LLVM_DIR}/lib/MC/MCInst.cpp
   1152     ${LLVM_DIR}/lib/MC/MCInstPrinter.cpp
   1153     ${LLVM_DIR}/lib/MC/MCInstrAnalysis.cpp
   1154     ${LLVM_DIR}/lib/MC/MCInstrDesc.cpp
   1155     ${LLVM_DIR}/lib/MC/MCLabel.cpp
   1156     ${LLVM_DIR}/lib/MC/MCLinkerOptimizationHint.cpp
   1157     ${LLVM_DIR}/lib/MC/MCMachOStreamer.cpp
   1158     ${LLVM_DIR}/lib/MC/MCMachObjectTargetWriter.cpp
   1159     ${LLVM_DIR}/lib/MC/MCNullStreamer.cpp
   1160     ${LLVM_DIR}/lib/MC/MCObjectFileInfo.cpp
   1161     ${LLVM_DIR}/lib/MC/MCObjectStreamer.cpp
   1162     ${LLVM_DIR}/lib/MC/MCObjectWriter.cpp
   1163     ${LLVM_DIR}/lib/MC/MCParser/AsmLexer.cpp
   1164     ${LLVM_DIR}/lib/MC/MCParser/AsmParser.cpp
   1165     ${LLVM_DIR}/lib/MC/MCParser/COFFAsmParser.cpp
   1166     ${LLVM_DIR}/lib/MC/MCParser/DarwinAsmParser.cpp
   1167     ${LLVM_DIR}/lib/MC/MCParser/ELFAsmParser.cpp
   1168     ${LLVM_DIR}/lib/MC/MCParser/MCAsmLexer.cpp
   1169     ${LLVM_DIR}/lib/MC/MCParser/MCAsmParser.cpp
   1170     ${LLVM_DIR}/lib/MC/MCParser/MCAsmParserExtension.cpp
   1171     ${LLVM_DIR}/lib/MC/MCParser/MCTargetAsmParser.cpp
   1172     ${LLVM_DIR}/lib/MC/MCRegisterInfo.cpp
   1173     ${LLVM_DIR}/lib/MC/MCSchedule.cpp
   1174     ${LLVM_DIR}/lib/MC/MCSection.cpp
   1175     ${LLVM_DIR}/lib/MC/MCSectionCOFF.cpp
   1176     ${LLVM_DIR}/lib/MC/MCSectionELF.cpp
   1177     ${LLVM_DIR}/lib/MC/MCSectionMachO.cpp
   1178     ${LLVM_DIR}/lib/MC/MCSectionWasm.cpp
   1179     ${LLVM_DIR}/lib/MC/MCStreamer.cpp
   1180     ${LLVM_DIR}/lib/MC/MCSubtargetInfo.cpp
   1181     ${LLVM_DIR}/lib/MC/MCSymbol.cpp
   1182     ${LLVM_DIR}/lib/MC/MCSymbolELF.cpp
   1183     ${LLVM_DIR}/lib/MC/MCTargetOptions.cpp
   1184     ${LLVM_DIR}/lib/MC/MCValue.cpp
   1185     ${LLVM_DIR}/lib/MC/MCWasmObjectTargetWriter.cpp
   1186     ${LLVM_DIR}/lib/MC/MCWasmStreamer.cpp
   1187     ${LLVM_DIR}/lib/MC/MCWin64EH.cpp
   1188     ${LLVM_DIR}/lib/MC/MCWinCOFFStreamer.cpp
   1189     ${LLVM_DIR}/lib/MC/MCWinEH.cpp
   1190     ${LLVM_DIR}/lib/MC/MachObjectWriter.cpp
   1191     ${LLVM_DIR}/lib/MC/StringTableBuilder.cpp
   1192     ${LLVM_DIR}/lib/MC/SubtargetFeature.cpp
   1193     ${LLVM_DIR}/lib/MC/WasmObjectWriter.cpp
   1194     ${LLVM_DIR}/lib/MC/WinCOFFObjectWriter.cpp
   1195     ${LLVM_DIR}/lib/Object/Archive.cpp
   1196     ${LLVM_DIR}/lib/Object/ArchiveWriter.cpp
   1197     ${LLVM_DIR}/lib/Object/Binary.cpp
   1198     ${LLVM_DIR}/lib/Object/COFFImportFile.cpp
   1199     ${LLVM_DIR}/lib/Object/COFFModuleDefinition.cpp
   1200     ${LLVM_DIR}/lib/Object/COFFObjectFile.cpp
   1201     ${LLVM_DIR}/lib/Object/Decompressor.cpp
   1202     ${LLVM_DIR}/lib/Object/ELF.cpp
   1203     ${LLVM_DIR}/lib/Object/ELFObjectFile.cpp
   1204     ${LLVM_DIR}/lib/Object/Error.cpp
   1205     ${LLVM_DIR}/lib/Object/IRObjectFile.cpp
   1206     ${LLVM_DIR}/lib/Object/IRSymtab.cpp
   1207     ${LLVM_DIR}/lib/Object/MachOObjectFile.cpp
   1208     ${LLVM_DIR}/lib/Object/MachOUniversal.cpp
   1209     ${LLVM_DIR}/lib/Object/ModuleSymbolTable.cpp
   1210     ${LLVM_DIR}/lib/Object/Object.cpp
   1211     ${LLVM_DIR}/lib/Object/ObjectFile.cpp
   1212     ${LLVM_DIR}/lib/Object/RecordStreamer.cpp
   1213     ${LLVM_DIR}/lib/Object/SymbolSize.cpp
   1214     ${LLVM_DIR}/lib/Object/SymbolicFile.cpp
   1215     ${LLVM_DIR}/lib/Object/WasmObjectFile.cpp
   1216     ${LLVM_DIR}/lib/Object/WindowsResource.cpp
   1217     ${LLVM_DIR}/lib/ProfileData/GCOV.cpp
   1218     ${LLVM_DIR}/lib/ProfileData/InstrProf.cpp
   1219     ${LLVM_DIR}/lib/ProfileData/InstrProfReader.cpp
   1220     ${LLVM_DIR}/lib/ProfileData/InstrProfWriter.cpp
   1221     ${LLVM_DIR}/lib/ProfileData/ProfileSummaryBuilder.cpp
   1222     ${LLVM_DIR}/lib/ProfileData/SampleProf.cpp
   1223     ${LLVM_DIR}/lib/ProfileData/SampleProfReader.cpp
   1224     ${LLVM_DIR}/lib/ProfileData/SampleProfWriter.cpp
   1225     ${LLVM_DIR}/lib/Support/AMDGPUMetadata.cpp
   1226     ${LLVM_DIR}/lib/Support/APFloat.cpp
   1227     ${LLVM_DIR}/lib/Support/APInt.cpp
   1228     ${LLVM_DIR}/lib/Support/APSInt.cpp
   1229     ${LLVM_DIR}/lib/Support/ARMAttributeParser.cpp
   1230     ${LLVM_DIR}/lib/Support/ARMBuildAttrs.cpp
   1231     ${LLVM_DIR}/lib/Support/ARMWinEH.cpp
   1232     ${LLVM_DIR}/lib/Support/Allocator.cpp
   1233     ${LLVM_DIR}/lib/Support/Atomic.cpp
   1234     ${LLVM_DIR}/lib/Support/BinaryStreamError.cpp
   1235     ${LLVM_DIR}/lib/Support/BinaryStreamReader.cpp
   1236     ${LLVM_DIR}/lib/Support/BinaryStreamRef.cpp
   1237     ${LLVM_DIR}/lib/Support/BinaryStreamWriter.cpp
   1238     ${LLVM_DIR}/lib/Support/BlockFrequency.cpp
   1239     ${LLVM_DIR}/lib/Support/BranchProbability.cpp
   1240     ${LLVM_DIR}/lib/Support/COM.cpp
   1241     ${LLVM_DIR}/lib/Support/CachePruning.cpp
   1242     ${LLVM_DIR}/lib/Support/Chrono.cpp
   1243     ${LLVM_DIR}/lib/Support/CodeGenCoverage.cpp
   1244     ${LLVM_DIR}/lib/Support/CommandLine.cpp
   1245     ${LLVM_DIR}/lib/Support/Compression.cpp
   1246     ${LLVM_DIR}/lib/Support/ConvertUTF.cpp
   1247     ${LLVM_DIR}/lib/Support/ConvertUTFWrapper.cpp
   1248     ${LLVM_DIR}/lib/Support/CrashRecoveryContext.cpp
   1249     ${LLVM_DIR}/lib/Support/DAGDeltaAlgorithm.cpp
   1250     ${LLVM_DIR}/lib/Support/DJB.cpp
   1251     ${LLVM_DIR}/lib/Support/DataExtractor.cpp
   1252     ${LLVM_DIR}/lib/Support/Debug.cpp
   1253     ${LLVM_DIR}/lib/Support/DebugCounter.cpp
   1254     ${LLVM_DIR}/lib/Support/DeltaAlgorithm.cpp
   1255     ${LLVM_DIR}/lib/Support/DynamicLibrary.cpp
   1256     ${LLVM_DIR}/lib/Support/Errno.cpp
   1257     ${LLVM_DIR}/lib/Support/Error.cpp
   1258     ${LLVM_DIR}/lib/Support/ErrorHandling.cpp
   1259     ${LLVM_DIR}/lib/Support/FileOutputBuffer.cpp
   1260     ${LLVM_DIR}/lib/Support/FileUtilities.cpp
   1261     ${LLVM_DIR}/lib/Support/FoldingSet.cpp
   1262     ${LLVM_DIR}/lib/Support/FormatVariadic.cpp
   1263     ${LLVM_DIR}/lib/Support/FormattedStream.cpp
   1264     ${LLVM_DIR}/lib/Support/GlobPattern.cpp
   1265     ${LLVM_DIR}/lib/Support/GraphWriter.cpp
   1266     ${LLVM_DIR}/lib/Support/Hashing.cpp
   1267     ${LLVM_DIR}/lib/Support/Host.cpp
   1268     ${LLVM_DIR}/lib/Support/InitLLVM.cpp
   1269     ${LLVM_DIR}/lib/Support/IntEqClasses.cpp
   1270     ${LLVM_DIR}/lib/Support/IntervalMap.cpp
   1271     ${LLVM_DIR}/lib/Support/JSON.cpp
   1272     ${LLVM_DIR}/lib/Support/JamCRC.cpp
   1273     ${LLVM_DIR}/lib/Support/KnownBits.cpp
   1274     ${LLVM_DIR}/lib/Support/LEB128.cpp
   1275     ${LLVM_DIR}/lib/Support/LineIterator.cpp
   1276     ${LLVM_DIR}/lib/Support/Locale.cpp
   1277     ${LLVM_DIR}/lib/Support/LockFileManager.cpp
   1278     ${LLVM_DIR}/lib/Support/LowLevelType.cpp
   1279     ${LLVM_DIR}/lib/Support/MD5.cpp
   1280     ${LLVM_DIR}/lib/Support/ManagedStatic.cpp
   1281     ${LLVM_DIR}/lib/Support/MathExtras.cpp
   1282     ${LLVM_DIR}/lib/Support/Memory.cpp
   1283     ${LLVM_DIR}/lib/Support/MemoryBuffer.cpp
   1284     ${LLVM_DIR}/lib/Support/Mutex.cpp
   1285     ${LLVM_DIR}/lib/Support/NativeFormatting.cpp
   1286     ${LLVM_DIR}/lib/Support/Options.cpp
   1287     ${LLVM_DIR}/lib/Support/Parallel.cpp
   1288     ${LLVM_DIR}/lib/Support/Path.cpp
   1289     ${LLVM_DIR}/lib/Support/PluginLoader.cpp
   1290     ${LLVM_DIR}/lib/Support/PrettyStackTrace.cpp
   1291     ${LLVM_DIR}/lib/Support/Process.cpp
   1292     ${LLVM_DIR}/lib/Support/Program.cpp
   1293     ${LLVM_DIR}/lib/Support/RWMutex.cpp
   1294     ${LLVM_DIR}/lib/Support/RandomNumberGenerator.cpp
   1295     ${LLVM_DIR}/lib/Support/Regex.cpp
   1296     ${LLVM_DIR}/lib/Support/SHA1.cpp
   1297     ${LLVM_DIR}/lib/Support/ScaledNumber.cpp
   1298     ${LLVM_DIR}/lib/Support/ScopedPrinter.cpp
   1299     ${LLVM_DIR}/lib/Support/Signals.cpp
   1300     ${LLVM_DIR}/lib/Support/SmallPtrSet.cpp
   1301     ${LLVM_DIR}/lib/Support/SmallVector.cpp
   1302     ${LLVM_DIR}/lib/Support/SourceMgr.cpp
   1303     ${LLVM_DIR}/lib/Support/SpecialCaseList.cpp
   1304     ${LLVM_DIR}/lib/Support/Statistic.cpp
   1305     ${LLVM_DIR}/lib/Support/StringExtras.cpp
   1306     ${LLVM_DIR}/lib/Support/StringMap.cpp
   1307     ${LLVM_DIR}/lib/Support/StringPool.cpp
   1308     ${LLVM_DIR}/lib/Support/StringRef.cpp
   1309     ${LLVM_DIR}/lib/Support/StringSaver.cpp
   1310     ${LLVM_DIR}/lib/Support/SystemUtils.cpp
   1311     ${LLVM_DIR}/lib/Support/TarWriter.cpp
   1312     ${LLVM_DIR}/lib/Support/TargetParser.cpp
   1313     ${LLVM_DIR}/lib/Support/TargetRegistry.cpp
   1314     ${LLVM_DIR}/lib/Support/ThreadLocal.cpp
   1315     ${LLVM_DIR}/lib/Support/ThreadPool.cpp
   1316     ${LLVM_DIR}/lib/Support/Threading.cpp
   1317     ${LLVM_DIR}/lib/Support/Timer.cpp
   1318     ${LLVM_DIR}/lib/Support/ToolOutputFile.cpp
   1319     ${LLVM_DIR}/lib/Support/TrigramIndex.cpp
   1320     ${LLVM_DIR}/lib/Support/Triple.cpp
   1321     ${LLVM_DIR}/lib/Support/Twine.cpp
   1322     ${LLVM_DIR}/lib/Support/Unicode.cpp
   1323     ${LLVM_DIR}/lib/Support/UnicodeCaseFold.cpp
   1324     ${LLVM_DIR}/lib/Support/Valgrind.cpp
   1325     ${LLVM_DIR}/lib/Support/VersionTuple.cpp
   1326     ${LLVM_DIR}/lib/Support/Watchdog.cpp
   1327     ${LLVM_DIR}/lib/Support/WithColor.cpp
   1328     ${LLVM_DIR}/lib/Support/YAMLParser.cpp
   1329     ${LLVM_DIR}/lib/Support/YAMLTraits.cpp
   1330     ${LLVM_DIR}/lib/Support/circular_raw_ostream.cpp
   1331     ${LLVM_DIR}/lib/Support/raw_os_ostream.cpp
   1332     ${LLVM_DIR}/lib/Support/raw_ostream.cpp
   1333     ${LLVM_DIR}/lib/Support/regcomp.c
   1334     ${LLVM_DIR}/lib/Support/regerror.c
   1335     ${LLVM_DIR}/lib/Support/regexec.c
   1336     ${LLVM_DIR}/lib/Support/regfree.c
   1337     ${LLVM_DIR}/lib/Support/regstrlcpy.c
   1338     ${LLVM_DIR}/lib/Support/xxhash.cpp
   1339     ${LLVM_DIR}/lib/Target/Target.cpp
   1340     ${LLVM_DIR}/lib/Target/TargetIntrinsicInfo.cpp
   1341     ${LLVM_DIR}/lib/Target/TargetLoweringObjectFile.cpp
   1342     ${LLVM_DIR}/lib/Target/TargetMachine.cpp
   1343     ${LLVM_DIR}/lib/Target/TargetMachineC.cpp
   1344     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAddSub.cpp
   1345     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
   1346     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCalls.cpp
   1347     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCasts.cpp
   1348     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCompares.cpp
   1349     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
   1350     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
   1351     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombinePHI.cpp
   1352     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSelect.cpp
   1353     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineShifts.cpp
   1354     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
   1355     ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
   1356     ${LLVM_DIR}/lib/Transforms/InstCombine/InstructionCombining.cpp
   1357     ${LLVM_DIR}/lib/Transforms/Scalar/ADCE.cpp
   1358     ${LLVM_DIR}/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
   1359     ${LLVM_DIR}/lib/Transforms/Scalar/BDCE.cpp
   1360     ${LLVM_DIR}/lib/Transforms/Scalar/CallSiteSplitting.cpp
   1361     ${LLVM_DIR}/lib/Transforms/Scalar/ConstantHoisting.cpp
   1362     ${LLVM_DIR}/lib/Transforms/Scalar/ConstantProp.cpp
   1363     ${LLVM_DIR}/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
   1364     ${LLVM_DIR}/lib/Transforms/Scalar/DCE.cpp
   1365     ${LLVM_DIR}/lib/Transforms/Scalar/DeadStoreElimination.cpp
   1366     ${LLVM_DIR}/lib/Transforms/Scalar/DivRemPairs.cpp
   1367     ${LLVM_DIR}/lib/Transforms/Scalar/EarlyCSE.cpp
   1368     ${LLVM_DIR}/lib/Transforms/Scalar/FlattenCFGPass.cpp
   1369     ${LLVM_DIR}/lib/Transforms/Scalar/Float2Int.cpp
   1370     ${LLVM_DIR}/lib/Transforms/Scalar/GVN.cpp
   1371     ${LLVM_DIR}/lib/Transforms/Scalar/GVNHoist.cpp
   1372     ${LLVM_DIR}/lib/Transforms/Scalar/GVNSink.cpp
   1373     ${LLVM_DIR}/lib/Transforms/Scalar/GuardWidening.cpp
   1374     ${LLVM_DIR}/lib/Transforms/Scalar/IVUsersPrinter.cpp
   1375     ${LLVM_DIR}/lib/Transforms/Scalar/IndVarSimplify.cpp
   1376     ${LLVM_DIR}/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
   1377     ${LLVM_DIR}/lib/Transforms/Scalar/InferAddressSpaces.cpp
   1378     ${LLVM_DIR}/lib/Transforms/Scalar/InstSimplifyPass.cpp
   1379     ${LLVM_DIR}/lib/Transforms/Scalar/JumpThreading.cpp
   1380     ${LLVM_DIR}/lib/Transforms/Scalar/LICM.cpp
   1381     ${LLVM_DIR}/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp
   1382     ${LLVM_DIR}/lib/Transforms/Scalar/LoopDataPrefetch.cpp
   1383     ${LLVM_DIR}/lib/Transforms/Scalar/LoopDeletion.cpp
   1384     ${LLVM_DIR}/lib/Transforms/Scalar/LoopDistribute.cpp
   1385     ${LLVM_DIR}/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
   1386     ${LLVM_DIR}/lib/Transforms/Scalar/LoopInstSimplify.cpp
   1387     ${LLVM_DIR}/lib/Transforms/Scalar/LoopInterchange.cpp
   1388     ${LLVM_DIR}/lib/Transforms/Scalar/LoopLoadElimination.cpp
   1389     ${LLVM_DIR}/lib/Transforms/Scalar/LoopPassManager.cpp
   1390     ${LLVM_DIR}/lib/Transforms/Scalar/LoopPredication.cpp
   1391     ${LLVM_DIR}/lib/Transforms/Scalar/LoopRerollPass.cpp
   1392     ${LLVM_DIR}/lib/Transforms/Scalar/LoopRotation.cpp
   1393     ${LLVM_DIR}/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
   1394     ${LLVM_DIR}/lib/Transforms/Scalar/LoopSink.cpp
   1395     ${LLVM_DIR}/lib/Transforms/Scalar/LoopStrengthReduce.cpp
   1396     ${LLVM_DIR}/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
   1397     ${LLVM_DIR}/lib/Transforms/Scalar/LoopUnrollPass.cpp
   1398     ${LLVM_DIR}/lib/Transforms/Scalar/LoopUnswitch.cpp
   1399     ${LLVM_DIR}/lib/Transforms/Scalar/LoopVersioningLICM.cpp
   1400     ${LLVM_DIR}/lib/Transforms/Scalar/LowerAtomic.cpp
   1401     ${LLVM_DIR}/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp
   1402     ${LLVM_DIR}/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp
   1403     ${LLVM_DIR}/lib/Transforms/Scalar/MemCpyOptimizer.cpp
   1404     ${LLVM_DIR}/lib/Transforms/Scalar/MergeICmps.cpp
   1405     ${LLVM_DIR}/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
   1406     ${LLVM_DIR}/lib/Transforms/Scalar/NaryReassociate.cpp
   1407     ${LLVM_DIR}/lib/Transforms/Scalar/NewGVN.cpp
   1408     ${LLVM_DIR}/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
   1409     ${LLVM_DIR}/lib/Transforms/Scalar/PlaceSafepoints.cpp
   1410     ${LLVM_DIR}/lib/Transforms/Scalar/Reassociate.cpp
   1411     ${LLVM_DIR}/lib/Transforms/Scalar/Reg2Mem.cpp
   1412     ${LLVM_DIR}/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
   1413     ${LLVM_DIR}/lib/Transforms/Scalar/SCCP.cpp
   1414     ${LLVM_DIR}/lib/Transforms/Scalar/SROA.cpp
   1415     ${LLVM_DIR}/lib/Transforms/Scalar/Scalar.cpp
   1416     ${LLVM_DIR}/lib/Transforms/Scalar/Scalarizer.cpp
   1417     ${LLVM_DIR}/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
   1418     ${LLVM_DIR}/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
   1419     ${LLVM_DIR}/lib/Transforms/Scalar/SimplifyCFGPass.cpp
   1420     ${LLVM_DIR}/lib/Transforms/Scalar/Sink.cpp
   1421     ${LLVM_DIR}/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp
   1422     ${LLVM_DIR}/lib/Transforms/Scalar/SpeculativeExecution.cpp
   1423     ${LLVM_DIR}/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
   1424     ${LLVM_DIR}/lib/Transforms/Scalar/StructurizeCFG.cpp
   1425     ${LLVM_DIR}/lib/Transforms/Scalar/TailRecursionElimination.cpp
   1426     ${LLVM_DIR}/lib/Transforms/Utils/ASanStackFrameLayout.cpp
   1427     ${LLVM_DIR}/lib/Transforms/Utils/AddDiscriminators.cpp
   1428     ${LLVM_DIR}/lib/Transforms/Utils/BasicBlockUtils.cpp
   1429     ${LLVM_DIR}/lib/Transforms/Utils/BreakCriticalEdges.cpp
   1430     ${LLVM_DIR}/lib/Transforms/Utils/BuildLibCalls.cpp
   1431     ${LLVM_DIR}/lib/Transforms/Utils/BypassSlowDivision.cpp
   1432     ${LLVM_DIR}/lib/Transforms/Utils/CallPromotionUtils.cpp
   1433     ${LLVM_DIR}/lib/Transforms/Utils/CloneFunction.cpp
   1434     ${LLVM_DIR}/lib/Transforms/Utils/CloneModule.cpp
   1435     ${LLVM_DIR}/lib/Transforms/Utils/CodeExtractor.cpp
   1436     ${LLVM_DIR}/lib/Transforms/Utils/CtorUtils.cpp
   1437     ${LLVM_DIR}/lib/Transforms/Utils/DemoteRegToStack.cpp
   1438     ${LLVM_DIR}/lib/Transforms/Utils/EntryExitInstrumenter.cpp
   1439     ${LLVM_DIR}/lib/Transforms/Utils/EscapeEnumerator.cpp
   1440     ${LLVM_DIR}/lib/Transforms/Utils/Evaluator.cpp
   1441     ${LLVM_DIR}/lib/Transforms/Utils/FlattenCFG.cpp
   1442     ${LLVM_DIR}/lib/Transforms/Utils/FunctionComparator.cpp
   1443     ${LLVM_DIR}/lib/Transforms/Utils/FunctionImportUtils.cpp
   1444     ${LLVM_DIR}/lib/Transforms/Utils/GlobalStatus.cpp
   1445     ${LLVM_DIR}/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp
   1446     ${LLVM_DIR}/lib/Transforms/Utils/InlineFunction.cpp
   1447     ${LLVM_DIR}/lib/Transforms/Utils/InstructionNamer.cpp
   1448     ${LLVM_DIR}/lib/Transforms/Utils/IntegerDivision.cpp
   1449     ${LLVM_DIR}/lib/Transforms/Utils/LCSSA.cpp
   1450     ${LLVM_DIR}/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
   1451     ${LLVM_DIR}/lib/Transforms/Utils/Local.cpp
   1452     ${LLVM_DIR}/lib/Transforms/Utils/LoopRotationUtils.cpp
   1453     ${LLVM_DIR}/lib/Transforms/Utils/LoopSimplify.cpp
   1454     ${LLVM_DIR}/lib/Transforms/Utils/LoopUnroll.cpp
   1455     ${LLVM_DIR}/lib/Transforms/Utils/LoopUnrollAndJam.cpp
   1456     ${LLVM_DIR}/lib/Transforms/Utils/LoopUnrollPeel.cpp
   1457     ${LLVM_DIR}/lib/Transforms/Utils/LoopUnrollRuntime.cpp
   1458     ${LLVM_DIR}/lib/Transforms/Utils/LoopUtils.cpp
   1459     ${LLVM_DIR}/lib/Transforms/Utils/LoopVersioning.cpp
   1460     ${LLVM_DIR}/lib/Transforms/Utils/LowerInvoke.cpp
   1461     ${LLVM_DIR}/lib/Transforms/Utils/LowerMemIntrinsics.cpp
   1462     ${LLVM_DIR}/lib/Transforms/Utils/LowerSwitch.cpp
   1463     ${LLVM_DIR}/lib/Transforms/Utils/Mem2Reg.cpp
   1464     ${LLVM_DIR}/lib/Transforms/Utils/MetaRenamer.cpp
   1465     ${LLVM_DIR}/lib/Transforms/Utils/ModuleUtils.cpp
   1466     ${LLVM_DIR}/lib/Transforms/Utils/NameAnonGlobals.cpp
   1467     ${LLVM_DIR}/lib/Transforms/Utils/OrderedInstructions.cpp
   1468     ${LLVM_DIR}/lib/Transforms/Utils/PredicateInfo.cpp
   1469     ${LLVM_DIR}/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
   1470     ${LLVM_DIR}/lib/Transforms/Utils/SSAUpdater.cpp
   1471     ${LLVM_DIR}/lib/Transforms/Utils/SSAUpdaterBulk.cpp
   1472     ${LLVM_DIR}/lib/Transforms/Utils/SanitizerStats.cpp
   1473     ${LLVM_DIR}/lib/Transforms/Utils/SimplifyCFG.cpp
   1474     ${LLVM_DIR}/lib/Transforms/Utils/SimplifyIndVar.cpp
   1475     ${LLVM_DIR}/lib/Transforms/Utils/SimplifyLibCalls.cpp
   1476     ${LLVM_DIR}/lib/Transforms/Utils/SplitModule.cpp
   1477     ${LLVM_DIR}/lib/Transforms/Utils/StripGCRelocates.cpp
   1478     ${LLVM_DIR}/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp
   1479     ${LLVM_DIR}/lib/Transforms/Utils/SymbolRewriter.cpp
   1480     ${LLVM_DIR}/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
   1481     ${LLVM_DIR}/lib/Transforms/Utils/Utils.cpp
   1482     ${LLVM_DIR}/lib/Transforms/Utils/VNCoercion.cpp
   1483     ${LLVM_DIR}/lib/Transforms/Utils/ValueMapper.cpp
   1484 )
   1485 
   1486 if(ARCH STREQUAL "x86" OR ARCH STREQUAL "x86_64")
   1487     list(APPEND LLVM_LIST
   1488         ${LLVM_DIR}/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
   1489         ${LLVM_DIR}/lib/Target/X86/AsmParser/X86AsmParser.cpp
   1490         ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
   1491         ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86InstComments.cpp
   1492         ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86InstPrinterCommon.cpp
   1493         ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
   1494         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
   1495         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
   1496         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
   1497         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
   1498         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
   1499         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
   1500         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
   1501         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
   1502         ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
   1503         ${LLVM_DIR}/lib/Target/X86/ShadowCallStack.cpp
   1504         ${LLVM_DIR}/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
   1505         ${LLVM_DIR}/lib/Target/X86/Utils/X86ShuffleDecode.cpp
   1506         ${LLVM_DIR}/lib/Target/X86/X86AsmPrinter.cpp
   1507         ${LLVM_DIR}/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
   1508         ${LLVM_DIR}/lib/Target/X86/X86CallFrameOptimization.cpp
   1509         ${LLVM_DIR}/lib/Target/X86/X86CallLowering.cpp
   1510         ${LLVM_DIR}/lib/Target/X86/X86CallingConv.cpp
   1511         ${LLVM_DIR}/lib/Target/X86/X86CmovConversion.cpp
   1512         ${LLVM_DIR}/lib/Target/X86/X86DomainReassignment.cpp
   1513         ${LLVM_DIR}/lib/Target/X86/X86EvexToVex.cpp
   1514         ${LLVM_DIR}/lib/Target/X86/X86ExpandPseudo.cpp
   1515         ${LLVM_DIR}/lib/Target/X86/X86FastISel.cpp
   1516         ${LLVM_DIR}/lib/Target/X86/X86FixupBWInsts.cpp
   1517         ${LLVM_DIR}/lib/Target/X86/X86FixupLEAs.cpp
   1518         ${LLVM_DIR}/lib/Target/X86/X86FixupSetCC.cpp
   1519         ${LLVM_DIR}/lib/Target/X86/X86FlagsCopyLowering.cpp
   1520         ${LLVM_DIR}/lib/Target/X86/X86FloatingPoint.cpp
   1521         ${LLVM_DIR}/lib/Target/X86/X86FrameLowering.cpp
   1522         ${LLVM_DIR}/lib/Target/X86/X86ISelDAGToDAG.cpp
   1523         ${LLVM_DIR}/lib/Target/X86/X86ISelLowering.cpp
   1524         ${LLVM_DIR}/lib/Target/X86/X86IndirectBranchTracking.cpp
   1525         ${LLVM_DIR}/lib/Target/X86/X86InstrFMA3Info.cpp
   1526         ${LLVM_DIR}/lib/Target/X86/X86InstrFoldTables.cpp
   1527         ${LLVM_DIR}/lib/Target/X86/X86InstrInfo.cpp
   1528         ${LLVM_DIR}/lib/Target/X86/X86InstructionSelector.cpp
   1529         ${LLVM_DIR}/lib/Target/X86/X86InterleavedAccess.cpp
   1530         ${LLVM_DIR}/lib/Target/X86/X86LegalizerInfo.cpp
   1531         ${LLVM_DIR}/lib/Target/X86/X86MCInstLower.cpp
   1532         ${LLVM_DIR}/lib/Target/X86/X86MachineFunctionInfo.cpp
   1533         ${LLVM_DIR}/lib/Target/X86/X86MacroFusion.cpp
   1534         ${LLVM_DIR}/lib/Target/X86/X86OptimizeLEAs.cpp
   1535         ${LLVM_DIR}/lib/Target/X86/X86PadShortFunction.cpp
   1536         ${LLVM_DIR}/lib/Target/X86/X86RegisterBankInfo.cpp
   1537         ${LLVM_DIR}/lib/Target/X86/X86RegisterInfo.cpp
   1538         ${LLVM_DIR}/lib/Target/X86/X86RetpolineThunks.cpp
   1539         ${LLVM_DIR}/lib/Target/X86/X86SelectionDAGInfo.cpp
   1540         ${LLVM_DIR}/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
   1541         ${LLVM_DIR}/lib/Target/X86/X86SpeculativeLoadHardening.cpp
   1542         ${LLVM_DIR}/lib/Target/X86/X86Subtarget.cpp
   1543         ${LLVM_DIR}/lib/Target/X86/X86TargetMachine.cpp
   1544         ${LLVM_DIR}/lib/Target/X86/X86TargetObjectFile.cpp
   1545         ${LLVM_DIR}/lib/Target/X86/X86TargetTransformInfo.cpp
   1546         ${LLVM_DIR}/lib/Target/X86/X86VZeroUpper.cpp
   1547         ${LLVM_DIR}/lib/Target/X86/X86WinAllocaExpander.cpp
   1548         ${LLVM_DIR}/lib/Target/X86/X86WinEHState.cpp
   1549     )
   1550 elseif(ARCH STREQUAL "mipsel" OR ARCH STREQUAL "mips64el")
   1551     list(APPEND LLVM_LIST
   1552         ${LLVM_DIR}/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
   1553         ${LLVM_DIR}/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
   1554         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp
   1555         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp
   1556         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
   1557         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
   1558         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
   1559         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
   1560         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
   1561         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
   1562         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
   1563         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
   1564         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp
   1565         ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
   1566         ${LLVM_DIR}/lib/Target/Mips/Mips16FrameLowering.cpp
   1567         ${LLVM_DIR}/lib/Target/Mips/Mips16HardFloat.cpp
   1568         ${LLVM_DIR}/lib/Target/Mips/Mips16HardFloatInfo.cpp
   1569         ${LLVM_DIR}/lib/Target/Mips/Mips16InstrInfo.cpp
   1570         ${LLVM_DIR}/lib/Target/Mips/Mips16ISelDAGToDAG.cpp
   1571         ${LLVM_DIR}/lib/Target/Mips/Mips16ISelLowering.cpp
   1572         ${LLVM_DIR}/lib/Target/Mips/Mips16RegisterInfo.cpp
   1573         ${LLVM_DIR}/lib/Target/Mips/MipsAnalyzeImmediate.cpp
   1574         ${LLVM_DIR}/lib/Target/Mips/MipsAsmPrinter.cpp
   1575         ${LLVM_DIR}/lib/Target/Mips/MipsCallLowering.cpp
   1576         ${LLVM_DIR}/lib/Target/Mips/MipsCCState.cpp
   1577         ${LLVM_DIR}/lib/Target/Mips/MipsConstantIslandPass.cpp
   1578         ${LLVM_DIR}/lib/Target/Mips/MipsDelaySlotFiller.cpp
   1579         ${LLVM_DIR}/lib/Target/Mips/MipsExpandPseudo.cpp
   1580         ${LLVM_DIR}/lib/Target/Mips/MipsFastISel.cpp
   1581         ${LLVM_DIR}/lib/Target/Mips/MipsInstrInfo.cpp
   1582         ${LLVM_DIR}/lib/Target/Mips/MipsInstructionSelector.cpp
   1583         ${LLVM_DIR}/lib/Target/Mips/MipsISelDAGToDAG.cpp
   1584         ${LLVM_DIR}/lib/Target/Mips/MipsISelLowering.cpp
   1585         ${LLVM_DIR}/lib/Target/Mips/MipsFrameLowering.cpp
   1586         ${LLVM_DIR}/lib/Target/Mips/MipsLegalizerInfo.cpp
   1587         ${LLVM_DIR}/lib/Target/Mips/MipsBranchExpansion.cpp
   1588         ${LLVM_DIR}/lib/Target/Mips/MipsMCInstLower.cpp
   1589         ${LLVM_DIR}/lib/Target/Mips/MipsMachineFunction.cpp
   1590         ${LLVM_DIR}/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp
   1591         ${LLVM_DIR}/lib/Target/Mips/MipsOptimizePICCall.cpp
   1592         ${LLVM_DIR}/lib/Target/Mips/MipsOs16.cpp
   1593         ${LLVM_DIR}/lib/Target/Mips/MipsRegisterBankInfo.cpp
   1594         ${LLVM_DIR}/lib/Target/Mips/MipsRegisterInfo.cpp
   1595         ${LLVM_DIR}/lib/Target/Mips/MipsSEFrameLowering.cpp
   1596         ${LLVM_DIR}/lib/Target/Mips/MipsSEInstrInfo.cpp
   1597         ${LLVM_DIR}/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
   1598         ${LLVM_DIR}/lib/Target/Mips/MipsSEISelLowering.cpp
   1599         ${LLVM_DIR}/lib/Target/Mips/MipsSERegisterInfo.cpp
   1600         ${LLVM_DIR}/lib/Target/Mips/MipsSubtarget.cpp
   1601         ${LLVM_DIR}/lib/Target/Mips/MipsTargetMachine.cpp
   1602         ${LLVM_DIR}/lib/Target/Mips/MipsTargetObjectFile.cpp
   1603         ${LLVM_DIR}/lib/Target/Mips/MicroMipsSizeReduction.cpp
   1604         ${LLVM_DIR}/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
   1605     )
   1606 elseif(ARCH STREQUAL "aarch64")
   1607     list(APPEND LLVM_LIST
   1608         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
   1609         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
   1610         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
   1611         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
   1612         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
   1613         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
   1614         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
   1615         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
   1616         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
   1617         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
   1618         ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
   1619         ${LLVM_DIR}/lib/Target/AArch64/AArch64ISelLowering.cpp
   1620         ${LLVM_DIR}/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
   1621         ${LLVM_DIR}/lib/Target/AArch64/AArch64FastISel.cpp
   1622         ${LLVM_DIR}/lib/Target/AArch64/AArch64InstrInfo.cpp
   1623         ${LLVM_DIR}/lib/Target/AArch64/AArch64PromoteConstant.cpp
   1624         ${LLVM_DIR}/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
   1625         ${LLVM_DIR}/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
   1626         ${LLVM_DIR}/lib/Target/AArch64/AArch64InstructionSelector.cpp
   1627         ${LLVM_DIR}/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
   1628         ${LLVM_DIR}/lib/Target/AArch64/AArch64A53Fix835769.cpp
   1629         ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetMachine.cpp
   1630         ${LLVM_DIR}/lib/Target/AArch64/AArch64CallLowering.cpp
   1631         ${LLVM_DIR}/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
   1632         ${LLVM_DIR}/lib/Target/AArch64/AArch64Subtarget.cpp
   1633         ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetObjectFile.cpp
   1634         ${LLVM_DIR}/lib/Target/AArch64/AArch64RegisterInfo.cpp
   1635         ${LLVM_DIR}/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
   1636         ${LLVM_DIR}/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
   1637         ${LLVM_DIR}/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp
   1638         ${LLVM_DIR}/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
   1639         ${LLVM_DIR}/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
   1640         ${LLVM_DIR}/lib/Target/AArch64/AArch64ConditionalCompares.cpp
   1641         ${LLVM_DIR}/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
   1642         ${LLVM_DIR}/lib/Target/AArch64/AArch64LegalizerInfo.cpp
   1643         ${LLVM_DIR}/lib/Target/AArch64/AArch64StorePairSuppress.cpp
   1644         ${LLVM_DIR}/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
   1645         ${LLVM_DIR}/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
   1646         ${LLVM_DIR}/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
   1647         ${LLVM_DIR}/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
   1648         ${LLVM_DIR}/lib/Target/AArch64/AArch64MCInstLower.cpp
   1649         ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
   1650         ${LLVM_DIR}/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
   1651         ${LLVM_DIR}/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
   1652         ${LLVM_DIR}/lib/Target/AArch64/AArch64CollectLOH.cpp
   1653         ${LLVM_DIR}/lib/Target/AArch64/AArch64AsmPrinter.cpp
   1654         ${LLVM_DIR}/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
   1655         ${LLVM_DIR}/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
   1656         ${LLVM_DIR}/lib/Target/AArch64/AArch64CondBrTuning.cpp
   1657         ${LLVM_DIR}/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
   1658         ${LLVM_DIR}/lib/Target/AArch64/AArch64FrameLowering.cpp
   1659         ${LLVM_DIR}/lib/Target/AArch64/AArch64MacroFusion.cpp
   1660     )
   1661 elseif(ARCH STREQUAL "arm")
   1662     list(APPEND LLVM_LIST
   1663         ${LLVM_DIR}/lib/Target/ARM/ARMConstantIslandPass.cpp
   1664         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
   1665         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
   1666         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
   1667         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
   1668         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
   1669         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp
   1670         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp
   1671         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
   1672         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
   1673         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
   1674         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
   1675         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
   1676         ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp
   1677         ${LLVM_DIR}/lib/Target/ARM/ThumbRegisterInfo.cpp
   1678         ${LLVM_DIR}/lib/Target/ARM/ARMMachineFunctionInfo.cpp
   1679         ${LLVM_DIR}/lib/Target/ARM/ARMFrameLowering.cpp
   1680         ${LLVM_DIR}/lib/Target/ARM/ARMBaseRegisterInfo.cpp
   1681         ${LLVM_DIR}/lib/Target/ARM/ARMCallLowering.cpp
   1682         ${LLVM_DIR}/lib/Target/ARM/ARMTargetMachine.cpp
   1683         ${LLVM_DIR}/lib/Target/ARM/ARMBaseInstrInfo.cpp
   1684         ${LLVM_DIR}/lib/Target/ARM/Thumb1FrameLowering.cpp
   1685         ${LLVM_DIR}/lib/Target/ARM/ARMRegisterBankInfo.cpp
   1686         ${LLVM_DIR}/lib/Target/ARM/Utils/ARMBaseInfo.cpp
   1687         ${LLVM_DIR}/lib/Target/ARM/ARMComputeBlockSize.cpp
   1688         ${LLVM_DIR}/lib/Target/ARM/ARMSelectionDAGInfo.cpp
   1689         ${LLVM_DIR}/lib/Target/ARM/ARMInstructionSelector.cpp
   1690         ${LLVM_DIR}/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
   1691         ${LLVM_DIR}/lib/Target/ARM/ARMTargetObjectFile.cpp
   1692         ${LLVM_DIR}/lib/Target/ARM/ARMISelLowering.cpp
   1693         ${LLVM_DIR}/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
   1694         ${LLVM_DIR}/lib/Target/ARM/ARMExpandPseudoInsts.cpp
   1695         ${LLVM_DIR}/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
   1696         ${LLVM_DIR}/lib/Target/ARM/ARMInstrInfo.cpp
   1697         ${LLVM_DIR}/lib/Target/ARM/MLxExpansionPass.cpp
   1698         ${LLVM_DIR}/lib/Target/ARM/Thumb2SizeReduction.cpp
   1699         ${LLVM_DIR}/lib/Target/ARM/ARMConstantPoolValue.cpp
   1700         ${LLVM_DIR}/lib/Target/ARM/Thumb2InstrInfo.cpp
   1701         ${LLVM_DIR}/lib/Target/ARM/ARMRegisterInfo.cpp
   1702         ${LLVM_DIR}/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
   1703         ${LLVM_DIR}/lib/Target/ARM/ARMSubtarget.cpp
   1704         ${LLVM_DIR}/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
   1705         ${LLVM_DIR}/lib/Target/ARM/ARMParallelDSP.cpp
   1706         ${LLVM_DIR}/lib/Target/ARM/ARMISelDAGToDAG.cpp
   1707         ${LLVM_DIR}/lib/Target/ARM/A15SDOptimizer.cpp
   1708         ${LLVM_DIR}/lib/Target/ARM/Thumb2ITBlockPass.cpp
   1709         ${LLVM_DIR}/lib/Target/ARM/ARMFastISel.cpp
   1710         ${LLVM_DIR}/lib/Target/ARM/ARMMacroFusion.cpp
   1711         ${LLVM_DIR}/lib/Target/ARM/ARMAsmPrinter.cpp
   1712         ${LLVM_DIR}/lib/Target/ARM/ARMMCInstLower.cpp
   1713         ${LLVM_DIR}/lib/Target/ARM/ARMHazardRecognizer.cpp
   1714         ${LLVM_DIR}/lib/Target/ARM/ARMCodeGenPrepare.cpp
   1715         ${LLVM_DIR}/lib/Target/ARM/ARMTargetTransformInfo.cpp
   1716         ${LLVM_DIR}/lib/Target/ARM/Thumb1InstrInfo.cpp
   1717         ${LLVM_DIR}/lib/Target/ARM/ARMLegalizerInfo.cpp
   1718         ${LLVM_DIR}/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
   1719     )
   1720  endif()
   1721 
   1722 set(LLVM_INCLUDE_DIR "")
   1723 
   1724 if(WIN32)
   1725     list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/windows/include)
   1726 elseif(LINUX)
   1727     list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/linux/include)
   1728 elseif(APPLE)
   1729     list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/darwin/include)
   1730 endif()
   1731 
   1732 list(APPEND LLVM_INCLUDE_DIR
   1733     ${LLVM_DIR}/include
   1734     ${LLVM_DIR}/lib/Target/AArch64
   1735     ${LLVM_DIR}/lib/Target/ARM
   1736     ${LLVM_DIR}/lib/Target/Mips
   1737     ${LLVM_DIR}/lib/Target/X86
   1738     ${LLVM_CONFIG_DIR}/common/include
   1739     ${LLVM_CONFIG_DIR}/common/lib/IR
   1740     ${LLVM_CONFIG_DIR}/common/lib/Target/AArch64
   1741     ${LLVM_CONFIG_DIR}/common/lib/Target/ARM
   1742     ${LLVM_CONFIG_DIR}/common/lib/Target/Mips
   1743     ${LLVM_CONFIG_DIR}/common/lib/Target/X86
   1744     ${LLVM_CONFIG_DIR}/common/lib/Transforms/InstCombine
   1745 )
   1746 
   1747 endif()  # REACTOR_LLVM_VERSION
   1748 
   1749 add_library(llvm STATIC ${LLVM_LIST})
   1750 set_target_properties(llvm PROPERTIES
   1751     POSITION_INDEPENDENT_CODE 1
   1752     INCLUDE_DIRECTORIES "${LLVM_INCLUDE_DIR}"
   1753     COMPILE_DEFINITIONS "__STDC_CONSTANT_MACROS; __STDC_LIMIT_MACROS;"
   1754     FOLDER "LLVM"
   1755 )
   1756 
   1757 # Add required libraries for LLVM
   1758 if(LINUX)
   1759     target_link_libraries(llvm dl)
   1760 endif(LINUX)
   1761 
   1762 ###########################################################
   1763 # Subzero
   1764 ###########################################################
   1765 
   1766 if(${REACTOR_BACKEND} STREQUAL "Subzero")
   1767     set(SUBZERO_LIST
   1768         ${SUBZERO_DIR}/src/IceAssembler.cpp
   1769         ${SUBZERO_DIR}/src/IceCfg.cpp
   1770         ${SUBZERO_DIR}/src/IceCfgNode.cpp
   1771         ${SUBZERO_DIR}/src/IceClFlags.cpp
   1772         ${SUBZERO_DIR}/src/IceELFObjectWriter.cpp
   1773         ${SUBZERO_DIR}/src/IceELFSection.cpp
   1774         ${SUBZERO_DIR}/src/IceFixups.cpp
   1775         ${SUBZERO_DIR}/src/IceGlobalContext.cpp
   1776         ${SUBZERO_DIR}/src/IceGlobalInits.cpp
   1777         ${SUBZERO_DIR}/src/IceInst.cpp
   1778         ${SUBZERO_DIR}/src/IceInstrumentation.cpp
   1779         ${SUBZERO_DIR}/src/IceIntrinsics.cpp
   1780         ${SUBZERO_DIR}/src/IceLiveness.cpp
   1781         ${SUBZERO_DIR}/src/IceLoopAnalyzer.cpp
   1782         ${SUBZERO_DIR}/src/IceMangling.cpp
   1783         ${SUBZERO_DIR}/src/IceMemory.cpp
   1784         ${SUBZERO_DIR}/src/IceOperand.cpp
   1785         ${SUBZERO_DIR}/src/IceRangeSpec.cpp
   1786         ${SUBZERO_DIR}/src/IceRegAlloc.cpp
   1787         ${SUBZERO_DIR}/src/IceRevision.cpp
   1788         ${SUBZERO_DIR}/src/IceRNG.cpp
   1789         ${SUBZERO_DIR}/src/IceSwitchLowering.cpp
   1790         ${SUBZERO_DIR}/src/IceTargetLowering.cpp
   1791         ${SUBZERO_DIR}/src/IceThreading.cpp
   1792         ${SUBZERO_DIR}/src/IceTimerTree.cpp
   1793         ${SUBZERO_DIR}/src/IceTypes.cpp
   1794         ${SUBZERO_DIR}/src/IceVariableSplitting.cpp
   1795     )
   1796 
   1797     # FIXME: Shouldn't depend on external source files directly.
   1798     list(APPEND SUBZERO_LIST
   1799         ${SOURCE_DIR}/Common/Memory.cpp
   1800     )
   1801 
   1802     if(ARCH STREQUAL "x86_64")
   1803         list(APPEND SUBZERO_LIST
   1804             ${SUBZERO_DIR}/src/IceTargetLoweringX86.cpp
   1805             ${SUBZERO_DIR}/src/IceInstX8664.cpp
   1806             ${SUBZERO_DIR}/src/IceTargetLoweringX8664.cpp
   1807         )
   1808         set(SUBZERO_TARGET X8664)
   1809     elseif(ARCH STREQUAL "x86")
   1810         list(APPEND SUBZERO_LIST
   1811             ${SUBZERO_DIR}/src/IceTargetLoweringX86.cpp
   1812             ${SUBZERO_DIR}/src/IceInstX8632.cpp
   1813             ${SUBZERO_DIR}/src/IceTargetLoweringX8632.cpp
   1814         )
   1815         set(SUBZERO_TARGET X8632)
   1816     elseif(ARCH STREQUAL "arm")
   1817         list(APPEND SUBZERO_LIST
   1818             ${SUBZERO_DIR}/src/IceAssemblerARM32.cpp
   1819             ${SUBZERO_DIR}/src/IceInstARM32.cpp
   1820             ${SUBZERO_DIR}/src/IceTargetLoweringARM32.cpp
   1821         )
   1822         set(SUBZERO_TARGET ARM32)
   1823     elseif(ARCH STREQUAL "mipsel")
   1824         list(APPEND SUBZERO_LIST
   1825             ${SUBZERO_DIR}/src/IceAssemblerMIPS32.cpp
   1826             ${SUBZERO_DIR}/src/IceInstMIPS32.cpp
   1827             ${SUBZERO_DIR}/src/IceTargetLoweringMIPS32.cpp
   1828         )
   1829         set(SUBZERO_TARGET MIPS32)
   1830     else()
   1831         message(FATAL_ERROR "Architecture '${ARCH}' not supported by Subzero")
   1832     endif()
   1833 
   1834     file(GLOB_RECURSE SUBZERO_DEPENDENCIES_LIST
   1835         ${SUBZERO_LLVM_DIR}/*.cpp
   1836         ${SUBZERO_LLVM_DIR}/*.c
   1837         ${SUBZERO_LLVM_DIR}/*.h
   1838     )
   1839 
   1840     set(SUBZERO_REACTOR_LIST
   1841         ${SOURCE_DIR}/Reactor/SubzeroReactor.cpp
   1842         ${SOURCE_DIR}/Reactor/Routine.cpp
   1843         ${SOURCE_DIR}/Reactor/Optimizer.cpp
   1844         ${SOURCE_DIR}/Reactor/Nucleus.hpp
   1845         ${SOURCE_DIR}/Reactor/Routine.hpp
   1846         ${SOURCE_DIR}/Reactor/Debug.cpp
   1847         ${SOURCE_DIR}/Reactor/Debug.hpp
   1848         ${SOURCE_DIR}/Reactor/ExecutableMemory.cpp
   1849         ${SOURCE_DIR}/Reactor/ExecutableMemory.hpp
   1850     )
   1851 
   1852     set(SUBZERO_INCLUDE_DIR
   1853         ${SUBZERO_DIR}/
   1854         ${SUBZERO_LLVM_DIR}/include/
   1855         ${SUBZERO_DIR}/pnacl-llvm/include/
   1856     )
   1857 
   1858     if(WIN32)
   1859         list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/Windows/include/)
   1860     elseif(LINUX)
   1861         list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/Linux/include/)
   1862     elseif(APPLE)
   1863         list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/MacOS/include/)
   1864     endif()
   1865 
   1866     add_library(ReactorSubzero STATIC
   1867         ${SUBZERO_LIST}
   1868         ${SUBZERO_DEPENDENCIES_LIST}
   1869         ${SUBZERO_REACTOR_LIST}
   1870     )
   1871 
   1872     set_target_properties(ReactorSubzero PROPERTIES
   1873         POSITION_INDEPENDENT_CODE 1
   1874         INCLUDE_DIRECTORIES "${SUBZERO_INCLUDE_DIR}"
   1875         COMPILE_DEFINITIONS "SZTARGET=${SUBZERO_TARGET}; ALLOW_DUMP=0; ALLOW_TIMERS=0; ALLOW_LLVM_CL=0; ALLOW_LLVM_IR=0; ALLOW_LLVM_IR_AS_INPUT=0; ALLOW_MINIMAL_BUILD=0; ALLOW_WASM=0; ICE_THREAD_LOCAL_HACK=0;"
   1876         FOLDER "Subzero"
   1877     )
   1878 
   1879     if(WIN32)
   1880         target_compile_definitions(ReactorSubzero PRIVATE SUBZERO_USE_MICROSOFT_ABI)
   1881     endif()
   1882 endif()
   1883 
   1884 ###########################################################
   1885 # Include Directories
   1886 ###########################################################
   1887 
   1888 set(COMMON_INCLUDE_DIR
   1889     ${SOURCE_DIR}
   1890     ${CMAKE_CURRENT_SOURCE_DIR}/include
   1891     ${LLVM_INCLUDE_DIR}
   1892 )
   1893 set(OPENGL_INCLUDE_DIR
   1894     ${OPENGL_DIR}
   1895     ${COMMON_INCLUDE_DIR}
   1896 )
   1897 
   1898 set(VULKAN_INCLUDE_DIR
   1899     ${VULKAN_DIR}
   1900     ${COMMON_INCLUDE_DIR}
   1901 )
   1902 
   1903 ###########################################################
   1904 # File Lists
   1905 ###########################################################
   1906 
   1907 file(GLOB_RECURSE SWIFTSHADER_LIST
   1908     ${SOURCE_DIR}/Common/*.cpp
   1909     ${SOURCE_DIR}/Common/*.h
   1910     ${SOURCE_DIR}/Common/*.hpp
   1911     ${SOURCE_DIR}/Renderer/*.cpp
   1912     ${SOURCE_DIR}/Renderer/*.h
   1913     ${SOURCE_DIR}/Renderer/*.hpp
   1914     ${SOURCE_DIR}/Shader/*.cpp
   1915     ${SOURCE_DIR}/Shader/*.h
   1916     ${SOURCE_DIR}/Shader/*.hpp
   1917 )
   1918 list(APPEND SWIFTSHADER_LIST
   1919     ${SOURCE_DIR}/Main/Config.cpp
   1920     ${SOURCE_DIR}/Main/Config.hpp
   1921     ${SOURCE_DIR}/Main/FrameBuffer.cpp
   1922     ${SOURCE_DIR}/Main/FrameBuffer.hpp
   1923     ${SOURCE_DIR}/Main/SwiftConfig.cpp
   1924     ${SOURCE_DIR}/Main/SwiftConfig.hpp
   1925 )
   1926 list(REMOVE_ITEM SWIFTSHADER_LIST
   1927     ${SOURCE_DIR}/Common/DebugAndroid.cpp
   1928     ${SOURCE_DIR}/Common/DebugAndroid.hpp
   1929     ${SOURCE_DIR}/Common/GrallocAndroid.cpp
   1930     ${SOURCE_DIR}/Common/GrallocAndroid.hpp
   1931 )
   1932 
   1933 set(REACTOR_LLVM_LIST
   1934     ${SOURCE_DIR}/Reactor/LLVMReactor.cpp
   1935     ${SOURCE_DIR}/Reactor/Nucleus.hpp
   1936     ${SOURCE_DIR}/Reactor/Routine.cpp
   1937     ${SOURCE_DIR}/Reactor/Routine.hpp
   1938     ${SOURCE_DIR}/Reactor/LLVMRoutine.cpp
   1939     ${SOURCE_DIR}/Reactor/LLVMRoutine.hpp
   1940     ${SOURCE_DIR}/Reactor/LLVMRoutineManager.cpp
   1941     ${SOURCE_DIR}/Reactor/LLVMRoutineManager.hpp
   1942     ${SOURCE_DIR}/Reactor/CPUID.cpp
   1943     ${SOURCE_DIR}/Reactor/CPUID.hpp
   1944     ${SOURCE_DIR}/Reactor/Debug.cpp
   1945     ${SOURCE_DIR}/Reactor/Debug.hpp
   1946     ${SOURCE_DIR}/Reactor/ExecutableMemory.cpp
   1947     ${SOURCE_DIR}/Reactor/ExecutableMemory.hpp
   1948 )
   1949 
   1950 file(GLOB_RECURSE EGL_LIST
   1951     ${OPENGL_DIR}/libEGL/*.cpp
   1952     ${OPENGL_DIR}/libEGL/*.h
   1953     ${OPENGL_DIR}/libEGL/*.hpp
   1954     ${OPENGL_DIR}/common/Object.cpp
   1955     ${OPENGL_DIR}/common/Object.hpp
   1956     ${OPENGL_DIR}/common/debug.cpp
   1957     ${OPENGL_DIR}/common/debug.h
   1958     ${SOURCE_DIR}/Common/SharedLibrary.cpp
   1959     ${SOURCE_DIR}/Common/SharedLibrary.hpp
   1960     ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
   1961 )
   1962 
   1963 file(GLOB_RECURSE GLES2_LIST
   1964     ${OPENGL_DIR}/libGLESv2/*.cpp
   1965     ${OPENGL_DIR}/libGLESv2/*.h
   1966     ${OPENGL_DIR}/libGLESv2/*.hpp
   1967     ${OPENGL_DIR}/common/*.cpp
   1968     ${OPENGL_DIR}/common/*.h
   1969     ${OPENGL_DIR}/common/*.hpp
   1970     ${SOURCE_DIR}/Common/SharedLibrary.cpp
   1971     ${SOURCE_DIR}/Common/SharedLibrary.hpp
   1972     ${CMAKE_CURRENT_SOURCE_DIR}/include/KHR/*.h
   1973     ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES2/*.h
   1974     ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES3/*.h
   1975 )
   1976 
   1977 file(GLOB_RECURSE GLES_CM_LIST
   1978     ${OPENGL_DIR}/libGLES_CM/*.cpp
   1979     ${OPENGL_DIR}/libGLES_CM/*.h
   1980     ${OPENGL_DIR}/libGLES_CM/*.hpp
   1981     ${OPENGL_DIR}/common/*.cpp
   1982     ${OPENGL_DIR}/common/*.h
   1983     ${OPENGL_DIR}/common/*.hpp
   1984     ${SOURCE_DIR}/Common/SharedLibrary.cpp
   1985     ${SOURCE_DIR}/Common/SharedLibrary.hpp
   1986     ${CMAKE_CURRENT_SOURCE_DIR}/include/KHR/*.h
   1987     ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES/*.h
   1988 )
   1989 
   1990 file(GLOB_RECURSE OPENGL_COMPILER_LIST
   1991     ${OPENGL_COMPILER_DIR}/*.cpp
   1992     ${OPENGL_COMPILER_DIR}/*.h
   1993     ${OPENGL_COMPILER_DIR}/*.hpp
   1994 )
   1995 file(GLOB_RECURSE OPENGL_COMPILER_OS_SPECIFIC_LIST
   1996     ${OPENGL_COMPILER_DIR}/ossource*.cpp
   1997     ${OPENGL_COMPILER_DIR}/ossource*.h
   1998     ${OPENGL_COMPILER_DIR}/ossource*.hpp
   1999 )
   2000 list(REMOVE_ITEM OPENGL_COMPILER_LIST ${OPENGL_COMPILER_OS_SPECIFIC_LIST})
   2001 
   2002 file(GLOB_RECURSE VULKAN_LIST
   2003     ${VULKAN_DIR}/*.cpp
   2004     ${VULKAN_DIR}/*.h
   2005     ${VULKAN_DIR}/*.hpp
   2006     ${SOURCE_DIR}/System/CPUID.cpp
   2007     ${SOURCE_DIR}/System/CPUID.hpp
   2008     ${SOURCE_DIR}/System/Configurator.cpp
   2009     ${SOURCE_DIR}/System/Configurator.hpp
   2010     ${SOURCE_DIR}/System/Debug.cpp
   2011     ${SOURCE_DIR}/System/Debug.hpp
   2012     ${SOURCE_DIR}/System/Half.cpp
   2013     ${SOURCE_DIR}/System/Half.hpp
   2014     ${SOURCE_DIR}/System/Math.cpp
   2015     ${SOURCE_DIR}/System/Math.hpp
   2016     ${SOURCE_DIR}/System/Memory.cpp
   2017     ${SOURCE_DIR}/System/Memory.hpp
   2018     ${SOURCE_DIR}/System/Resource.cpp
   2019     ${SOURCE_DIR}/System/Resource.hpp
   2020     ${SOURCE_DIR}/System/Socket.cpp
   2021     ${SOURCE_DIR}/System/Socket.hpp
   2022     ${SOURCE_DIR}/System/Thread.cpp
   2023     ${SOURCE_DIR}/System/Thread.hpp
   2024     ${SOURCE_DIR}/System/Timer.cpp
   2025     ${SOURCE_DIR}/System/Timer.hpp
   2026     ${SOURCE_DIR}/Device/*.cpp
   2027     ${SOURCE_DIR}/Device/*.hpp
   2028     ${SOURCE_DIR}/Pipeline/*.cpp
   2029     ${SOURCE_DIR}/Pipeline/*.hpp
   2030     ${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan/*.h}
   2031 )
   2032 
   2033 ###########################################################
   2034 # Append OS specific files to lists
   2035 ###########################################################
   2036 
   2037 if(WIN32)
   2038     list(APPEND SWIFTSHADER_LIST
   2039         ${SOURCE_DIR}/Main/FrameBufferDD.cpp
   2040         ${SOURCE_DIR}/Main/FrameBufferDD.hpp
   2041         ${SOURCE_DIR}/Main/FrameBufferGDI.cpp
   2042         ${SOURCE_DIR}/Main/FrameBufferGDI.hpp
   2043         ${SOURCE_DIR}/Main/FrameBufferWin.cpp
   2044         ${SOURCE_DIR}/Main/FrameBufferWin.hpp
   2045     )
   2046     list(APPEND OPENGL_COMPILER_LIST ${OPENGL_COMPILER_DIR}/ossource_win.cpp)
   2047     list(APPEND EGL_LIST ${OPENGL_DIR}/libEGL/libEGL.rc)
   2048     list(APPEND GLES2_LIST ${OPENGL_DIR}/libGLESv2/libGLESv2.rc)
   2049     list(APPEND GLES_CM_LIST ${OPENGL_DIR}/libGLES_CM/libGLES_CM.rc)
   2050 elseif(LINUX)
   2051     list(APPEND SWIFTSHADER_LIST
   2052         ${SOURCE_DIR}/Main/FrameBufferX11.cpp
   2053         ${SOURCE_DIR}/Main/FrameBufferX11.hpp
   2054         ${SOURCE_DIR}/Common/SharedLibrary.hpp
   2055         ${SOURCE_DIR}/Main/libX11.cpp
   2056         ${SOURCE_DIR}/Main/libX11.hpp
   2057     )
   2058     list(APPEND EGL_LIST
   2059         ${SOURCE_DIR}/Common/SharedLibrary.hpp
   2060         ${SOURCE_DIR}/Main/libX11.cpp
   2061         ${SOURCE_DIR}/Main/libX11.hpp
   2062     )
   2063     list(APPEND OPENGL_COMPILER_LIST
   2064         ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
   2065     )
   2066 elseif(APPLE)
   2067     list(APPEND SWIFTSHADER_LIST
   2068         ${SOURCE_DIR}/Main/FrameBufferOSX.mm
   2069         ${SOURCE_DIR}/Main/FrameBufferOSX.hpp
   2070     )
   2071     list(APPEND EGL_LIST
   2072         ${OPENGL_DIR}/libEGL/OSXUtils.mm
   2073         ${OPENGL_DIR}/libEGL/OSXUtils.hpp
   2074     )
   2075     list(APPEND OPENGL_COMPILER_LIST
   2076         ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
   2077     )
   2078 endif()
   2079 
   2080 if(WIN32)
   2081     set(OS_LIBS odbc32 odbccp32 WS2_32 dxguid)
   2082 elseif(LINUX)
   2083     set(OS_LIBS dl pthread)
   2084 elseif(APPLE)
   2085     find_library(COCOA_FRAMEWORK Cocoa)
   2086     find_library(QUARTZ_FRAMEWORK Quartz)
   2087     find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation)
   2088     find_library(IOSURFACE_FRAMEWORK IOSurface)
   2089     set(OS_LIBS "${COCOA_FRAMEWORK}" "${QUARTZ_FRAMEWORK}" "${CORE_FOUNDATION_FRAMEWORK}" "${IOSURFACE_FRAMEWORK}")
   2090 endif()
   2091 
   2092 ###########################################################
   2093 # SwiftShader Targets
   2094 ###########################################################
   2095 
   2096 add_library(SwiftShader STATIC ${SWIFTSHADER_LIST})
   2097 set_target_properties(SwiftShader PROPERTIES
   2098     INCLUDE_DIRECTORIES "${COMMON_INCLUDE_DIR}"
   2099     POSITION_INDEPENDENT_CODE 1
   2100     FOLDER "Core"
   2101     COMPILE_DEFINITIONS "NO_SANITIZE_FUNCTION=;"
   2102 )
   2103 target_link_libraries(SwiftShader ${OS_LIBS})
   2104 
   2105 add_library(ReactorLLVM STATIC ${REACTOR_LLVM_LIST})
   2106 set_target_properties(ReactorLLVM PROPERTIES
   2107     INCLUDE_DIRECTORIES "${COMMON_INCLUDE_DIR}"
   2108     POSITION_INDEPENDENT_CODE 1
   2109     FOLDER "Core"
   2110 )
   2111 target_link_libraries(ReactorLLVM llvm ${OS_LIBS})
   2112 
   2113 if(${REACTOR_BACKEND} STREQUAL "LLVM")
   2114     set(Reactor ReactorLLVM)
   2115 elseif(${REACTOR_BACKEND} STREQUAL "Subzero")
   2116     set(Reactor ReactorSubzero)
   2117 else()
   2118     message(FATAL_ERROR "REACTOR_BACKEND must be 'LLVM' or 'Subzero'")
   2119 endif()
   2120 
   2121 add_library(GLCompiler STATIC ${OPENGL_COMPILER_LIST})
   2122 set_target_properties(GLCompiler PROPERTIES
   2123     INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
   2124     POSITION_INDEPENDENT_CODE 1
   2125     FOLDER "OpenGL"
   2126 )
   2127 target_link_libraries(GLCompiler ${OS_LIBS})
   2128 
   2129 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
   2130     set(LIB_PREFIX "lib64")
   2131 else()
   2132     set(LIB_PREFIX "lib")
   2133 endif()
   2134 
   2135 if(BUILD_EGL)
   2136     add_library(libEGL SHARED ${EGL_LIST})
   2137     set_target_properties(libEGL PROPERTIES
   2138         INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
   2139         FOLDER "OpenGL"
   2140         COMPILE_DEFINITIONS "EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;"
   2141         PREFIX ""
   2142     )
   2143     set_shared_library_export_map(libEGL ${SOURCE_DIR}/OpenGL/libEGL)
   2144     target_link_libraries(libEGL ${OS_LIBS})
   2145     add_custom_command(
   2146         TARGET libEGL
   2147         POST_BUILD
   2148         COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libEGL>/translator
   2149         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> $<TARGET_FILE_DIR:libEGL>/translator/${LIB_PREFIX}EGL_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
   2150         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
   2151         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
   2152     )
   2153 endif()
   2154 
   2155 if(BUILD_GLESv2)
   2156     add_library(libGLESv2 SHARED ${GLES2_LIST})
   2157     set_target_properties(libGLESv2 PROPERTIES
   2158         INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
   2159         FOLDER "OpenGL"
   2160         COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;"
   2161         PREFIX ""
   2162     )
   2163     set_shared_library_export_map(libGLESv2 ${SOURCE_DIR}/OpenGL/libGLESv2)
   2164     target_link_libraries(libGLESv2 SwiftShader ${Reactor} GLCompiler ${OS_LIBS})
   2165     add_custom_command(
   2166         TARGET libGLESv2
   2167         POST_BUILD
   2168         COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLESv2>/translator
   2169         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> $<TARGET_FILE_DIR:libGLESv2>/translator/${LIB_PREFIX}GLES_V2_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
   2170         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
   2171         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
   2172     )
   2173 endif()
   2174 
   2175 if(BUILD_GLES_CM)
   2176     add_library(libGLES_CM SHARED ${GLES_CM_LIST})
   2177     set_target_properties(libGLES_CM PROPERTIES
   2178         INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
   2179         FOLDER "OpenGL"
   2180         COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;"
   2181         PREFIX ""
   2182     )
   2183     set_shared_library_export_map(libGLES_CM ${SOURCE_DIR}/OpenGL/libGLES_CM)
   2184     target_link_libraries(libGLES_CM SwiftShader ${Reactor} GLCompiler ${OS_LIBS})
   2185     add_custom_command(
   2186         TARGET libGLES_CM
   2187         POST_BUILD
   2188         COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLES_CM>/translator
   2189         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLES_CM> $<TARGET_FILE_DIR:libGLES_CM>/translator/${LIB_PREFIX}GLES_CM_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
   2190     )
   2191 endif()
   2192 
   2193 if(BUILD_VULKAN)
   2194     # This variable is also used by SPIRV-Tools to locate SPIRV-Headers
   2195     set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/SPIRV-Headers")
   2196     list(APPEND VULKAN_INCLUDE_DIR "${SPIRV-Headers_SOURCE_DIR}/include")
   2197 
   2198     add_subdirectory(third_party/SPIRV-Tools)
   2199 
   2200     add_library(libvk_swiftshader SHARED ${VULKAN_LIST})
   2201     set_target_properties(libvk_swiftshader PROPERTIES
   2202         INCLUDE_DIRECTORIES "${VULKAN_INCLUDE_DIR}"
   2203         FOLDER "Vulkan"
   2204         COMPILE_DEFINITIONS "NO_SANITIZE_FUNCTION=;"
   2205         PREFIX ""
   2206     )
   2207     set_shared_library_export_map(libvk_swiftshader ${SOURCE_DIR}/Vulkan)
   2208     target_link_libraries(libvk_swiftshader ${Reactor} ${OS_LIBS} SPIRV-Tools SPIRV-Tools-opt)
   2209     add_custom_command(
   2210         TARGET libvk_swiftshader
   2211         POST_BUILD
   2212         COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libvk_swiftshader>/translator
   2213         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libvk_swiftshader> $<TARGET_FILE_DIR:libvk_swiftshader>/translator/${LIB_PREFIX}Vulkan_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
   2214         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
   2215         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libvk_swiftshader> ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
   2216     )
   2217 endif()
   2218 
   2219 ###########################################################
   2220 # Sample programs
   2221 ###########################################################
   2222 
   2223 if(BUILD_SAMPLES)
   2224     if(WIN32)
   2225         add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_Windows.cpp)
   2226         set_target_properties(OGLES2HelloAPI PROPERTIES
   2227             INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
   2228             COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
   2229             FOLDER "Samples"
   2230         )
   2231         target_link_libraries(OGLES2HelloAPI libEGL libGLESv2)
   2232         set_property(TARGET OGLES2HelloAPI APPEND_STRING PROPERTY LINK_FLAGS "/SUBSYSTEM:WINDOWS")
   2233         set(CMAKE_DEFAULT_STARTUP_PROJECT OGLES2HelloAPI)
   2234     elseif(LINUX)
   2235         add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_LinuxX11.cpp)
   2236         set_target_properties(OGLES2HelloAPI PROPERTIES
   2237             INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
   2238             COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
   2239         )
   2240         target_link_libraries(OGLES2HelloAPI dl X11 libEGL libGLESv2)   # Explicitly link our "lib*" targets, not the platform provided "EGL" and "GLESv2"
   2241     elseif(APPLE)
   2242         add_executable(OGLES2HelloAPI MACOSX_BUNDLE
   2243             ${HELLO2_DIR}/OGLES2HelloAPI_OSX.mm
   2244             ${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib
   2245         )
   2246         set_target_properties(OGLES2HelloAPI PROPERTIES
   2247             INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
   2248             COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
   2249             MACOSX_BUNDLE_INFO_PLIST "${HELLO2_DIR}/Build/OSX/Info.plist"
   2250         )
   2251         target_link_libraries(OGLES2HelloAPI libEGL libGLESv2 ${OS_LIBS})
   2252         set_source_files_properties(${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib PROPERTIES
   2253             MACOSX_PACKAGE_LOCATION "Resources"
   2254         )
   2255     endif()
   2256 endif()
   2257 
   2258 if(BUILD_TESTS)
   2259     set(REACTOR_UNIT_TESTS_LIST
   2260         ${SOURCE_DIR}/Reactor/ReactorUnitTests.cpp
   2261         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/src/gtest-all.cc
   2262     )
   2263 
   2264     set(REACTOR_UNIT_TESTS_INCLUDE_DIR
   2265         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/include
   2266         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/
   2267     )
   2268 
   2269     add_executable(ReactorUnitTests ${REACTOR_UNIT_TESTS_LIST})
   2270     set_target_properties(ReactorUnitTests PROPERTIES
   2271         INCLUDE_DIRECTORIES "${REACTOR_UNIT_TESTS_INCLUDE_DIR}"
   2272         FOLDER "Tests"
   2273     )
   2274 
   2275     if(NOT WIN32 AND ${REACTOR_BACKEND} STREQUAL "Subzero")
   2276         target_link_libraries(ReactorUnitTests ${Reactor} pthread dl)
   2277     else()
   2278         target_link_libraries(ReactorUnitTests ${Reactor})
   2279     endif()
   2280 endif()
   2281 
   2282 if(BUILD_TESTS)
   2283     set(UNITTESTS_LIST
   2284         ${CMAKE_CURRENT_SOURCE_DIR}/tests/GLESUnitTests/main.cpp
   2285         ${CMAKE_CURRENT_SOURCE_DIR}/tests/GLESUnitTests/unittests.cpp
   2286         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/src/gtest-all.cc
   2287     )
   2288 
   2289     set(UNITTESTS_INCLUDE_DIR
   2290         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/include/
   2291         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googlemock/include/
   2292         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/
   2293         ${CMAKE_CURRENT_SOURCE_DIR}/include/
   2294     )
   2295 
   2296     add_executable(unittests ${UNITTESTS_LIST})
   2297     set_target_properties(unittests PROPERTIES
   2298         INCLUDE_DIRECTORIES "${UNITTESTS_INCLUDE_DIR}"
   2299         FOLDER "Tests"
   2300         COMPILE_DEFINITIONS "STANDALONE"
   2301     )
   2302 
   2303     target_link_libraries(unittests libEGL libGLESv2 ${OS_LIBS})
   2304 endif()
   2305