[Lldb-commits] [lldb] r150142 - in /lldb/trunk: scripts/build-llvm.pl source/Expression/IRDynamicChecks.cpp source/Expression/IRForTarget.cpp

Sean Callanan scallanan at apple.com
Wed Feb 8 19:22:42 PST 2012


Author: spyffe
Date: Wed Feb  8 21:22:41 2012
New Revision: 150142

URL: http://llvm.org/viewvc/llvm-project?rev=150142&view=rev
Log:
Brought LLVM/Clang up to top of tree.  The only
change (besides logging) is that now string
literals in the IR are ConstantDataArrays instead
of ConstantArrays.

Modified:
    lldb/trunk/scripts/build-llvm.pl
    lldb/trunk/source/Expression/IRDynamicChecks.cpp
    lldb/trunk/source/Expression/IRForTarget.cpp

Modified: lldb/trunk/scripts/build-llvm.pl
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/build-llvm.pl?rev=150142&r1=150141&r2=150142&view=diff
==============================================================================
--- lldb/trunk/scripts/build-llvm.pl (original)
+++ lldb/trunk/scripts/build-llvm.pl Wed Feb  8 21:22:41 2012
@@ -21,8 +21,8 @@
 
 our $llvm_configuration = $ENV{LLVM_CONFIGURATION};
 
-our $llvm_revision = "149773";
-our $clang_revision = "149773";
+our $llvm_revision = "150134";
+our $clang_revision = "150134";
 
 our $SRCROOT = "$ENV{SRCROOT}";
 our $llvm_dstroot_zip = "$SRCROOT/llvm.zip";

Modified: lldb/trunk/source/Expression/IRDynamicChecks.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/IRDynamicChecks.cpp?rev=150142&r1=150141&r2=150142&view=diff
==============================================================================
--- lldb/trunk/source/Expression/IRDynamicChecks.cpp (original)
+++ lldb/trunk/source/Expression/IRDynamicChecks.cpp Wed Feb  8 21:22:41 2012
@@ -512,7 +512,7 @@
                 return false;
             }
             
-            ConstantArray *real_name = dyn_cast<ConstantArray>(metadata->getOperand(0));
+            ConstantDataArray *real_name = dyn_cast<ConstantDataArray>(metadata->getOperand(0));
             
             if (!real_name)
             {
@@ -528,12 +528,12 @@
                 return false;
             }
             
-            if (log)
-                log->Printf("Found call to %s: %s\n", real_name->getAsString().c_str(), PrintValue(call_inst).c_str());
-            
             std::string name_str = real_name->getAsString();
             const char* name_cstr = name_str.c_str();
             
+            if (log)
+                log->Printf("Found call to %s: %s\n", name_cstr, PrintValue(call_inst).c_str());
+            
             if (name_str.find("objc_msgSend") == std::string::npos)
                 return true;
             

Modified: lldb/trunk/source/Expression/IRForTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/IRForTarget.cpp?rev=150142&r1=150141&r2=150142&view=diff
==============================================================================
--- lldb/trunk/source/Expression/IRForTarget.cpp (original)
+++ lldb/trunk/source/Expression/IRForTarget.cpp Wed Feb  8 21:22:41 2012
@@ -312,7 +312,7 @@
                 
         if (Instruction *user_inst = dyn_cast<Instruction>(user))
         {
-            Constant *name_array = ConstantArray::get(context, StringRef(name));
+            Constant *name_array = ConstantDataArray::getString(context, StringRef(name));
             
             ArrayRef<Value *> md_values(name_array);
             
@@ -891,14 +891,14 @@
         m_CFStringCreateWithBytes = ConstantExpr::getIntToPtr(CFSCWB_addr_int, CFSCWB_ptr_ty);
     }
     
-    ConstantArray *string_array = NULL;
+    ConstantDataSequential *string_array = NULL;
     
     if (cstr)
-        string_array = dyn_cast<ConstantArray>(cstr->getInitializer());
+        string_array = dyn_cast<ConstantDataSequential>(cstr->getInitializer());
                             
     Constant *alloc_arg         = Constant::getNullValue(i8_ptr_ty);
     Constant *bytes_arg         = cstr ? ConstantExpr::getBitCast(cstr, i8_ptr_ty) : Constant::getNullValue(i8_ptr_ty);
-    Constant *numBytes_arg      = ConstantInt::get(intptr_ty, cstr ? string_array->getType()->getNumElements() - 1 : 0, false);
+    Constant *numBytes_arg      = ConstantInt::get(intptr_ty, cstr ? string_array->getNumElements() - 1 : 0, false);
     Constant *encoding_arg      = ConstantInt::get(i32_ty, 0x0600, false); /* 0x0600 is kCFStringEncodingASCII */
     Constant *isExternal_arg    = ConstantInt::get(i8_ty, 0x0, false); /* 0x0 is false */
     
@@ -1109,12 +1109,12 @@
             }
             */
             
-            ConstantArray *cstr_array = dyn_cast<ConstantArray>(cstr_global->getInitializer());
+            ConstantDataArray *cstr_array = dyn_cast<ConstantDataArray>(cstr_global->getInitializer());
             
             if (log)
             {
                 if (cstr_array)
-                    log->Printf("Found NSString constant %s, which contains \"%s\"", value_name_cstr, cstr_array->getAsString().c_str());
+                    log->Printf("Found NSString constant %s, which contains \"%s\"", value_name_cstr, cstr_array->getAsString().str().c_str());
                 else
                     log->Printf("Found NSString constant %s, which contains \"\"", value_name_cstr);
             }
@@ -1224,7 +1224,7 @@
     
     Constant *omvn_initializer = _objc_meth_var_name_->getInitializer();
 
-    ConstantArray *omvn_initializer_array = dyn_cast<ConstantArray>(omvn_initializer);
+    ConstantDataArray *omvn_initializer_array = dyn_cast<ConstantDataArray>(omvn_initializer);
     
     if (!omvn_initializer_array->isString())
         return false;
@@ -1488,7 +1488,7 @@
         memcpy (data, int_initializer->getValue().getRawData(), m_target_data->getTypeStoreSize(initializer_type));
         return true;
     }
-    else if (ConstantArray *array_initializer = dyn_cast<ConstantArray>(initializer))
+    else if (ConstantDataArray *array_initializer = dyn_cast<ConstantDataArray>(initializer))
     {
         if (array_initializer->isString())
         {
@@ -1504,7 +1504,13 @@
             
             for (int i = 0; i < array_initializer->getNumOperands(); ++i)
             {
-                if (!MaterializeInitializer(data + (i * element_size), array_initializer->getOperand(i)))
+                Value *operand_value = array_initializer->getOperand(i);
+                Constant *operand_constant = dyn_cast<Constant>(operand_value);
+                
+                if (!operand_constant)
+                    return false;
+                
+                if (!MaterializeInitializer(data + (i * element_size), operand_constant))
                     return false;
             }
         }
@@ -1926,7 +1932,7 @@
         }
         else
         {
-            ConstantArray *gc_array = dyn_cast<ConstantArray>(gc);
+            ConstantDataArray *gc_array = dyn_cast<ConstantDataArray>(gc);
 
             if (!gc_array)
                 continue;





More information about the lldb-commits mailing list