aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/CodeGen/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'backend/lib/CodeGen/CMakeLists.txt')
-rw-r--r--backend/lib/CodeGen/CMakeLists.txt250
1 files changed, 250 insertions, 0 deletions
diff --git a/backend/lib/CodeGen/CMakeLists.txt b/backend/lib/CodeGen/CMakeLists.txt
new file mode 100644
index 0000000..ccbf131
--- /dev/null
+++ b/backend/lib/CodeGen/CMakeLists.txt
@@ -0,0 +1,250 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+set(
+ RCCBackendCodeGenSources
+ CFIInstrInserter.cpp
+ CompilationUnit.cpp
+ CommandFlags.cpp
+ GlobalObject.cpp
+ GenericOpcodes.cpp
+ FrameIndexElimination.cpp
+ FinalizeISel.cpp
+ InstructionDescriptor.cpp
+ LowLevelType.cpp
+ MachineBasicBlockAttributes.cpp
+ MachineCFIInfo.cpp
+ MachineCompilationStatus.cpp
+ MachineCombiner.cpp
+ MachineCombinerPattern.cpp
+ MachineBasicBlock.cpp
+ MachineBlockPlacement.cpp
+ MachineBranchOptimization.cpp
+ MachineBranchRelaxation.cpp
+ MachineCFGUpdater.cpp
+ MachineConstantPool.cpp
+ MachineCopyPropagation.cpp
+ MachineCSE.cpp
+ MachineDebugInfo.cpp
+ MachineStripDebug.cpp
+ MachineDCE.cpp
+ MachineFrameInfo.cpp
+ MachineFinalization.cpp
+ MachineFunction.cpp
+ MachineFunctionAttributes.cpp
+ MachineFunctionCloner.cpp
+ MachineIRTypes.cpp
+ MachineIRBuilder.cpp
+ MachineAnalyses.cpp
+ MachineInstr.cpp
+ MachineJumpTableInfo.cpp
+ MachineLICM.cpp
+ SlotIndexes.cpp
+ LiveVariables.cpp
+ LiveInterval.cpp
+ LiveIntervals.cpp
+ LivePhysRegs.cpp
+ LiveRegUnits.cpp
+ MachineMemoryFolding.cpp
+ MachinePeepholeOptimizer.cpp
+ MachineMemOperand.cpp
+ MachineMetadata.cpp
+ MachineOperand.cpp
+ MachineOptimizationPipeline.cpp
+ MachineOutliner.cpp
+ MachinePassInstrumentation.cpp
+ MachinePassManager.cpp
+ MachinePseudoExpansion.cpp
+ MachineRegisterInfo.cpp
+ MachineScheduler.cpp
+ MachineShrinkWrapping.cpp
+ MachineSink.cpp
+ MachineStackSlotColoring.cpp
+ MachineTailDuplication.cpp
+ PrologueEpilogueInsertion.cpp
+ PostRAScheduler.cpp
+ RegisterPressure.cpp
+ ReachingDefAnalysis.cpp
+ RegisterScavenger.cpp
+ MacroFusion.cpp
+ ScheduleDAG.cpp
+ ScheduleHazardRecognizer.cpp
+ InlineSpiller.cpp
+ LiveRangeEdit.cpp
+ LiveRegMatrix.cpp
+ RegAllocBase.cpp
+ RegAllocBasic.cpp
+ RegAllocFast.cpp
+ RegAllocGreedy.cpp
+ RegAllocPBQP.cpp
+ VirtRegMap.cpp
+ PHIElimination.cpp
+ MachineVerifier.cpp
+ MachineFunctionProperties.cpp
+ MachineFunctionRecords.cpp
+ Register.cpp
+ RegisterMask.cpp
+ TargetConstant.cpp
+ TargetCallLowering.cpp
+ TargetInstrInfo.cpp
+ TargetDescription.cpp
+ TargetFunctionState.cpp
+ TargetMIRTextInfo.cpp
+ TargetRegisterInfo.cpp
+ TargetSchedulingModel.cpp
+ TwoAddressInstructionPass.cpp
+)
+set(
+ RCCBackendCodeGenHeaders
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/CFIInstrInserter.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/CompilationUnit.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/CommandFlags.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/CSEConfigBase.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/GlobalObject.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/GenericOpcodes.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/FrameIndexElimination.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/FinalizeISel.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/InstructionDescriptor.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/InlineAsm.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LowLevelType.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MacroFusion.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineBasicBlockAttributes.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineCFIInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineCompilationStatus.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineCombiner.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineCombinerPattern.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineBasicBlock.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineBlockPlacement.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineBranchOptimization.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineBranchRelaxation.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineCFGUpdater.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineConstantPool.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineCopyPropagation.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineCSE.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineDebugInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineStripDebug.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineDCE.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFrameInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFinalization.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFunction.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFunctionAttributes.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFunctionCloner.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineIRTypes.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineIRBuilder.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineAnalyses.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineInstr.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineJumpTableInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineLICM.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/SlotIndexes.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LiveVariables.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LiveInterval.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LiveIntervals.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LivePhysRegs.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LiveRegUnits.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineMemoryFolding.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachinePeepholeOptimizer.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineMemOperand.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineMetadata.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineOperand.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineOptimizationPipeline.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineOutliner.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/IR/PassManager.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFunctionAnalysisManager.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachinePassInstrumentation.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachinePassManager.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachinePseudoExpansion.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PrologueEpilogueInsertion.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/RegisterPressure.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/ReachingDefAnalysis.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/RegisterScavenger.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/ScheduleDAG.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/ScheduleHazardRecognizer.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetFrameLowering.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineRegisterInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineScheduler.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineShrinkWrapping.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineSink.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineStackSlotColoring.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineTailDuplication.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PostRAScheduler.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PBQP/Graph.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PBQP/Math.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PBQP/ReductionRules.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PBQP/Solution.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PBQP/Solver.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LiveRangeEdit.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/LiveRegMatrix.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/RegAllocCommon.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/RegAllocFast.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/RegAllocPBQP.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/Spiller.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetRegisterAllocationInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/VirtRegMap.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/PHIElimination.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineVerifier.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFunctionProperties.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/MachineFunctionRecords.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/Register.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/RegisterBankInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/RegisterMask.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/StableID.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetConstant.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetCallLowering.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetInstrInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetDescription.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetFunctionState.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetMIRTextInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetMemoryFolding.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetRegisterInfo.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetSchedulingModel.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TwoAddressInstructionPass.h"
+ "${RCC_BACKEND_SOURCE_DIR}/include/rcc/CodeGen/TargetPseudoExpansion.h"
+)
+
+add_library(RCCBackendCodeGen ${RCCBackendCodeGenSources})
+add_library(RCCBackend::CodeGen ALIAS RCCBackendCodeGen)
+
+add_subdirectory(GlobalISel)
+
+rcc_backend_configure_target(RCCBackendCodeGen)
+
+target_include_directories(
+ RCCBackendCodeGen
+ PUBLIC
+ "$<BUILD_INTERFACE:${RCC_BACKEND_SOURCE_DIR}/include>"
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
+)
+target_link_libraries(RCCBackendCodeGen PUBLIC RCCBackend::IR)
+
+set_target_properties(
+ RCCBackendCodeGen
+ PROPERTIES
+ EXPORT_NAME CodeGen
+ OUTPUT_NAME RCCBackendCodeGen
+)
+
+install(
+ TARGETS RCCBackendCodeGen
+ EXPORT RCCBackendTargets
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+)
+
+list(
+ TRANSFORM RCCBackendCodeGenSources
+ PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/"
+ OUTPUT_VARIABLE RCCBackendCodeGenSourcePaths
+)
+set(
+ RCCBackendCodeGenPrivateHeaders
+ "${CMAKE_CURRENT_SOURCE_DIR}/MachineSchedulerInternal.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/RegAllocBase.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/RegAllocBasic.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/RegAllocGreedy.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/RegAllocInternal.h"
+)
+rcc_backend_register_format_files(
+ ${RCCBackendCodeGenSourcePaths}
+ ${RCCBackendCodeGenHeaders}
+ ${RCCBackendCodeGenPrivateHeaders}
+)