Skip to content

[cmake] Use a helper macro to simplify adding sources to the SILOptim… #16969

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions lib/SILOptimizer/ARC/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
set(ARC_SOURCES
ARC/ARCBBState.cpp
ARC/ARCLoopOpts.cpp
ARC/ARCMatchingSet.cpp
ARC/ARCRegionState.cpp
ARC/ARCSequenceOpts.cpp
ARC/GlobalARCSequenceDataflow.cpp
ARC/GlobalLoopARCSequenceDataflow.cpp
ARC/RCStateTransition.cpp
ARC/RCStateTransitionVisitors.cpp
ARC/RefCountState.cpp
PARENT_SCOPE)
silopt_register_sources(
ARCBBState.cpp
ARCLoopOpts.cpp
ARCMatchingSet.cpp
ARCRegionState.cpp
ARCSequenceOpts.cpp
GlobalARCSequenceDataflow.cpp
GlobalLoopARCSequenceDataflow.cpp
RCStateTransition.cpp
RCStateTransitionVisitors.cpp
RefCountState.cpp
)
56 changes: 28 additions & 28 deletions lib/SILOptimizer/Analysis/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
set(ANALYSIS_SOURCES
Analysis/ARCAnalysis.cpp
Analysis/AccessSummaryAnalysis.cpp
Analysis/AccessedStorageAnalysis.cpp
Analysis/AliasAnalysis.cpp
Analysis/Analysis.cpp
Analysis/ArraySemantic.cpp
Analysis/BasicCalleeAnalysis.cpp
Analysis/CallerAnalysis.cpp
Analysis/CFG.cpp
Analysis/ClassHierarchyAnalysis.cpp
Analysis/ClosureScope.cpp
Analysis/ColdBlockInfo.cpp
Analysis/DestructorAnalysis.cpp
Analysis/EscapeAnalysis.cpp
Analysis/EpilogueARCAnalysis.cpp
Analysis/FunctionOrder.cpp
Analysis/IVAnalysis.cpp
Analysis/LoopAnalysis.cpp
Analysis/LoopRegionAnalysis.cpp
Analysis/MemoryBehavior.cpp
Analysis/ProtocolConformanceAnalysis.cpp
Analysis/RCIdentityAnalysis.cpp
Analysis/SideEffectAnalysis.cpp
Analysis/SimplifyInstruction.cpp
Analysis/TypeExpansionAnalysis.cpp
Analysis/ValueTracking.cpp
PARENT_SCOPE)
silopt_register_sources(
ARCAnalysis.cpp
AccessSummaryAnalysis.cpp
AccessedStorageAnalysis.cpp
AliasAnalysis.cpp
Analysis.cpp
ArraySemantic.cpp
BasicCalleeAnalysis.cpp
CallerAnalysis.cpp
CFG.cpp
ClassHierarchyAnalysis.cpp
ClosureScope.cpp
ColdBlockInfo.cpp
DestructorAnalysis.cpp
EscapeAnalysis.cpp
EpilogueARCAnalysis.cpp
FunctionOrder.cpp
IVAnalysis.cpp
LoopAnalysis.cpp
LoopRegionAnalysis.cpp
MemoryBehavior.cpp
ProtocolConformanceAnalysis.cpp
RCIdentityAnalysis.cpp
SideEffectAnalysis.cpp
SimplifyInstruction.cpp
TypeExpansionAnalysis.cpp
ValueTracking.cpp
)
36 changes: 25 additions & 11 deletions lib/SILOptimizer/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@

set(SILOPTIMIZER_SOURCES)

function(_list_transform newvar)
set(sources ${ARGN})
set(dir ${CMAKE_CURRENT_SOURCE_DIR})
set(tmp)
foreach (s ${sources})
list(APPEND tmp "${dir}/${s}")
endforeach()
set(${newvar} "${tmp}" PARENT_SCOPE)
endfunction()

macro(silopt_register_sources)
precondition(new_transformed_sources
NEGATE
MESSAGE "Expected this to be empty since we clear after each run")
_list_transform(new_transformed_sources ${ARGN})
list_union("${SILOPTIMIZER_SOURCES}" "${new_transformed_sources}" out)
set(SILOPTIMIZER_SOURCES "${out}" PARENT_SCOPE)
set(new_transformed_sources)
endmacro()

