Files
swift-mirror/include/swift/SILPasses/Passes.def
Arnold Schwaighofer 3812583031 DominatorBasedJumpThreading: Resurrected
Teach dominator based simplifications to also thread dominated edges.

The code now handles cond_br and switch_enum terminators for both value based
simplifications (where the use is dominated) and jump threading edges (the edge
is dominated).

Update simplify_cfg.sil test cases for split edges.

This also handles the test case from rdar://20390647.

Swift SVN r27843
2015-04-27 23:44:57 +00:00

91 lines
2.4 KiB
C++

//===--- Passes.def - Swift SILPass Metaprogramming -------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// This file defines macros used for macro-metaprogramming with SILPasses.
//
//===----------------------------------------------------------------------===//
/// PASS(ID)
/// The pass is identified by PassKind::ID, and there exists a
/// global function swift::create##ID().
/// This macro must be defined by the includer.
/// PASS_RANGE(RANGE_ID, START, END)
/// Pass IDs between PassKind::START and PassKind::END, inclusive,
/// fall within the set known as
#ifndef PASS_RANGE
#define PASS_RANGE(Id, First, Last)
#endif
PASS(AADumper)
PASS(ABCOpt)
PASS(AllocBoxToStack)
PASS(CFGPrinter)
PASS(COWArrayOpts)
PASS(CSE)
PASS(CapturePromotion)
PASS(CapturePropagation)
PASS(ClosureSpecializer)
PASS(EarlyCodeMotion)
PASS(LateCodeMotion)
PASS(CopyForwarding)
PASS(DCE)
PASS(DeadFunctionElimination)
PASS(ExternalFunctionDefinitionsElimination)
PASS(DeadObjectElimination)
PASS(DefiniteInitialization)
PASS(Devirtualizer)
PASS(DiagnoseUnreachable)
PASS(DiagnosticConstantPropagation)
PASS(EarlyInliner)
PASS(EmitDFDiagnostics)
PASS(FunctionSignatureOpts)
PASS(GenericSpecializer)
PASS(GlobalARCOpts)
PASS(GlobalLoadStoreOpts)
PASS(GlobalOpt)
PASS(GlobalPropertyOpt)
PASS(IVInfoPrinter)
PASS(InOutDeshadowing)
PASS(InlineCaches)
PASS(InstCount)
PASS(LICM)
PASS(LateInliner)
PASS(LoopInfoPrinter)
PASS(LoopRotate)
PASS(LowerAggregateInstrs)
PASS(MandatoryInlining)
PASS(Mem2Reg)
PASS(MergeCondFails)
PASS(CropOverflowChecks)
PASS(NoReturnFolding)
PASS(PerfInliner)
PASS(PerformanceConstantPropagation)
PASS(PredictableMemoryOptimizations)
PASS(RemovePins)
PASS(SILCleanup)
PASS(SILCombine)
PASS(SILLinker)
PASS(SROA)
PASS(SimplifyCFG)
PASS(JumpThreadSimplifyCFG)
PASS(SplitAllCriticalEdges)
PASS(SplitNonCondBrCriticalEdges)
PASS(SimplifyBBArgs)
PASS(StripDebugInfo)
PASS(SwiftArrayOpts)
PASS(ExternalDefsToDecls)
PASS_RANGE(AllPasses, AADumper, ExternalDefsToDecls)
#undef PASS
#undef PASS_RANGE