[llvm] r202274 - Move these functions out of line. A DenseMap lookup is not a simple operation.

Rafael Espindola rafael.espindola at gmail.com
Wed Feb 26 08:49:40 PST 2014


Author: rafael
Date: Wed Feb 26 10:49:40 2014
New Revision: 202274

URL: http://llvm.org/viewvc/llvm-project?rev=202274&view=rev
Log:
Move these functions out of line. A DenseMap lookup is not a simple operation.

Modified:
    llvm/trunk/include/llvm/IR/DataLayout.h
    llvm/trunk/lib/IR/DataLayout.cpp

Modified: llvm/trunk/include/llvm/IR/DataLayout.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/DataLayout.h?rev=202274&r1=202273&r2=202274&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/DataLayout.h (original)
+++ llvm/trunk/include/llvm/IR/DataLayout.h Wed Feb 26 10:49:40 2014
@@ -281,34 +281,18 @@ public:
   /// Layout pointer alignment
   /// FIXME: The defaults need to be removed once all of
   /// the backends/clients are updated.
-  unsigned getPointerABIAlignment(unsigned AS = 0) const {
-    DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
-    if (val == Pointers.end()) {
-      val = Pointers.find(0);
-    }
-    return val->second.ABIAlign;
-  }
+  unsigned getPointerABIAlignment(unsigned AS = 0) const;
 
   /// Return target's alignment for stack-based pointers
   /// FIXME: The defaults need to be removed once all of
   /// the backends/clients are updated.
-  unsigned getPointerPrefAlignment(unsigned AS = 0) const {
-    DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
-    if (val == Pointers.end()) {
-      val = Pointers.find(0);
-    }
-    return val->second.PrefAlign;
-  }
+  unsigned getPointerPrefAlignment(unsigned AS = 0) const;
+
   /// Layout pointer size
   /// FIXME: The defaults need to be removed once all of
   /// the backends/clients are updated.
-  unsigned getPointerSize(unsigned AS = 0) const {
-    DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
-    if (val == Pointers.end()) {
-      val = Pointers.find(0);
-    }
-    return val->second.TypeByteWidth;
-  }
+  unsigned getPointerSize(unsigned AS = 0) const;
+
   /// Layout pointer size, in bits
   /// FIXME: The defaults need to be removed once all of
   /// the backends/clients are updated.

Modified: llvm/trunk/lib/IR/DataLayout.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DataLayout.cpp?rev=202274&r1=202273&r2=202274&view=diff
==============================================================================
--- llvm/trunk/lib/IR/DataLayout.cpp (original)
+++ llvm/trunk/lib/IR/DataLayout.cpp Wed Feb 26 10:49:40 2014
@@ -585,6 +585,30 @@ std::string DataLayout::getStringReprese
   return OS.str();
 }
 
+unsigned DataLayout::getPointerABIAlignment(unsigned AS) const {
+  DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
+  if (val == Pointers.end()) {
+    val = Pointers.find(0);
+  }
+  return val->second.ABIAlign;
+}
+
+unsigned DataLayout::getPointerPrefAlignment(unsigned AS) const {
+  DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
+  if (val == Pointers.end()) {
+    val = Pointers.find(0);
+  }
+  return val->second.PrefAlign;
+}
+
+unsigned DataLayout::getPointerSize(unsigned AS) const {
+  DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
+  if (val == Pointers.end()) {
+    val = Pointers.find(0);
+  }
+  return val->second.TypeByteWidth;
+}
+
 unsigned DataLayout::getPointerTypeSizeInBits(Type *Ty) const {
   assert(Ty->isPtrOrPtrVectorTy() &&
          "This should only be called with a pointer or pointer vector type");





More information about the llvm-commits mailing list