| //===----- llvm/Analysis/CaptureTracking.h - Pointer capture ----*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file contains routines that help determine which pointers are captured. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_ANALYSIS_CAPTURETRACKING_H |
| #define LLVM_ANALYSIS_CAPTURETRACKING_H |
| |
| namespace llvm { |
| class Value; |
| |
| /// PointerMayBeCaptured - Return true if this pointer value may be captured |
| /// by the enclosing function (which is required to exist). This routine can |
| /// be expensive, so consider caching the results. The boolean ReturnCaptures |
| /// specifies whether returning the value (or part of it) from the function |
| /// counts as capturing it or not. The boolean StoreCaptures specified |
| /// whether storing the value (or part of it) into memory anywhere |
| /// automatically counts as capturing it or not. |
| bool PointerMayBeCaptured(const Value *V, |
| bool ReturnCaptures, |
| bool StoreCaptures); |
| |
| } // end namespace llvm |
| |
| #endif |