add_subdirectory(ARC)
add_subdirectory(Analysis)
add_subdirectory(FunctionSignatureTransforms)
Expand All @@ -9,16 +32,7 @@ add_subdirectory(SILCombiner)
add_subdirectory(Transforms)
add_subdirectory(UtilityPasses)
add_subdirectory(Utils)

add_swift_library(swiftSILOptimizer STATIC
${ARC_SOURCES}
${ANALYSIS_SOURCES}
${SILCOMBINER_SOURCES}
${UTILITYPASSES_SOURCES}
${UTILS_SOURCES}
${PASSMANAGER_SOURCES}
${LOOPTRANSFORMS_SOURCES}
${MANDATORY_SOURCES}
${TRANSFORMS_SOURCES}
${IPO_SOURCES}
${FUNCTIONSIGNATURETRANSFORMS_SOURCES}
${SILOPTIMIZER_SOURCES}
LINK_LIBRARIES swiftSIL)
12 changes: 6 additions & 6 deletions lib/SILOptimizer/FunctionSignatureTransforms/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
set(FUNCTIONSIGNATURETRANSFORMS_SOURCES
FunctionSignatureTransforms/FunctionSignatureOpts.cpp
FunctionSignatureTransforms/DeadArgumentTransform.cpp
FunctionSignatureTransforms/ArgumentExplosionTransform.cpp
FunctionSignatureTransforms/OwnedToGuaranteedTransform.cpp
PARENT_SCOPE)
silopt_register_sources(
FunctionSignatureOpts.cpp
DeadArgumentTransform.cpp
ArgumentExplosionTransform.cpp
OwnedToGuaranteedTransform.cpp
)
21 changes: 10 additions & 11 deletions lib/SILOptimizer/IPO/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
set(IPO_SOURCES
IPO/CapturePromotion.cpp
IPO/CapturePropagation.cpp
IPO/ClosureSpecializer.cpp
IPO/DeadFunctionElimination.cpp
IPO/EagerSpecializer.cpp
IPO/GlobalOpt.cpp
IPO/GlobalPropertyOpt.cpp
IPO/LetPropertiesOpts.cpp
IPO/UsePrespecialized.cpp
PARENT_SCOPE)
silopt_register_sources(
CapturePromotion.cpp
CapturePropagation.cpp
ClosureSpecializer.cpp
DeadFunctionElimination.cpp
EagerSpecializer.cpp
GlobalOpt.cpp
GlobalPropertyOpt.cpp
LetPropertiesOpts.cpp
UsePrespecialized.cpp)
14 changes: 7 additions & 7 deletions lib/SILOptimizer/LoopTransforms/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
set(LOOPTRANSFORMS_SOURCES
LoopTransforms/ArrayBoundsCheckOpts.cpp
LoopTransforms/COWArrayOpt.cpp
LoopTransforms/LoopRotate.cpp
LoopTransforms/LoopUnroll.cpp
LoopTransforms/LICM.cpp
PARENT_SCOPE)
silopt_register_sources(
ArrayBoundsCheckOpts.cpp
COWArrayOpt.cpp
LoopRotate.cpp
LoopUnroll.cpp
LICM.cpp
)
42 changes: 21 additions & 21 deletions lib/SILOptimizer/Mandatory/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
set(MANDATORY_SOURCES
Mandatory/AccessEnforcementSelection.cpp
Mandatory/AccessMarkerElimination.cpp
Mandatory/AddressLowering.cpp
Mandatory/ConstantPropagation.cpp
Mandatory/DefiniteInitialization.cpp
Mandatory/DIMemoryUseCollectorOwnership.cpp
Mandatory/DataflowDiagnostics.cpp
Mandatory/DiagnoseInfiniteRecursion.cpp
Mandatory/DiagnoseStaticExclusivity.cpp
Mandatory/DiagnoseUnreachable.cpp
Mandatory/GuaranteedARCOpts.cpp
Mandatory/IRGenPrepare.cpp
Mandatory/MandatoryInlining.cpp
Mandatory/PredictableMemOpt.cpp
Mandatory/PMOMemoryUseCollector.cpp
Mandatory/SemanticARCOpts.cpp
Mandatory/ClosureLifetimeFixup.cpp
Mandatory/RawSILInstLowering.cpp
Mandatory/MandatoryOptUtils.cpp
PARENT_SCOPE)
silopt_register_sources(
AccessEnforcementSelection.cpp
AccessMarkerElimination.cpp
AddressLowering.cpp
ConstantPropagation.cpp
DefiniteInitialization.cpp
DIMemoryUseCollectorOwnership.cpp
DataflowDiagnostics.cpp
DiagnoseInfiniteRecursion.cpp
DiagnoseStaticExclusivity.cpp
DiagnoseUnreachable.cpp
GuaranteedARCOpts.cpp
IRGenPrepare.cpp
MandatoryInlining.cpp
PredictableMemOpt.cpp
PMOMemoryUseCollector.cpp
SemanticARCOpts.cpp
ClosureLifetimeFixup.cpp
RawSILInstLowering.cpp
MandatoryOptUtils.cpp
)
12 changes: 6 additions & 6 deletions lib/SILOptimizer/PassManager/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
set(PASSMANAGER_SOURCES
PassManager/PassManager.cpp
PassManager/Passes.cpp
PassManager/PassPipeline.cpp
PassManager/PrettyStackTrace.cpp
PARENT_SCOPE)
silopt_register_sources(
PassManager.cpp
Passes.cpp
PassPipeline.cpp
PrettyStackTrace.cpp
)
14 changes: 7 additions & 7 deletions lib/SILOptimizer/SILCombiner/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
set(SILCOMBINER_SOURCES
SILCombiner/SILCombine.cpp
SILCombiner/SILCombinerApplyVisitors.cpp
SILCombiner/SILCombinerBuiltinVisitors.cpp
SILCombiner/SILCombinerCastVisitors.cpp
SILCombiner/SILCombinerMiscVisitors.cpp
PARENT_SCOPE)
silopt_register_sources(
SILCombine.cpp
SILCombinerApplyVisitors.cpp
SILCombinerBuiltinVisitors.cpp
SILCombinerCastVisitors.cpp
SILCombinerMiscVisitors.cpp
)
70 changes: 35 additions & 35 deletions lib/SILOptimizer/Transforms/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
set(TRANSFORMS_SOURCES
Transforms/ARCCodeMotion.cpp
Transforms/AccessEnforcementOpts.cpp
Transforms/AllocBoxToStack.cpp
Transforms/ArrayCountPropagation.cpp
Transforms/ArrayElementValuePropagation.cpp
Transforms/AssumeSingleThreaded.cpp
Transforms/CSE.cpp
Transforms/ConditionForwarding.cpp
Transforms/CopyForwarding.cpp
Transforms/DeadCodeElimination.cpp
Transforms/DeadObjectElimination.cpp
Transforms/DeadStoreElimination.cpp
Transforms/Devirtualizer.cpp
Transforms/GenericSpecializer.cpp
Transforms/MergeCondFail.cpp
Transforms/MarkUninitializedFixup.cpp
Transforms/Outliner.cpp
Transforms/ObjectOutliner.cpp
Transforms/OwnershipModelEliminator.cpp
Transforms/PerformanceInliner.cpp
Transforms/RedundantLoadElimination.cpp
Transforms/RedundantOverflowCheckRemoval.cpp
Transforms/ReleaseDevirtualizer.cpp
Transforms/RemovePin.cpp
Transforms/SILCodeMotion.cpp
Transforms/SILLowerAggregateInstrs.cpp
Transforms/SILMem2Reg.cpp
Transforms/SILSROA.cpp
Transforms/SimplifyCFG.cpp
Transforms/Sink.cpp
Transforms/SpeculativeDevirtualizer.cpp
Transforms/StackPromotion.cpp
Transforms/UnsafeGuaranteedPeephole.cpp
PARENT_SCOPE)
silopt_register_sources(
ARCCodeMotion.cpp
AccessEnforcementOpts.cpp
AllocBoxToStack.cpp
ArrayCountPropagation.cpp
ArrayElementValuePropagation.cpp
AssumeSingleThreaded.cpp
CSE.cpp
ConditionForwarding.cpp
CopyForwarding.cpp
DeadCodeElimination.cpp
DeadObjectElimination.cpp
DeadStoreElimination.cpp
Devirtualizer.cpp
GenericSpecializer.cpp
MergeCondFail.cpp
MarkUninitializedFixup.cpp
Outliner.cpp
ObjectOutliner.cpp
OwnershipModelEliminator.cpp
PerformanceInliner.cpp
RedundantLoadElimination.cpp
RedundantOverflowCheckRemoval.cpp
ReleaseDevirtualizer.cpp
RemovePin.cpp
SILCodeMotion.cpp
SILLowerAggregateInstrs.cpp
SILMem2Reg.cpp
SILSROA.cpp
SimplifyCFG.cpp
Sink.cpp
SpeculativeDevirtualizer.cpp
StackPromotion.cpp
UnsafeGuaranteedPeephole.cpp
)
62 changes: 31 additions & 31 deletions lib/SILOptimizer/UtilityPasses/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
set(UTILITYPASSES_SOURCES
UtilityPasses/AADumper.cpp
UtilityPasses/AccessSummaryDumper.cpp
UtilityPasses/AccessedStorageDumper.cpp
UtilityPasses/BasicCalleePrinter.cpp
UtilityPasses/BasicInstructionPropertyDumper.cpp
UtilityPasses/BugReducerTester.cpp
UtilityPasses/CFGPrinter.cpp
UtilityPasses/CallerAnalysisPrinter.cpp
UtilityPasses/ComputeDominanceInfo.cpp
UtilityPasses/ComputeLoopInfo.cpp
UtilityPasses/EpilogueARCMatcherDumper.cpp
UtilityPasses/EpilogueRetainReleaseMatcherDumper.cpp
UtilityPasses/EscapeAnalysisDumper.cpp
UtilityPasses/FunctionOrderPrinter.cpp
UtilityPasses/IVInfoPrinter.cpp
UtilityPasses/InstCount.cpp
UtilityPasses/LSLocationPrinter.cpp
UtilityPasses/Link.cpp
UtilityPasses/LoopCanonicalizer.cpp
UtilityPasses/LoopInfoPrinter.cpp
UtilityPasses/LoopRegionPrinter.cpp
UtilityPasses/MemBehaviorDumper.cpp
UtilityPasses/RCIdentityDumper.cpp
UtilityPasses/SerializeSILPass.cpp
UtilityPasses/SILDebugInfoGenerator.cpp
UtilityPasses/SideEffectsDumper.cpp
UtilityPasses/SimplifyUnreachableContainingBlocks.cpp
UtilityPasses/StripDebugInfo.cpp
UtilityPasses/ValueOwnershipKindDumper.cpp
PARENT_SCOPE)
silopt_register_sources(
AADumper.cpp
AccessSummaryDumper.cpp
AccessedStorageDumper.cpp
BasicCalleePrinter.cpp
BasicInstructionPropertyDumper.cpp
BugReducerTester.cpp
CFGPrinter.cpp
CallerAnalysisPrinter.cpp
ComputeDominanceInfo.cpp
ComputeLoopInfo.cpp
EpilogueARCMatcherDumper.cpp
EpilogueRetainReleaseMatcherDumper.cpp
EscapeAnalysisDumper.cpp
FunctionOrderPrinter.cpp
IVInfoPrinter.cpp
InstCount.cpp
LSLocationPrinter.cpp
Link.cpp
LoopCanonicalizer.cpp
LoopInfoPrinter.cpp
LoopRegionPrinter.cpp
MemBehaviorDumper.cpp
RCIdentityDumper.cpp
SerializeSILPass.cpp
SILDebugInfoGenerator.cpp
SideEffectsDumper.cpp
SimplifyUnreachableContainingBlocks.cpp
StripDebugInfo.cpp
ValueOwnershipKindDumper.cpp
)
Loading