[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