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
This commit is contained in:
parent
0cfd5bd67f
commit
d2b465f17a
|
@ -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";
|
||||
|
|
|
@ -512,7 +512,7 @@ private:
|
|||
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 @@ 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;
|
||||
|
||||
|
|
|
@ -312,7 +312,7 @@ IRForTarget::RegisterFunctionMetadata(LLVMContext &context,
|
|||
|
||||
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 @@ 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<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 @@ IRForTarget::RewriteObjCConstStrings(Function &llvm_function)
|
|||
}
|
||||
*/
|
||||
|
||||
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 @@ IRForTarget::RewriteObjCSelector (Instruction* selector_load)
|
|||
|
||||
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 @@ 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<ConstantArray>(initializer))
|
||||
else if (ConstantDataArray *array_initializer = dyn_cast<ConstantDataArray>(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<Constant>(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<ConstantArray>(gc);
|
||||
ConstantDataArray *gc_array = dyn_cast<ConstantDataArray>(gc);
|
||||
|
||||
if (!gc_array)
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue