From d2b465f17a23e13c1f10ef71c739bf9638198bb1 Mon Sep 17 00:00:00 2001 From: Sean Callanan Date: Thu, 9 Feb 2012 03:22:41 +0000 Subject: [PATCH] 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. llvm-svn: 150142 --- lldb/scripts/build-llvm.pl | 4 ++-- lldb/source/Expression/IRDynamicChecks.cpp | 8 +++---- lldb/source/Expression/IRForTarget.cpp | 26 +++++++++++++--------- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/lldb/scripts/build-llvm.pl b/lldb/scripts/build-llvm.pl index 0646519589ed..17de58d3a5b9 100644 --- a/lldb/scripts/build-llvm.pl +++ b/lldb/scripts/build-llvm.pl @@ -21,8 +21,8 @@ our ($llvm_clang_basename, $llvm_clang_dirname) = fileparse ($llvm_clang_outfile 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"; diff --git a/lldb/source/Expression/IRDynamicChecks.cpp b/lldb/source/Expression/IRDynamicChecks.cpp index 0cf812fbc130..9bf1d8b309df 100644 --- a/lldb/source/Expression/IRDynamicChecks.cpp +++ b/lldb/source/Expression/IRDynamicChecks.cpp @@ -512,7 +512,7 @@ private: return false; } - ConstantArray *real_name = dyn_cast(metadata->getOperand(0)); + ConstantDataArray *real_name = dyn_cast(metadata->getOperand(0)); if (!real_name) { @@ -528,12 +528,12 @@ private: 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; diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp index 5cd17083f98f..8b2b11924714 100644 --- a/lldb/source/Expression/IRForTarget.cpp +++ b/lldb/source/Expression/IRForTarget.cpp @@ -312,7 +312,7 @@ IRForTarget::RegisterFunctionMetadata(LLVMContext &context, if (Instruction *user_inst = dyn_cast(user)) { - Constant *name_array = ConstantArray::get(context, StringRef(name)); + Constant *name_array = ConstantDataArray::getString(context, StringRef(name)); ArrayRef md_values(name_array); @@ -891,14 +891,14 @@ IRForTarget::RewriteObjCConstString (llvm::GlobalVariable *ns_str, m_CFStringCreateWithBytes = ConstantExpr::getIntToPtr(CFSCWB_addr_int, CFSCWB_ptr_ty); } - ConstantArray *string_array = NULL; + ConstantDataSequential *string_array = NULL; if (cstr) - string_array = dyn_cast(cstr->getInitializer()); + string_array = dyn_cast(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 @@ IRForTarget::RewriteObjCConstStrings(Function &llvm_function) } */ - ConstantArray *cstr_array = dyn_cast(cstr_global->getInitializer()); + ConstantDataArray *cstr_array = dyn_cast(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 @@ IRForTarget::RewriteObjCSelector (Instruction* selector_load) Constant *omvn_initializer = _objc_meth_var_name_->getInitializer(); - ConstantArray *omvn_initializer_array = dyn_cast(omvn_initializer); + ConstantDataArray *omvn_initializer_array = dyn_cast(omvn_initializer); if (!omvn_initializer_array->isString()) return false; @@ -1488,7 +1488,7 @@ IRForTarget::MaterializeInitializer (uint8_t *data, Constant *initializer) memcpy (data, int_initializer->getValue().getRawData(), m_target_data->getTypeStoreSize(initializer_type)); return true; } - else if (ConstantArray *array_initializer = dyn_cast(initializer)) + else if (ConstantDataArray *array_initializer = dyn_cast(initializer)) { if (array_initializer->isString()) { @@ -1504,7 +1504,13 @@ IRForTarget::MaterializeInitializer (uint8_t *data, Constant *initializer) 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(operand_value); + + if (!operand_constant) + return false; + + if (!MaterializeInitializer(data + (i * element_size), operand_constant)) return false; } } @@ -1926,7 +1932,7 @@ IRForTarget::ReplaceStrings () } else { - ConstantArray *gc_array = dyn_cast(gc); + ConstantDataArray *gc_array = dyn_cast(gc); if (!gc_array) continue;