From dff83e993a73a53a28b6633f4595c7caa5734f38 Mon Sep 17 00:00:00 2001 From: Xin Tong Date: Tue, 13 Sep 2016 15:54:12 -0700 Subject: [PATCH 1/2] Rename RetainReleaseCodeMotion to ARCCodeMotion This is usually how we call things that deal retains and releases --- .../{RetainReleaseCodeMotion.cpp => ARCCodeMotion.cpp} | 0 lib/SILOptimizer/Transforms/CMakeLists.txt | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename lib/SILOptimizer/Transforms/{RetainReleaseCodeMotion.cpp => ARCCodeMotion.cpp} (100%) diff --git a/lib/SILOptimizer/Transforms/RetainReleaseCodeMotion.cpp b/lib/SILOptimizer/Transforms/ARCCodeMotion.cpp similarity index 100% rename from lib/SILOptimizer/Transforms/RetainReleaseCodeMotion.cpp rename to lib/SILOptimizer/Transforms/ARCCodeMotion.cpp diff --git a/lib/SILOptimizer/Transforms/CMakeLists.txt b/lib/SILOptimizer/Transforms/CMakeLists.txt index acae0e9409446..6a138a192d6b6 100644 --- a/lib/SILOptimizer/Transforms/CMakeLists.txt +++ b/lib/SILOptimizer/Transforms/CMakeLists.txt @@ -1,6 +1,7 @@ set(TRANSFORMS_SOURCES Transforms/AllocBoxToStack.cpp Transforms/ArrayCountPropagation.cpp + Transforms/ARCCodeMotion.cpp Transforms/ArrayElementValuePropagation.cpp Transforms/CSE.cpp Transforms/ConditionForwarding.cpp @@ -16,7 +17,6 @@ set(TRANSFORMS_SOURCES Transforms/RedundantLoadElimination.cpp Transforms/RedundantOverflowCheckRemoval.cpp Transforms/ReleaseDevirtualizer.cpp - Transforms/RetainReleaseCodeMotion.cpp Transforms/RemovePin.cpp Transforms/SILCleanup.cpp Transforms/SILCodeMotion.cpp From 0ad481cd8bcfaf806ae1a1fa8ad25640d679c836 Mon Sep 17 00:00:00 2001 From: Xin Tong Date: Tue, 13 Sep 2016 15:54:46 -0700 Subject: [PATCH 2/2] Rename RetainRelease to ARC. NFC --- lib/SILOptimizer/Transforms/ARCCodeMotion.cpp | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/SILOptimizer/Transforms/ARCCodeMotion.cpp b/lib/SILOptimizer/Transforms/ARCCodeMotion.cpp index 4a19c4f30d44d..8906002512691 100644 --- a/lib/SILOptimizer/Transforms/ARCCodeMotion.cpp +++ b/lib/SILOptimizer/Transforms/ARCCodeMotion.cpp @@ -1,4 +1,4 @@ -//===--- RetainReleaseCodeMotion.cpp - SIL Retain and Release Code Motion -===// +//===------------------------ ARCCodeMotion.cpp - SIL ARC Code Motion ----===// // // This source file is part of the Swift.org open source project // @@ -92,7 +92,7 @@ using namespace swift; STATISTIC(NumRetainsSunk, "Number of retains sunk"); STATISTIC(NumReleasesHoisted, "Number of releases hoisted"); -llvm::cl::opt DisableRRCodeMotion("disable-rr-cm", llvm::cl::init(false)); +llvm::cl::opt DisableARCCodeMotion("disable-arc-cm", llvm::cl::init(false)); /// Disable optimization if we have to break critical edges in the function. llvm::cl::opt @@ -974,7 +974,7 @@ namespace { /// Code motion kind. enum CodeMotionKind : unsigned { Retain = 0, Release = 1}; -class RRCodeMotion : public SILFunctionTransform { +class ARCCodeMotion : public SILFunctionTransform { /// Whether to hoist releases or sink retains. CodeMotionKind Kind; @@ -982,15 +982,15 @@ class RRCodeMotion : public SILFunctionTransform { bool FreezeEpilogueReleases; public: - StringRef getName() override { return "SIL Retain Release Code Motion"; } + StringRef getName() override { return "SIL ARC Code Motion"; } /// Constructor. - RRCodeMotion(CodeMotionKind H, bool F) : Kind(H), FreezeEpilogueReleases(F) {} + ARCCodeMotion(CodeMotionKind H, bool F) : Kind(H), FreezeEpilogueReleases(F) {} /// The entry point to the transformation. void run() override { // Code motion disabled. - if (DisableRRCodeMotion) + if (DisableARCCodeMotion) return; // Respect function no.optimize. @@ -1003,7 +1003,7 @@ class RRCodeMotion : public SILFunctionTransform { if (DisableIfWithCriticalEdge && hasCriticalEdges(*F, false)) return; - DEBUG(llvm::dbgs() << "*** RRCM on function: " << F->getName() << " ***\n"); + DEBUG(llvm::dbgs() << "*** ARCCM on function: " << F->getName() << " ***\n"); // Split all critical edges. // // TODO: maybe we can do this lazily or maybe we should disallow SIL passes @@ -1048,16 +1048,16 @@ class RRCodeMotion : public SILFunctionTransform { /// Sink Retains. SILTransform *swift::createRetainSinking() { - return new RRCodeMotion(CodeMotionKind::Retain, false); + return new ARCCodeMotion(CodeMotionKind::Retain, false); } /// Hoist releases, but not epilogue release. ASO relies on epilogue releases /// to prove knownsafety on enclosed releases. SILTransform *swift::createReleaseHoisting() { - return new RRCodeMotion(CodeMotionKind::Release, true); + return new ARCCodeMotion(CodeMotionKind::Release, true); } /// Hoist all releases. SILTransform *swift::createLateReleaseHoisting() { - return new RRCodeMotion(CodeMotionKind::Release, false); + return new ARCCodeMotion(CodeMotionKind::Release, false); }