[lld] r326291 - [WebAssembly] Inline translateVA as it's trivial.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 27 17:01:35 PST 2018


Author: ruiu
Date: Tue Feb 27 17:01:34 2018
New Revision: 326291

URL: http://llvm.org/viewvc/llvm-project?rev=326291&view=rev
Log:
[WebAssembly] Inline translateVA as it's trivial.

The problem I want to address now is that chunks have too many data
members for "offsets", and their origins are not well defined.
For example, InputSegment has OutputSegmentOffset, but it's base class
also has OutputOffset. That's very confusing.

Differential Revision: https://reviews.llvm.org/D43726

Modified:
    lld/trunk/wasm/InputChunks.cpp
    lld/trunk/wasm/InputChunks.h
    lld/trunk/wasm/Symbols.cpp

Modified: lld/trunk/wasm/InputChunks.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/wasm/InputChunks.cpp?rev=326291&r1=326290&r2=326291&view=diff
==============================================================================
--- lld/trunk/wasm/InputChunks.cpp (original)
+++ lld/trunk/wasm/InputChunks.cpp Tue Feb 27 17:01:34 2018
@@ -27,12 +27,6 @@ std::string lld::toString(const InputChu
   return (toString(C->File) + ":(" + C->getName() + ")").str();
 }
 
-uint32_t InputSegment::translateVA(uint32_t Offset) const {
-  assert(Offset <= getSize());
-  DEBUG(dbgs() << "translateVA: " << getName() << " Offset=" << Offset << "\n");
-  return OutputSeg->StartVA + OutputSegmentOffset + Offset;
-}
-
 void InputChunk::copyRelocations(const WasmSection &Section) {
   if (Section.Relocations.empty())
     return;

Modified: lld/trunk/wasm/InputChunks.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/wasm/InputChunks.h?rev=326291&r1=326290&r2=326291&view=diff
==============================================================================
--- lld/trunk/wasm/InputChunks.h (original)
+++ lld/trunk/wasm/InputChunks.h Tue Feb 27 17:01:34 2018
@@ -96,10 +96,6 @@ public:
 
   static bool classof(const InputChunk *C) { return C->kind() == DataSegment; }
 
-  // Translate an offset in the input segment to an offset in the output
-  // segment.
-  uint32_t translateVA(uint32_t Offset) const;
-
   uint32_t getAlignment() const { return Segment.Data.Alignment; }
   StringRef getName() const override { return Segment.Data.Name; }
   StringRef getComdat() const override { return Segment.Data.Comdat; }

Modified: lld/trunk/wasm/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/wasm/Symbols.cpp?rev=326291&r1=326290&r2=326291&view=diff
==============================================================================
--- lld/trunk/wasm/Symbols.cpp (original)
+++ lld/trunk/wasm/Symbols.cpp Tue Feb 27 17:01:34 2018
@@ -157,7 +157,9 @@ DefinedFunction::DefinedFunction(StringR
 
 uint32_t DefinedData::getVirtualAddress() const {
   DEBUG(dbgs() << "getVirtualAddress: " << getName() << "\n");
-  return Segment ? Segment->translateVA(Offset) : Offset;
+  if (Segment)
+    return Segment->OutputSeg->StartVA + Segment->OutputSegmentOffset + Offset;
+  return Offset;
 }
 
 void DefinedData::setVirtualAddress(uint32_t Value) {




More information about the llvm-commits mailing list