[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