DebugInfo: Remove dead code from old DebugLoc API
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 30 Mar 2015 21:19:50 +0000 (21:19 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 30 Mar 2015 21:19:50 +0000 (21:19 +0000)
Remove old API for `DebugLoc` now that all the callers have been
updated.  If this broke your out-of-tree build, here's a quick map from
the old API to the new one:

    DebugLoc DebugLoc::getFromMDLocation(MDNode *)
      => DebugLoc::DebugLoc(MDLocation *)
      => explicit DebugLoc::DebugLoc(MDNode *) // works with broken code

    MDNode *DebugLoc::getAsMDNode(LLVMContext &)
      => MDLocation *DebugLoc::get()
      => DebugLoc::operator MDLocation *()
      => MDNode *DebugLoc::getAsMDNode() // works with broken code

    bool DebugLoc::isUnknown()
      => DebugLoc::operator MDLocation *()
          i.e.: if (MDLocation *DL = ...)
      => DebugLoc::operator bool() // works with broken code
          i.e.: if (DebugLoc DL = ...)

    void DebugLoc::getScopeAndInlinedAt(MDNode *&, MDNode *&)
      => use: MDNode *DebugLoc::getScope()
         and: MDLocation *DebugLoc::getInlinedAt()

    MDNode *DebugLoc::getScopeNode(LLVMContext &)
      => MDNode *DebugLoc::getInlinedAtScope()

    void DebugLoc::dump(LLVMContext &)
      => void DebugLoc::dump()

    void DebugLoc::getFnDebugLoc(LLVMContext &)
      => void DebugLoc::getFnDebugLoc()

    MDNode *DebugLoc::getScope(LLVMContext &)
      => MDNode *DebugLoc::getScope()

    MDNode *DebugLoc::getInlinedAt(LLVMContext &)
      => MDLocation *DebugLoc::getInlinedAt()

I've noted above the only functions that won't crash on broken code (due
to downcasting to `MDLocation`).  If your code could be dealing with
broken IR (i.e., you haven't run the verifier yet, or you've used a
temporary node that will eventually (but not yet) get RAUW'ed to an
`MDLocation`), you need to restrict yourself to those.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233599 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/DebugLoc.h
lib/IR/DebugLoc.cpp

index 12ab45464511648020544c721a45cfacdca046ae..8f2781304a8185c4f70284c830ad3d30061aefa5 100644 (file)
@@ -125,24 +125,6 @@ namespace llvm {
 
     /// \brief prints source location /path/to/file.exe:line:col @[inlined at]
     void print(raw_ostream &OS) const;
-
-    // FIXME: Remove this old API once callers have been updated.
-    static DebugLoc getFromDILocation(MDNode *N) { return DebugLoc(N); }
-    bool isUnknown() const { return !Loc; }
-    MDNode *getScope(const LLVMContext &) const { return getScope(); }
-    MDNode *getInlinedAt(const LLVMContext &) const;
-    void getScopeAndInlinedAt(MDNode *&Scope, MDNode *&IA) const;
-    void getScopeAndInlinedAt(MDNode *&Scope, MDNode *&IA,
-                              const LLVMContext &) const {
-      return getScopeAndInlinedAt(Scope, IA);
-    }
-    MDNode *getScopeNode() const { return getInlinedAtScope(); }
-    MDNode *getScopeNode(const LLVMContext &) const { return getScopeNode(); }
-    DebugLoc getFnDebugLoc(const LLVMContext &) const {
-      return getFnDebugLoc();
-    }
-    MDNode *getAsMDNode(LLVMContext &) const { return getAsMDNode(); }
-    void dump(const LLVMContext &) const { dump(); }
   };
 
 } // end namespace llvm
index 515e0a2b7161915737386ccbbb69fcb175b88632..5a5f201fe1211cfeb73a967670c524011e14be6a 100644 (file)
@@ -113,12 +113,3 @@ void DebugLoc::print(raw_ostream &OS) const {
     OS << " ]";
   }
 }
-
-// FIXME: Remove this old API once callers have been updated.
-MDNode *DebugLoc::getInlinedAt(const LLVMContext &) const {
-  return getInlinedAt();
-}
-void DebugLoc::getScopeAndInlinedAt(MDNode *&Scope, MDNode *&IA) const {
-  Scope = getScope();
-  IA = getInlinedAt();
-}