[lld] r242075 - COFF: Inline Defined::getRVA because it's very hot.

Rui Ueyama ruiu at google.com
Mon Jul 13 15:01:27 PDT 2015


Author: ruiu
Date: Mon Jul 13 17:01:27 2015
New Revision: 242075

URL: http://llvm.org/viewvc/llvm-project?rev=242075&view=rev
Log:
COFF: Inline Defined::getRVA because it's very hot.

Modified:
    lld/trunk/COFF/Symbols.cpp
    lld/trunk/COFF/Symbols.h

Modified: lld/trunk/COFF/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Symbols.cpp?rev=242075&r1=242074&r2=242075&view=diff
==============================================================================
--- lld/trunk/COFF/Symbols.cpp (original)
+++ lld/trunk/COFF/Symbols.cpp Mon Jul 13 17:01:27 2015
@@ -161,30 +161,6 @@ std::string SymbolBody::getDebugName() {
   return N;
 }
 
-uint64_t Defined::getRVA() {
-  switch (kind()) {
-  case DefinedAbsoluteKind:
-    return cast<DefinedAbsolute>(this)->getRVA();
-  case DefinedImportDataKind:
-    return cast<DefinedImportData>(this)->getRVA();
-  case DefinedImportThunkKind:
-    return cast<DefinedImportThunk>(this)->getRVA();
-  case DefinedLocalImportKind:
-    return cast<DefinedLocalImport>(this)->getRVA();
-  case DefinedCommonKind:
-    return cast<DefinedCommon>(this)->getRVA();
-  case DefinedRegularKind:
-    return cast<DefinedRegular>(this)->getRVA();
-
-  case DefinedBitcodeKind:
-    llvm_unreachable("There is no address for a bitcode symbol.");
-  case LazyKind:
-  case UndefinedKind:
-    llvm_unreachable("Cannot get the address for an undefined symbol.");
-  }
-  llvm_unreachable("unknown symbol kind");
-}
-
 uint64_t Defined::getFileOff() {
   switch (kind()) {
   case DefinedImportDataKind:

Modified: lld/trunk/COFF/Symbols.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Symbols.h?rev=242075&r1=242074&r2=242075&view=diff
==============================================================================
--- lld/trunk/COFF/Symbols.h (original)
+++ lld/trunk/COFF/Symbols.h Mon Jul 13 17:01:27 2015
@@ -360,6 +360,29 @@ private:
   BitcodeFile *File;
 };
 
+inline uint64_t Defined::getRVA() {
+  switch (kind()) {
+  case DefinedAbsoluteKind:
+    return cast<DefinedAbsolute>(this)->getRVA();
+  case DefinedImportDataKind:
+    return cast<DefinedImportData>(this)->getRVA();
+  case DefinedImportThunkKind:
+    return cast<DefinedImportThunk>(this)->getRVA();
+  case DefinedLocalImportKind:
+    return cast<DefinedLocalImport>(this)->getRVA();
+  case DefinedCommonKind:
+    return cast<DefinedCommon>(this)->getRVA();
+  case DefinedRegularKind:
+    return cast<DefinedRegular>(this)->getRVA();
+  case DefinedBitcodeKind:
+    llvm_unreachable("There is no address for a bitcode symbol.");
+  case LazyKind:
+  case UndefinedKind:
+    llvm_unreachable("Cannot get the address for an undefined symbol.");
+  }
+  llvm_unreachable("unknown symbol kind");
+}
+
 } // namespace coff
 } // namespace lld
 





More information about the llvm-commits mailing list