[llvm-commits] [llvm] r76841 - in /llvm/trunk: include/llvm/LLVMContext.h include/llvm/MDNode.h lib/AsmParser/LLParser.cpp lib/Bitcode/Reader/BitcodeReader.cpp lib/Bitcode/Writer/BitcodeWriter.cpp lib/VMCore/AsmWriter.cpp lib/VMCore/LLVMContext.cpp lib/VMCore/LLVMContextImpl.cpp lib/VMCore/LLVMContextImpl.h unittests/VMCore/MetadataTest.cpp

Devang Patel dpatel at apple.com
Wed Jul 22 19:01:25 PDT 2009


Author: dpatel
Date: Wed Jul 22 21:00:51 2009
New Revision: 76841

URL: http://llvm.org/viewvc/llvm-project?rev=76841&view=rev
Log:
MDString
- Rename member function size(). New name is length().
- Store string beginning and length. Earlier it used to store string end.


Modified:
    llvm/trunk/include/llvm/LLVMContext.h
    llvm/trunk/include/llvm/MDNode.h
    llvm/trunk/lib/AsmParser/LLParser.cpp
    llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
    llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
    llvm/trunk/lib/VMCore/AsmWriter.cpp
    llvm/trunk/lib/VMCore/LLVMContext.cpp
    llvm/trunk/lib/VMCore/LLVMContextImpl.cpp
    llvm/trunk/lib/VMCore/LLVMContextImpl.h
    llvm/trunk/unittests/VMCore/MetadataTest.cpp

Modified: llvm/trunk/include/llvm/LLVMContext.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LLVMContext.h?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/include/llvm/LLVMContext.h (original)
+++ llvm/trunk/include/llvm/LLVMContext.h Wed Jul 22 21:00:51 2009
@@ -232,7 +232,7 @@
   MDNode* getMDNode(Value* const* Vals, unsigned NumVals);
   
   // MDString accessors
-  MDString* getMDString(const char *StrBegin, const char *StrEnd);
+  MDString* getMDString(const char *StrBegin, unsigned Length);
   MDString* getMDString(const std::string &Str);
   
   // FunctionType accessors

Modified: llvm/trunk/include/llvm/MDNode.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MDNode.h?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/include/llvm/MDNode.h (original)
+++ llvm/trunk/include/llvm/MDNode.h Wed Jul 22 21:00:51 2009
@@ -64,16 +64,17 @@
 ///
 class MDString : public MetadataBase {
   MDString(const MDString &);            // DO NOT IMPLEMENT
-  const char *StrBegin, *StrEnd;
+  const char *StrBegin;
+  unsigned StrLength;
   friend class LLVMContextImpl;
 
 protected:
-  explicit MDString(const char *begin, const char *end)
+  explicit MDString(const char *begin, unsigned l)
     : MetadataBase(Type::MetadataTy, Value::MDStringVal),
-      StrBegin(begin), StrEnd(end) {}
+      StrBegin(begin), StrLength(l) {}
 
 public:
-  intptr_t size() const { return StrEnd - StrBegin; }
+  unsigned length() const { return StrLength; }
 
   /// begin() - Pointer to the first byte of the string.
   ///
@@ -81,7 +82,7 @@
 
   /// end() - Pointer to one byte past the end of the string.
   ///
-  const char *end() const { return StrEnd; }
+  const char *end() const { return StrBegin + length(); }
 
   /// Methods for support type inquiry through isa, cast, and dyn_cast:
   static inline bool classof(const MDString *) { return true; }

Modified: llvm/trunk/lib/AsmParser/LLParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLParser.cpp?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/lib/AsmParser/LLParser.cpp (original)
+++ llvm/trunk/lib/AsmParser/LLParser.cpp Wed Jul 22 21:00:51 2009
@@ -373,7 +373,7 @@
 bool LLParser::ParseMDString(MetadataBase *&MDS) {
   std::string Str;
   if (ParseStringConstant(Str)) return true;
-  MDS = Context.getMDString(Str.data(), Str.data() + Str.size());
+  MDS = Context.getMDString(Str.data(), Str.size());
   return false;
 }
 

Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Wed Jul 22 21:00:51 2009
@@ -758,7 +758,7 @@
       for (unsigned i = 0; i != MDStringLength; ++i)
         String[i] = Record[i];
       Value *V = 
-        Context.getMDString(String.c_str(), String.c_str() + MDStringLength);
+        Context.getMDString(String.c_str(), MDStringLength);
       ValueList.AssignValue(V, NextValueNo++);
       break;
     }

