文本文件  |  149行  |  3.32 KB

set(system_libs)
if(CMAKE_HOST_UNIX AND LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD)
  set(system_libs ${system_libs} pthread)
endif()

add_llvm_library(LLVMCodeGen
  AggressiveAntiDepBreaker.cpp
  AllocationOrder.cpp
  Analysis.cpp
  AtomicExpandPass.cpp
  BasicTargetTransformInfo.cpp
  BranchFolding.cpp
  CalcSpillWeights.cpp
  CallingConvLower.cpp
  CodeGen.cpp
  CodeGenPrepare.cpp
  CoreCLRGC.cpp
  CriticalAntiDepBreaker.cpp
  DFAPacketizer.cpp
  DeadMachineInstructionElim.cpp
  DwarfEHPrepare.cpp
  EarlyIfConversion.cpp
  EdgeBundles.cpp
  ErlangGC.cpp
  ExecutionDepsFix.cpp
  ExpandISelPseudos.cpp
  ExpandPostRAPseudos.cpp
  LiveDebugValues.cpp
  FaultMaps.cpp
  FuncletLayout.cpp
  GCMetadata.cpp
  GCMetadataPrinter.cpp
  GCRootLowering.cpp
  GCStrategy.cpp
  GlobalMerge.cpp
  IfConversion.cpp
  ImplicitNullChecks.cpp
  InlineSpiller.cpp
  InterferenceCache.cpp
  InterleavedAccessPass.cpp
  IntrinsicLowering.cpp
  LLVMTargetMachine.cpp
  LatencyPriorityQueue.cpp
  LexicalScopes.cpp
  LiveDebugVariables.cpp
  LiveInterval.cpp
  LiveIntervalAnalysis.cpp
  LiveIntervalUnion.cpp
  LiveRangeCalc.cpp
  LiveRangeEdit.cpp
  LiveRegMatrix.cpp
  LivePhysRegs.cpp
  LiveStackAnalysis.cpp
  LiveVariables.cpp
  LocalStackSlotAllocation.cpp
  LowerEmuTLS.cpp
  MachineBasicBlock.cpp
  MachineBlockFrequencyInfo.cpp
  MachineBlockPlacement.cpp
  MachineBranchProbabilityInfo.cpp
  MachineCSE.cpp
  MachineCombiner.cpp
  MachineCopyPropagation.cpp
  MachineDominators.cpp
  MachineDominanceFrontier.cpp
  MachineFunction.cpp
  MachineFunctionAnalysis.cpp
  MachineFunctionPass.cpp
  MachineFunctionPrinterPass.cpp
  MachineInstr.cpp
  MachineInstrBundle.cpp
  MachineLICM.cpp
  MachineLoopInfo.cpp
  MachineModuleInfo.cpp
  MachineModuleInfoImpls.cpp
  MachinePassRegistry.cpp
  MachinePostDominators.cpp
  MachineRegisterInfo.cpp
  MachineRegionInfo.cpp
  MachineSSAUpdater.cpp
  MachineScheduler.cpp
  MachineSink.cpp
  MachineTraceMetrics.cpp
  MachineVerifier.cpp
  MIRPrinter.cpp
  MIRPrintingPass.cpp
  OcamlGC.cpp
  OptimizePHIs.cpp
  PHIElimination.cpp
  PHIEliminationUtils.cpp
  ParallelCG.cpp
  Passes.cpp
  PeepholeOptimizer.cpp
  PostRASchedulerList.cpp
  ProcessImplicitDefs.cpp
  PrologEpilogInserter.cpp
  PseudoSourceValue.cpp
  RegAllocBase.cpp
  RegAllocBasic.cpp
  RegAllocFast.cpp
  RegAllocGreedy.cpp
  RegAllocPBQP.cpp
  RegisterClassInfo.cpp
  RegisterCoalescer.cpp
  RegisterPressure.cpp
  RegisterScavenging.cpp
  ScheduleDAG.cpp
  ScheduleDAGInstrs.cpp
  ScheduleDAGPrinter.cpp
  ScoreboardHazardRecognizer.cpp
  ShrinkWrap.cpp
  ShadowStackGC.cpp
  ShadowStackGCLowering.cpp
  SjLjEHPrepare.cpp
  SlotIndexes.cpp
  SpillPlacement.cpp
  SplitKit.cpp
  StackColoring.cpp
  StackProtector.cpp
  StackSlotColoring.cpp
  StackMapLivenessAnalysis.cpp
  StackMaps.cpp
  StatepointExampleGC.cpp
  TailDuplication.cpp
  TargetFrameLoweringImpl.cpp
  TargetInstrInfo.cpp
  TargetLoweringBase.cpp
  TargetLoweringObjectFileImpl.cpp
  TargetOptionsImpl.cpp
  TargetRegisterInfo.cpp
  TargetSchedule.cpp
  TwoAddressInstructionPass.cpp
  UnreachableBlockElim.cpp
  VirtRegMap.cpp
  WinEHPrepare.cpp

  ADDITIONAL_HEADER_DIRS
  ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
  ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP

  LINK_LIBS ${system_libs}
  )

add_dependencies(LLVMCodeGen intrinsics_gen)

add_subdirectory(SelectionDAG)
add_subdirectory(AsmPrinter)
add_subdirectory(MIRParser)