diff --git a/include/llvm/Target/TargetFrameInfo.h b/include/llvm/Target/TargetFrameInfo.h
index c302096..f5ecf2f 100644
--- a/include/llvm/Target/TargetFrameInfo.h
+++ b/include/llvm/Target/TargetFrameInfo.h
@@ -75,31 +75,6 @@
     NumEntries = 0;
     return 0;
   }
-
-  //===--------------------------------------------------------------------===//
-  // These methods provide details of the stack frame used by Sparc, thus they
-  // are Sparc specific.
-  //===--------------------------------------------------------------------===//
-
-  // This method adjusts a stack offset to meet alignment rules of target.
-  virtual int adjustAlignment(int unalignedOffset, bool growUp,
-                              unsigned align) const;
-
-  // These methods compute offsets using the frame contents for a particular
-  // function.  The frame contents are obtained from the MachineFunction object
-  // for the given function.  The rest must be implemented by the
-  // machine-specific subclass.
-  //
-  virtual int getIncomingArgOffset(MachineFunction& mcInfo,
-                                   unsigned argNum) const;
-  virtual int getOutgoingArgOffset(MachineFunction& mcInfo,
-                                   unsigned argNum) const;
-  virtual int getFirstAutomaticVarOffset(MachineFunction& mcInfo,
-                                         bool& growUp) const;
-  virtual int getRegSpillAreaOffset(MachineFunction& mcInfo,
-                                    bool& growUp) const;
-  virtual int getTmpAreaOffset(MachineFunction& mcInfo, bool& growUp) const;
-  virtual int getDynamicAreaOffset(MachineFunction& mcInfo, bool& growUp) const;
 };
 
 } // End llvm namespace
diff --git a/lib/Target/TargetFrameInfo.cpp b/lib/Target/TargetFrameInfo.cpp
index 0b74677..e6f15b1 100644
--- a/lib/Target/TargetFrameInfo.cpp
+++ b/lib/Target/TargetFrameInfo.cpp
@@ -13,69 +13,7 @@
 
 #include "llvm/Target/TargetFrameInfo.h"
 #include <cstdlib>
-
 using namespace llvm;
 
-TargetFrameInfo::~TargetFrameInfo()
-{
+TargetFrameInfo::~TargetFrameInfo() {
 }
-
-//===--------------------------------------------------------------------===//
-// These methods provide details of the stack frame used by Sparc, thus they
-// are Sparc specific.
-//===--------------------------------------------------------------------===//
-
-// This method adjusts a stack offset to meet alignment rules of target.
-int
-TargetFrameInfo::adjustAlignment(int unalignedOffset, bool growUp,
-                                 unsigned align) const {
-  abort();
-  return 0;
-}
-
-// These methods compute offsets using the frame contents for a particular
-// function.  The frame contents are obtained from the MachineFunction object
-// for the given function.  The rest must be implemented by the
-// machine-specific subclass.
-//
-int
-TargetFrameInfo::getIncomingArgOffset(MachineFunction& mcInfo, unsigned argNum)
-  const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getOutgoingArgOffset(MachineFunction& mcInfo,
-                                      unsigned argNum) const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getFirstAutomaticVarOffset(MachineFunction& mcInfo,
-                                            bool& growUp) const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getRegSpillAreaOffset(MachineFunction& mcInfo, bool& growUp)
-  const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getTmpAreaOffset(MachineFunction& mcInfo, bool& growUp) const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getDynamicAreaOffset(MachineFunction& mcInfo, bool& growUp)
-  const {
-  abort();
-  return 0;
-}
-
