[llvm] r201939 - Don't inline get[S|U]LEB128Size() until they are proved to be hot.

Logan Chien tzuhsiang.chien at gmail.com
Sat Feb 22 07:39:39 PST 2014


Author: logan
Date: Sat Feb 22 09:39:39 2014
New Revision: 201939

URL: http://llvm.org/viewvc/llvm-project?rev=201939&view=rev
Log:
Don't inline get[S|U]LEB128Size() until they are proved to be hot.

Added:
    llvm/trunk/lib/Support/LEB128.cpp
Modified:
    llvm/trunk/include/llvm/Support/LEB128.h
    llvm/trunk/lib/Support/CMakeLists.txt

Modified: llvm/trunk/include/llvm/Support/LEB128.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/LEB128.h?rev=201939&r1=201938&r2=201939&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/LEB128.h (original)
+++ llvm/trunk/include/llvm/Support/LEB128.h Sat Feb 22 09:39:39 2014
@@ -91,29 +91,10 @@ inline uint64_t decodeULEB128(const uint
 }
 
 /// Utility function to get the size of the ULEB128-encoded value.
-inline unsigned getULEB128Size(uint64_t Value) {
-  unsigned Size = 0;
-  do {
-    Value >>= 7;
-    Size += sizeof(int8_t);
-  } while (Value);
-  return Size;
-}
+extern unsigned getULEB128Size(uint64_t Value);
 
 /// Utility function to get the size of the SLEB128-encoded value.
-inline unsigned getSLEB128Size(int64_t Value) {
-  unsigned Size = 0;
-  int Sign = Value >> (8 * sizeof(Value) - 1);
-  bool IsMore;
-
-  do {
-    unsigned Byte = Value & 0x7f;
-    Value >>= 7;
-    IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0;
-    Size += sizeof(int8_t);
-  } while (IsMore);
-  return Size;
-}
+extern unsigned getSLEB128Size(int64_t Value);
 
 }  // namespace llvm
 

Modified: llvm/trunk/lib/Support/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CMakeLists.txt?rev=201939&r1=201938&r2=201939&view=diff
==============================================================================
--- llvm/trunk/lib/Support/CMakeLists.txt (original)
+++ llvm/trunk/lib/Support/CMakeLists.txt Sat Feb 22 09:39:39 2014
@@ -31,6 +31,7 @@ add_llvm_library(LLVMSupport
   IntrusiveRefCntPtr.cpp
   IsInf.cpp
   IsNAN.cpp
+  LEB128.cpp
   LineIterator.cpp
   Locale.cpp
   LockFileManager.cpp

Added: llvm/trunk/lib/Support/LEB128.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/LEB128.cpp?rev=201939&view=auto
==============================================================================
--- llvm/trunk/lib/Support/LEB128.cpp (added)
+++ llvm/trunk/lib/Support/LEB128.cpp Sat Feb 22 09:39:39 2014
@@ -0,0 +1,44 @@
+//===- LEB128.cpp - LEB128 utility functions implementation -----*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements some utility functions for encoding SLEB128 and
+// ULEB128 values.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Support/LEB128.h"
+
+namespace llvm {
+
+/// Utility function to get the size of the ULEB128-encoded value.
+unsigned getULEB128Size(uint64_t Value) {
+  unsigned Size = 0;
+  do {
+    Value >>= 7;
+    Size += sizeof(int8_t);
+  } while (Value);
+  return Size;
+}
+
+/// Utility function to get the size of the SLEB128-encoded value.
+unsigned getSLEB128Size(int64_t Value) {
+  unsigned Size = 0;
+  int Sign = Value >> (8 * sizeof(Value) - 1);
+  bool IsMore;
+
+  do {
+    unsigned Byte = Value & 0x7f;
+    Value >>= 7;
+    IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0;
+    Size += sizeof(int8_t);
+  } while (IsMore);
+  return Size;
+}
+
+}  // namespace llvm





More information about the llvm-commits mailing list