Files
swift-mirror/include/swift/SILAnalysis/ValueTracking.h
Michael Gottesman b04b14e0fa Refactor isNonEscapingLocalObject/getUnderlying object into their own file ValueTracking.cpp.
This is because I need them in ARCAnalysis.cpp and from a modeling
perspective it is no longer just going to be used just in AA since they
are of larger functionality.

Swift SVN r16297
2014-04-14 04:44:53 +00:00

31 lines
1003 B
C++

//===-- ValueTracking.h - SIL Value Tracking Analysis ----------*- 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
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_SILANALYSIS_VALUETRACKING_H
#define SWIFT_SILANALYSIS_VALUETRACKING_H
namespace swift {
class SILValue;
/// Strip off casts/indexing insts/address projections from V until there is
/// nothing left to strip.
SILValue getUnderlyingObject(SILValue V);
/// Return true if the pointer is to a function-local object that never escapes
/// from the function.
bool isNonEscapingLocalObject(SILValue V);
} // end namespace swift
#endif // SWIFT_SILANALYSIS_VALUETRACKING_H