Files
swift-mirror/SwiftCompilerSources/Sources/Optimizer/TestPasses/DeadEndBlockDumper.swift
Erik Eckstein cc68bd98c9 Swift Optimizer: rework pass context types and instruction passes
* split the `PassContext` into multiple protocols and structs: `Context`, `MutatingContext`, `FunctionPassContext` and `SimplifyContext`
* change how instruction passes work: implement the `simplify` function in conformance to `SILCombineSimplifyable`
* add a mechanism to add a callback for inserted instructions
2023-01-16 15:11:34 +01:00

27 lines
874 B
Swift

//===--- DeadEndBlockDumper.swift -----------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2022 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
//
//===----------------------------------------------------------------------===//
import SIL
let deadEndBlockDumper = FunctionPass(name: "dump-deadendblocks", {
(function: Function, context: FunctionPassContext) in
print("Function \(function.name)")
var deadEndBlocks = DeadEndBlocks(function: function, context)
print(deadEndBlocks)
defer { deadEndBlocks.deinitialize() }
print("end function \(function.name)")
})