Modified: llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (original)
+++ llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp Wed Jul 22 21:00:51 2009
@@ -512,7 +512,7 @@
 
        // Code: [strchar x N]
        const char *StrBegin = MDS->begin();
-       for (unsigned i = 0, e = MDS->size(); i != e; ++i)
+       for (unsigned i = 0, e = MDS->length(); i != e; ++i)
         Record.push_back(StrBegin[i]);
     
        // Emit the finished record.

Modified: llvm/trunk/lib/VMCore/AsmWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AsmWriter.cpp?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/lib/VMCore/AsmWriter.cpp (original)
+++ llvm/trunk/lib/VMCore/AsmWriter.cpp Wed Jul 22 21:00:51 2009
@@ -1139,7 +1139,7 @@
 
   if (const MDString *MDS = dyn_cast<MDString>(V)) {
     Out << "!\"";
-    PrintEscapedString(MDS->begin(), MDS->size(), Out);
+    PrintEscapedString(MDS->begin(), MDS->length(), Out);
     Out << '"';
     return;
   }
@@ -1983,7 +1983,7 @@
     TypePrinter.print(MDS->getType(), OS);
     OS << ' ';
     OS << "!\"";
-    PrintEscapedString(MDS->begin(), MDS->size(), OS);
+    PrintEscapedString(MDS->begin(), MDS->length(), OS);
     OS << '"';
   } else if (const MDNode *N = dyn_cast<MDNode>(this)) {
     SlotTracker SlotTable(N);

Modified: llvm/trunk/lib/VMCore/LLVMContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/LLVMContext.cpp?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/lib/VMCore/LLVMContext.cpp (original)
+++ llvm/trunk/lib/VMCore/LLVMContext.cpp Wed Jul 22 21:00:51 2009
@@ -551,12 +551,12 @@
 }
 
 // MDString accessors
-MDString* LLVMContext::getMDString(const char *StrBegin, const char *StrEnd) {
-  return pImpl->getMDString(StrBegin, StrEnd);
+MDString* LLVMContext::getMDString(const char *StrBegin, unsigned StrLength) {
+  return pImpl->getMDString(StrBegin, StrLength);
 }
 
 MDString* LLVMContext::getMDString(const std::string &Str) {
-  return getMDString(Str.data(), Str.data()+Str.size());
+  return getMDString(Str.data(), Str.size());
 }
 
 // FunctionType accessors

Modified: llvm/trunk/lib/VMCore/LLVMContextImpl.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/LLVMContextImpl.cpp?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/lib/VMCore/LLVMContextImpl.cpp (original)
+++ llvm/trunk/lib/VMCore/LLVMContextImpl.cpp Wed Jul 22 21:00:51 2009
@@ -394,13 +394,13 @@
 }
 
 MDString *LLVMContextImpl::getMDString(const char *StrBegin,
-                                       const char *StrEnd) {
+                                       unsigned StrLength) {
   sys::SmartScopedWriter<true> Writer(ConstantsLock);
-  StringMapEntry<MDString *> &Entry = MDStringCache.GetOrCreateValue(
-                                        StrBegin, StrEnd);
+  StringMapEntry<MDString *> &Entry = 
+    MDStringCache.GetOrCreateValue(StrBegin, StrBegin + StrLength);
   MDString *&S = Entry.getValue();
   if (!S) S = new MDString(Entry.getKeyData(),
-                           Entry.getKeyData() + Entry.getKeyLength());
+                           Entry.getKeyLength());
 
   return S;
 }
