[llvm-commits] [llvm] r99467 - in /llvm/trunk: include/llvm/MC/MCAssembler.h lib/MC/MCAssembler.cpp

Daniel Dunbar daniel at zuster.org
Wed Mar 24 18:03:24 PDT 2010


Author: ddunbar
Date: Wed Mar 24 20:03:24 2010
New Revision: 99467

URL: http://llvm.org/viewvc/llvm-project?rev=99467&view=rev
Log:
MC: Eliminate MC{Fragment,{Section,Symbol}Data}::getAddress.

Modified:
    llvm/trunk/include/llvm/MC/MCAssembler.h
    llvm/trunk/lib/MC/MCAssembler.cpp

Modified: llvm/trunk/include/llvm/MC/MCAssembler.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAssembler.h?rev=99467&r1=99466&r2=99467&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCAssembler.h (original)
+++ llvm/trunk/include/llvm/MC/MCAssembler.h Wed Mar 24 20:03:24 2010
@@ -57,6 +57,8 @@
 };
 
 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 @@
   //
   // 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 @@
 // 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 @@
   //
   // 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 @@
   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
   /// @{

Modified: llvm/trunk/lib/MC/MCAssembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAssembler.cpp?rev=99467&r1=99466&r2=99467&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCAssembler.cpp (original)
+++ llvm/trunk/lib/MC/MCAssembler.cpp Wed Mar 24 20:03:24 2010
@@ -46,19 +46,22 @@
 /* *** */
 
 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() {
 }
 
-uint64_t MCFragment::getAddress() const {
-  assert(getParent() && "Missing Section!");
-  return getParent()->getAddress() + Offset;
-}
-
 /* *** */
 
 MCSectionData::MCSectionData() : Section(0) {}





More information about the llvm-commits mailing list