Files
swift-mirror/lib/SILOptimizer/ARC/CMakeLists.txt
Meghana Gupta 4d2753b227 Remove updateForPredTerminators in ARCSequenceOpts
Historically TermInsts were handled specially while visiting blocks in
bottom up order. TermInsts were not visited while traversing a block.
They were visited while traversing successors, and the most conservative
terminator of all predecessors would affect the refcount state in the
dataflow.

This was needed because ARCSequenceOpts also computed 'insertion points'
for the purposes of ARC code motion. ARC code motion was then removed
from ARCSequenceOpts and this code remained unchanged.

With this change, arc significant terminators are handled like all other
instructions while processing basic blocks bottom up.

Also updateForSameLoopInst, updateForDifferentLoopInst,
updateForPredTerminators all serve similar purpose with subtle differences.
This change removes some code duplication due to this.

Remove code duplication of isARCSignificantTerminator. Create
ARCSequenceOptUtils for common utils used in ARCSequenceOpts
2020-08-17 15:12:57 -07:00

13 lines
311 B
CMake

target_sources(swiftSILOptimizer PRIVATE
ARCBBState.cpp
ARCLoopOpts.cpp
ARCMatchingSet.cpp
ARCRegionState.cpp
ARCSequenceOpts.cpp
ARCSequenceOptUtils.cpp
GlobalARCSequenceDataflow.cpp
GlobalLoopARCSequenceDataflow.cpp
RCStateTransition.cpp
RCStateTransitionVisitors.cpp
RefCountState.cpp)