@@ -460,7 +460,8 @@
 
 void LLVMContextImpl::erase(MDString *M) {
   sys::SmartScopedWriter<true> Writer(ConstantsLock);
-  MDStringCache.erase(MDStringCache.find(M->StrBegin, M->StrEnd));
+  MDStringCache.erase(MDStringCache.find(M->StrBegin, 
+                                         M->StrBegin + M->length()));
 }
 
 void LLVMContextImpl::erase(MDNode *M) {

Modified: llvm/trunk/lib/VMCore/LLVMContextImpl.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/LLVMContextImpl.h?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/lib/VMCore/LLVMContextImpl.h (original)
+++ llvm/trunk/lib/VMCore/LLVMContextImpl.h Wed Jul 22 21:00:51 2009
@@ -133,7 +133,7 @@
   
   ConstantFP *getConstantFP(const APFloat &V);
   
-  MDString *getMDString(const char *StrBegin, const char *StrEnd);
+  MDString *getMDString(const char *StrBegin, unsigned StrLength);
   
   MDNode *getMDNode(Value*const* Vals, unsigned NumVals);
   

Modified: llvm/trunk/unittests/VMCore/MetadataTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/VMCore/MetadataTest.cpp?rev=76841&r1=76840&r2=76841&view=diff

==============================================================================
--- llvm/trunk/unittests/VMCore/MetadataTest.cpp (original)
+++ llvm/trunk/unittests/VMCore/MetadataTest.cpp Wed Jul 22 21:00:51 2009
@@ -23,9 +23,9 @@
 // MDString objects, even with the same string pointer and nulls in the string.
 TEST(MDStringTest, CreateDifferent) {
   char x[3] = { 'f', 0, 'A' };
-  MDString *s1 = getGlobalContext().getMDString(&x[0], &x[3]);
+  MDString *s1 = getGlobalContext().getMDString(&x[0], 3);
   x[2] = 'B';
-  MDString *s2 = getGlobalContext().getMDString(&x[0], &x[3]);
+  MDString *s2 = getGlobalContext().getMDString(&x[0], 3);
   EXPECT_NE(s1, s2);
 }
 
@@ -35,8 +35,8 @@
   char x[4] = { 'a', 'b', 'c', 'X' };
   char y[4] = { 'a', 'b', 'c', 'Y' };
 
-  MDString *s1 = getGlobalContext().getMDString(&x[0], &x[3]);
-  MDString *s2 = getGlobalContext().getMDString(&y[0], &y[3]);
+  MDString *s1 = getGlobalContext().getMDString(&x[0], 3);
+  MDString *s2 = getGlobalContext().getMDString(&y[0], 3);
   EXPECT_EQ(s1, s2);
 }
 
@@ -44,7 +44,7 @@
 TEST(MDStringTest, PrintingSimple) {
   char *str = new char[13];
   strncpy(str, "testing 1 2 3", 13);
-  MDString *s = getGlobalContext().getMDString(str, str+13);
+  MDString *s = getGlobalContext().getMDString(str, 13);
   strncpy(str, "aaaaaaaaaaaaa", 13);
   delete[] str;
 
@@ -56,7 +56,7 @@
 // Test printing of MDString with non-printable characters.
 TEST(MDStringTest, PrintingComplex) {
   char str[5] = {0, '\n', '"', '\\', -1};
-  MDString *s = getGlobalContext().getMDString(str+0, str+5);
+  MDString *s = getGlobalContext().getMDString(str+0, 5);
   std::ostringstream oss;
   s->print(oss);
   EXPECT_STREQ("metadata !\"\\00\\0A\\22\\5C\\FF\"", oss.str().c_str());
@@ -67,8 +67,8 @@
   char x[3] = { 'a', 'b', 'c' };
   char y[3] = { '1', '2', '3' };
 
-  MDString *s1 = getGlobalContext().getMDString(&x[0], &x[3]);
-  MDString *s2 = getGlobalContext().getMDString(&y[0], &y[3]);
+  MDString *s1 = getGlobalContext().getMDString(&x[0], 3);
+  MDString *s2 = getGlobalContext().getMDString(&y[0], 3);
   ConstantInt *CI = getGlobalContext().getConstantInt(APInt(8, 0));
 
   std::vector<Value *> V;





More information about the llvm-commits mailing list