From 1b1bf6e982fc5926960c69e262b1af8898d20812 Mon Sep 17 00:00:00 2001 From: Sean Callanan Date: Thu, 14 Apr 2011 02:01:31 +0000 Subject: [PATCH] Updated LLVM to pick up fixes to the ARM instruction tables. llvm-svn: 129500 --- lldb/scripts/build-llvm.pl | 2 +- .../Expression/ClangExpressionParser.cpp | 22 +++++++++++++++++-- lldb/source/Expression/IRDynamicChecks.cpp | 1 + lldb/source/Expression/IRForTarget.cpp | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lldb/scripts/build-llvm.pl b/lldb/scripts/build-llvm.pl index 3ada7ce6c2fb..37874059422a 100644 --- a/lldb/scripts/build-llvm.pl +++ b/lldb/scripts/build-llvm.pl @@ -26,7 +26,7 @@ our @llvm_clang_slices; # paths to the single architecture static libraries (arc our $llvm_configuration = $ENV{LLVM_CONFIGURATION}; -our $llvm_revision = "128303"; +our $llvm_revision = "129495"; our $llvm_source_dir = "$ENV{SRCROOT}"; our @archs = split (/\s+/, $ENV{ARCHS}); diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp index 59849351e199..0d693ce0aebf 100644 --- a/lldb/source/Expression/ClangExpressionParser.cpp +++ b/lldb/source/Expression/ClangExpressionParser.cpp @@ -244,10 +244,28 @@ ClangExpressionParser::ClangExpressionParser (ExecutionContextScope *exe_scope, // and other things that _are_ target specific really shouldn't just be // using the host triple. This needs to be fixed in a better way. if (target && target->GetArchitecture().IsValid()) - m_compiler->getTargetOpts().Triple = target->GetArchitecture().GetTriple().str(); + { + std::string triple = target->GetArchitecture().GetTriple().str(); + + int dash_count = 0; + for (int i = 0; i < triple.size(); ++i) + { + if (triple[i] == '-') + dash_count++; + if (dash_count == 3) + { + triple.resize(i); + break; + } + } + + m_compiler->getTargetOpts().Triple = triple; + } else + { m_compiler->getTargetOpts().Triple = llvm::sys::getHostTriple(); - + } + // 3. Set up various important bits of infrastructure. m_compiler->createDiagnostics(0, 0); diff --git a/lldb/source/Expression/IRDynamicChecks.cpp b/lldb/source/Expression/IRDynamicChecks.cpp index a84fe8e7b523..584de69501fe 100644 --- a/lldb/source/Expression/IRDynamicChecks.cpp +++ b/lldb/source/Expression/IRDynamicChecks.cpp @@ -18,6 +18,7 @@ #include "lldb/Target/StackFrame.h" #include "llvm/Support/raw_ostream.h" +#include "llvm/Constants.h" #include "llvm/Function.h" #include "llvm/Instructions.h" #include "llvm/Module.h" diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp index a6d1651727f3..4581712ceaab 100644 --- a/lldb/source/Expression/IRForTarget.cpp +++ b/lldb/source/Expression/IRForTarget.cpp @@ -10,6 +10,7 @@ #include "lldb/Expression/IRForTarget.h" #include "llvm/Support/raw_ostream.h" +#include "llvm/Constants.h" #include "llvm/InstrTypes.h" #include "llvm/Instructions.h" #include "llvm/Intrinsics.h"