MC: Eliminate MC{Fragment,{Section,Symbol}Data}::getAddress.
authorDaniel Dunbar <daniel@zuster.org>
Thu, 25 Mar 2010 01:03:24 +0000 (01:03 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Thu, 25 Mar 2010 01:03:24 +0000 (01:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99467 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCAssembler.h
lib/MC/MCAssembler.cpp

index 54c91a2cb536cd6c4c9a6acd1ab6a98c17220070..51fb88bf33a3e1032437c2a4db08470208cbc5c1 100644 (file)
@@ -57,6 +57,8 @@ public:
 };
 
 class MCFragment : public ilist_node<MCFragment> {
+  friend class MCAsmLayout;
+
   MCFragment(const MCFragment&);     // DO NOT IMPLEMENT
   void operator=(const MCFragment&); // DO NOT IMPLEMENT
 
@@ -108,8 +110,6 @@ public:
   //
   // FIXME: This could all be kept private to the assembler implementation.
 
-  uint64_t getAddress() const;
-
   uint64_t getFileSize() const {
     assert(FileSize != ~UINT64_C(0) && "File size not set!");
     return FileSize;
@@ -390,6 +390,8 @@ public:
 // we anticipate the fast path being through an MCAssembler, the only reason to
 // keep it out is for API abstraction.
 class MCSectionData : public ilist_node<MCSectionData> {
+  friend class MCAsmLayout;
+
   MCSectionData(const MCSectionData&);  // DO NOT IMPLEMENT
   void operator=(const MCSectionData&); // DO NOT IMPLEMENT
 
@@ -469,12 +471,6 @@ public:
   //
   // FIXME: This could all be kept private to the assembler implementation.
 
-  uint64_t getAddress() const {
-    assert(Address != ~UINT64_C(0) && "Address not set!");
-    return Address;
-  }
-  void setAddress(uint64_t Value) { Address = Value; }
-
   uint64_t getSize() const {
     assert(Size != ~UINT64_C(0) && "File size not set!");
     return Size;
@@ -549,11 +545,6 @@ public:
   uint64_t getOffset() const { return Offset; }
   void setOffset(uint64_t Value) { Offset = Value; }
 
-  uint64_t getAddress() const {
-    assert(getFragment() && "Invalid getAddress() on undefined symbol!");
-    return getFragment()->getAddress() + getOffset();
-  }
-
   /// @}
   /// @name Symbol Attributes
   /// @{
index 4a5db8ce22224a3eaeaaf8f17622aac24be3850b..3fac6c833499cf113fb5382a4bb5b0b820d0d8f5 100644 (file)
@@ -46,19 +46,22 @@ STATISTIC(ObjectBytes, "Number of emitted object file bytes");
 /* *** */
 
 uint64_t MCAsmLayout::getFragmentAddress(const MCFragment *F) const {
-  return F->getAddress();
+  assert(F->getParent() && "Missing section()!");
+  return getSectionAddress(F->getParent()) + F->getOffset();
 }
 
 uint64_t MCAsmLayout::getSymbolAddress(const MCSymbolData *SD) const {
-  return SD->getAddress();
+  assert(SD->getFragment() && "Invalid getAddress() on undefined symbol!");
+  return getFragmentAddress(SD->getFragment()) + SD->getOffset();
 }
 
 uint64_t MCAsmLayout::getSectionAddress(const MCSectionData *SD) const {
-  return SD->getAddress();
+  assert(SD->Address != ~UINT64_C(0) && "Address not set!");
+  return SD->Address;
 }
 
 void MCAsmLayout::setSectionAddress(MCSectionData *SD, uint64_t Value) {
-  SD->setAddress(Value);
+  SD->Address = Value;
 }
 
 /* *** */
@@ -78,11 +81,6 @@ MCFragment::MCFragment(FragmentType _Kind, MCSectionData *_Parent)
 MCFragment::~MCFragment() {
 }
 
-uint64_t MCFragment::getAddress() const {
-  assert(getParent() && "Missing Section!");
-  return getParent()->getAddress() + Offset;
-}
-
 /* *** */
 
 MCSectionData::MCSectionData() : Section(0) {}