//===--- ValueOwnershipKindClassifier.h -------------------------*- 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 // //===----------------------------------------------------------------------===// #ifndef SWIFT_SIL_VALUEOWNERSHIPKINDCLASSIFIER_H #define SWIFT_SIL_VALUEOWNERSHIPKINDCLASSIFIER_H #include "swift/SIL/SILVisitor.h" namespace swift { namespace sil { class ValueOwnershipKindClassifier : public SILVisitor { public: ValueOwnershipKindClassifier() = default; ~ValueOwnershipKindClassifier() = default; ValueOwnershipKindClassifier(const ValueOwnershipKindClassifier &) = delete; ValueOwnershipKindClassifier(ValueOwnershipKindClassifier &&) = delete; ValueOwnershipKind visitForwardingInst(SILInstruction *I, ArrayRef Ops); ValueOwnershipKind visitForwardingInst(SILInstruction *I) { return visitForwardingInst(I, I->getAllOperands()); } ValueOwnershipKind visitValueBase(ValueBase *V) { llvm_unreachable("unimplemented method on ValueBaseOwnershipVisitor"); } #define VALUE(Id, Parent) ValueOwnershipKind visit##Id(Id *ID); #include "swift/SIL/SILNodes.def" }; } // end namespace sil } // end namespace swift #endif