mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
NFCI. This is just a pure refactor of the analysis part of TransferNonSendable into a separate SIL level analysis so it can be reused by other passes. The reason that I am committing this earlier is that I am working concurrently on other patches that change TransferNonSendable itself and I want to avoid issues when rebasing those patches. Getting this patch into tree earlier avoids that. This is in preparation for adding a new flow sensitive initialization pass that combines region based analysis with the current flow sensitive isolation's diagnostic emitter. The idea is that we want to preserve the diagnostics from that pass rather than try to make our own as an initial step.
52 lines
1.8 KiB
C++
52 lines
1.8 KiB
C++
//===--- Analysis.def -------------------------------------------*- C++ -*-===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See https://swift.org/LICENSE.txt for license information
|
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file allows for metaprogramming with Analyses. By adding an analysis
|
|
// name here, one is assured that all places in the compiler that the analysis
|
|
// will have a kind created for it and that the analysis will be registered in
|
|
// all locations where analyses are registered.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
/// SIL_ANALYSIS(NAME) This represents the name of an analysis. It is assumed that
|
|
/// the actual analysis is called `NAME ## Analysis'.
|
|
#ifndef SIL_ANALYSIS
|
|
#error "SIL_ANALYSIS macro must be defined"
|
|
#endif
|
|
|
|
SIL_ANALYSIS(AccessSummary)
|
|
SIL_ANALYSIS(AccessStorage)
|
|
SIL_ANALYSIS(Alias)
|
|
SIL_ANALYSIS(BasicCallee)
|
|
SIL_ANALYSIS(Caller)
|
|
SIL_ANALYSIS(ClassHierarchy)
|
|
SIL_ANALYSIS(ClosureScope)
|
|
SIL_ANALYSIS(Destructor)
|
|
SIL_ANALYSIS(DifferentiableActivity)
|
|
SIL_ANALYSIS(Dominance)
|
|
SIL_ANALYSIS(EpilogueARC)
|
|
SIL_ANALYSIS(InductionVariable)
|
|
SIL_ANALYSIS(Loop)
|
|
SIL_ANALYSIS(LoopRegion)
|
|
SIL_ANALYSIS(NonLocalAccessBlock)
|
|
SIL_ANALYSIS(OptimizerStats)
|
|
SIL_ANALYSIS(PostDominance)
|
|
SIL_ANALYSIS(PostOrder)
|
|
SIL_ANALYSIS(ProtocolConformance)
|
|
SIL_ANALYSIS(RCIdentity)
|
|
SIL_ANALYSIS(TypeExpansion)
|
|
SIL_ANALYSIS(PassManagerVerifier)
|
|
SIL_ANALYSIS(DeadEndBlocks)
|
|
SIL_ANALYSIS(Region)
|
|
|
|
#undef SIL_ANALYSIS
|