X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FIR%2FDebugLoc.h;h=8ea5875e1f85432c6460ed736f03d92ebc5f529a;hb=ef112d46b98642b59c657f1560f7e1c21b13a0da;hp=8f2781304a8185c4f70284c830ad3d30061aefa5;hpb=6d42c0084e7a0d222699d44bbde560fab92eebef;p=oota-llvm.git diff --git a/include/llvm/IR/DebugLoc.h b/include/llvm/IR/DebugLoc.h index 8f2781304a8..8ea5875e1f8 100644 --- a/include/llvm/IR/DebugLoc.h +++ b/include/llvm/IR/DebugLoc.h @@ -22,14 +22,14 @@ namespace llvm { class LLVMContext; class raw_ostream; - class MDLocation; + class DILocation; /// \brief A debug info location. /// - /// This class is a wrapper around a tracking reference to an \a MDLocation + /// This class is a wrapper around a tracking reference to an \a DILocation /// pointer. /// - /// To avoid extra includes, \a DebugLoc doubles the \a MDLocation API with a + /// To avoid extra includes, \a DebugLoc doubles the \a DILocation API with a /// one based on relatively opaque \a MDNode pointers. class DebugLoc { TrackingMDNodeRef Loc; @@ -47,31 +47,31 @@ namespace llvm { return *this; } - /// \brief Construct from an \a MDLocation. - DebugLoc(MDLocation *L); + /// \brief Construct from an \a DILocation. + DebugLoc(const DILocation *L); /// \brief Construct from an \a MDNode. /// - /// Note: if \c N is not an \a MDLocation, a verifier check will fail, and + /// Note: if \c N is not an \a DILocation, a verifier check will fail, and /// accessors will crash. However, construction from other nodes is /// supported in order to handle forward references when reading textual /// IR. - explicit DebugLoc(MDNode *N); + explicit DebugLoc(const MDNode *N); - /// \brief Get the underlying \a MDLocation. + /// \brief Get the underlying \a DILocation. /// - /// \pre !*this or \c isa(getAsMDNode()). + /// \pre !*this or \c isa(getAsMDNode()). /// @{ - MDLocation *get() const; - operator MDLocation *() const { return get(); } - MDLocation *operator->() const { return get(); } - MDLocation &operator*() const { return *get(); } + DILocation *get() const; + operator DILocation *() const { return get(); } + DILocation *operator->() const { return get(); } + DILocation &operator*() const { return *get(); } /// @} /// \brief Check for null. /// /// Check for null in a way that is safe with broken debug info. Unlike - /// the conversion to \c MDLocation, this doesn't require that \c Loc is of + /// the conversion to \c DILocation, this doesn't require that \c Loc is of /// the right type. Important for cases like \a llvm::StripDebugInfo() and /// \a Instruction::hasMetadata(). explicit operator bool() const { return Loc; } @@ -82,24 +82,18 @@ namespace llvm { /// \brief Create a new DebugLoc. /// /// Create a new DebugLoc at the specified line/col and scope/inline. This - /// forwards to \a MDLocation::get(). + /// forwards to \a DILocation::get(). /// /// If \c !Scope, returns a default-constructed \a DebugLoc. /// - /// FIXME: Remove this. Users should use MDLocation::get(). - static DebugLoc get(unsigned Line, unsigned Col, MDNode *Scope, - MDNode *InlinedAt = nullptr); - - /// \brief Translate the DILexicalBlock into a DebugLoc. - /// - /// FIXME: Remove this. It has only one user, and the user just wants to - /// pass an \a MDScope around. - static DebugLoc getFromDILexicalBlock(MDNode *N); + /// FIXME: Remove this. Users should use DILocation::get(). + static DebugLoc get(unsigned Line, unsigned Col, const MDNode *Scope, + const MDNode *InlinedAt = nullptr); unsigned getLine() const; unsigned getCol() const; MDNode *getScope() const; - MDLocation *getInlinedAt() const; + DILocation *getInlinedAt() const; /// \brief Get the fully inlined-at scope for a DebugLoc. /// @@ -111,8 +105,8 @@ namespace llvm { /// Walk up the scope chain of given debug loc and find line number info /// for the function. /// - /// FIXME: Remove this. Users should use MDLocation/MDLocalScope API to - /// find the subprogram, and then MDLocation::get(). + /// FIXME: Remove this. Users should use DILocation/DILocalScope API to + /// find the subprogram, and then DILocation::get(). DebugLoc getFnDebugLoc() const; /// \brief Return \c this as a bar \a MDNode.