include/llvm/Object/ELF.h: do debug checks only when NDEBUG
authorDmitry Vyukov <dvyukov@google.com>
Thu, 14 Feb 2013 18:41:42 +0000 (18:41 +0000)
committerDmitry Vyukov <dvyukov@google.com>
Thu, 14 Feb 2013 18:41:42 +0000 (18:41 +0000)
validateSymbol() is called all over the place, and it seems it's a debug check.
It significantly speedups llvm-symbolizer used in tsan/asan/msan. validateSymbol() is the second hot function and accounts for 15% of runtime.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175192 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/ELF.h

index 00b8af949f8d4bc56085838f115e39595a872982..bd3bbe1e4fab699ce9ab7e26a0cce181e47756a5 100644 (file)
@@ -867,6 +867,7 @@ void ELFObjectFile<ELFT>::LoadVersionMap() const {
 
 template<class ELFT>
 void ELFObjectFile<ELFT>::validateSymbol(DataRefImpl Symb) const {
+#ifndef NDEBUG
   const Elf_Sym  *symb = getSymbol(Symb);
   const Elf_Shdr *SymbolTableSection = SymbolTableSections[Symb.d.b];
   // FIXME: We really need to do proper error handling in the case of an invalid
@@ -881,6 +882,7 @@ void ELFObjectFile<ELFT>::validateSymbol(DataRefImpl Symb) const {
                    + SymbolTableSection->sh_size)))
     // FIXME: Proper error handling.
     report_fatal_error("Symb must point to a valid symbol!");
+#endif
 }
 
 template<class ELFT>