summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2013-04-17 18:07:40 +0000
committerSean Callanan <scallanan@apple.com>2013-04-17 18:07:40 +0000
commit182bd6c0febb6e0312a6ac9162ee4113ca29deda (patch)
tree409c4ff755a054754e79ad83d0004937a026206d
parent892cb486a41b5bf14bb3f40f9394b36a302dd369 (diff)
downloadbcm5719-llvm-182bd6c0febb6e0312a6ac9162ee4113ca29deda.tar.gz
bcm5719-llvm-182bd6c0febb6e0312a6ac9162ee4113ca29deda.zip
Made the IRInterpreter's methods static, since
it doesn't actually hold any important state. llvm-svn: 179702
-rw-r--r--lldb/include/lldb/Expression/IRInterpreter.h41
-rw-r--r--lldb/source/Expression/IRForTarget.cpp6
-rw-r--r--lldb/source/Expression/IRInterpreter.cpp49
3 files changed, 35 insertions, 61 deletions
diff --git a/lldb/include/lldb/Expression/IRInterpreter.h b/lldb/include/lldb/Expression/IRInterpreter.h
index f3c485123e2..8039360918a 100644
--- a/lldb/include/lldb/Expression/IRInterpreter.h
+++ b/lldb/include/lldb/Expression/IRInterpreter.h
@@ -41,26 +41,6 @@ class IRInterpreter
{
public:
//------------------------------------------------------------------
- /// Constructor
- ///
- /// @param[in] decl_map
- /// The list of externally-referenced variables for the expression,
- /// for use in looking up globals and allocating the argument
- /// struct. See the documentation for ClangExpressionDeclMap.
- ///
- /// @param[in] error_stream
- /// If non-NULL, a stream on which errors can be printed.
- //------------------------------------------------------------------
- IRInterpreter(lldb_private::ClangExpressionDeclMap *decl_map,
- lldb_private::IRMemoryMap &memory_map,
- lldb_private::Stream *error_stream);
-
- //------------------------------------------------------------------
- /// Destructor
- //------------------------------------------------------------------
- ~IRInterpreter();
-
- //------------------------------------------------------------------
/// Run the IR interpreter on a single function
///
/// @param[in] result
@@ -87,23 +67,26 @@ public:
/// @return
/// True on success; false otherwise
//------------------------------------------------------------------
- bool
- maybeRunOnFunction (lldb::ClangExpressionVariableSP &result,
+ static bool
+ maybeRunOnFunction (lldb_private::ClangExpressionDeclMap *decl_map,
+ lldb_private::IRMemoryMap &memory_map,
+ lldb_private::Stream *error_stream,
+ lldb::ClangExpressionVariableSP &result,
const lldb_private::ConstString &result_name,
lldb_private::TypeFromParser result_type,
llvm::Function &llvm_function,
llvm::Module &llvm_module,
lldb_private::Error &err);
-private:
- lldb_private::ClangExpressionDeclMap *m_decl_map; ///< The DeclMap containing the Decls
- lldb_private::IRMemoryMap &m_memory_map; ///< The IRMemoryMap to use when accessing memory
-
- bool
+private:
+ static bool
supportsFunction (llvm::Function &llvm_function,
lldb_private::Error &err);
- bool
- runOnFunction (lldb::ClangExpressionVariableSP &result,
+ static bool
+ runOnFunction (lldb_private::ClangExpressionDeclMap *decl_map,
+ lldb_private::IRMemoryMap &memory_map,
+ lldb_private::Stream *error_stream,
+ lldb::ClangExpressionVariableSP &result,
const lldb_private::ConstString &result_name,
lldb_private::TypeFromParser result_type,
llvm::Function &llvm_function,
diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp
index 574078049d5..2b3618a53a7 100644
--- a/lldb/source/Expression/IRForTarget.cpp
+++ b/lldb/source/Expression/IRForTarget.cpp
@@ -2806,11 +2806,7 @@ IRForTarget::runOnModule (Module &llvm_module)
if (m_decl_map && m_execution_policy != lldb_private::eExecutionPolicyAlways)
{
- IRInterpreter interpreter (m_decl_map,
- m_memory_map,
- m_error_stream);
-
- interpreter.maybeRunOnFunction(m_const_result, m_result_name, m_result_type, *function, llvm_module, m_interpreter_error);
+ IRInterpreter::maybeRunOnFunction(m_decl_map, m_memory_map, m_error_stream,m_const_result, m_result_name, m_result_type, *function, llvm_module, m_interpreter_error);
if (m_interpreter_error.Success())
return true;
diff --git a/lldb/source/Expression/IRInterpreter.cpp b/lldb/source/Expression/IRInterpreter.cpp
index d3328d56792..391fa3cde9e 100644
--- a/lldb/source/Expression/IRInterpreter.cpp
+++ b/lldb/source/Expression/IRInterpreter.cpp
@@ -26,20 +26,6 @@
using namespace llvm;
-IRInterpreter::IRInterpreter(lldb_private::ClangExpressionDeclMap *decl_map,
- lldb_private::IRMemoryMap &memory_map,
- lldb_private::Stream *error_stream) :
- m_decl_map(decl_map),
- m_memory_map(memory_map)
-{
-
-}
-
-IRInterpreter::~IRInterpreter()
-{
-
-}
-
static std::string
PrintValue(const Value *value, bool truncate = false)
{
@@ -806,7 +792,10 @@ public:
};
bool
-IRInterpreter::maybeRunOnFunction (lldb::ClangExpressionVariableSP &result,
+IRInterpreter::maybeRunOnFunction (lldb_private::ClangExpressionDeclMap *decl_map,
+ lldb_private::IRMemoryMap &memory_map,
+ lldb_private::Stream *error_stream,
+ lldb::ClangExpressionVariableSP &result,
const lldb_private::ConstString &result_name,
lldb_private::TypeFromParser result_type,
Function &llvm_function,
@@ -814,7 +803,10 @@ IRInterpreter::maybeRunOnFunction (lldb::ClangExpressionVariableSP &result,
lldb_private::Error &err)
{
if (supportsFunction (llvm_function, err))
- return runOnFunction(result,
+ return runOnFunction(decl_map,
+ memory_map,
+ error_stream,
+ result,
result_name,
result_type,
llvm_function,
@@ -927,7 +919,10 @@ IRInterpreter::supportsFunction (Function &llvm_function,
}
bool
-IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
+IRInterpreter::runOnFunction (lldb_private::ClangExpressionDeclMap *decl_map,
+ lldb_private::IRMemoryMap &memory_map,
+ lldb_private::Stream *error_stream,
+ lldb::ClangExpressionVariableSP &result,
const lldb_private::ConstString &result_name,
lldb_private::TypeFromParser result_type,
Function &llvm_function,
@@ -938,7 +933,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
DataLayout target_data(&llvm_module);
- InterpreterStackFrame frame(target_data, m_decl_map, m_memory_map);
+ InterpreterStackFrame frame(target_data, decl_map, memory_map);
uint32_t num_insts = 0;
@@ -1117,7 +1112,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
lldb_private::Error write_error;
- m_memory_map.WritePointerToMemory(P, R, write_error);
+ memory_map.WritePointerToMemory(P, R, write_error);
if (!write_error.Success())
{
@@ -1126,8 +1121,8 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
err.SetErrorToGenericError();
err.SetErrorString(memory_write_error);
lldb_private::Error free_error;
- m_memory_map.Free(P, free_error);
- m_memory_map.Free(R, free_error);
+ memory_map.Free(P, free_error);
+ memory_map.Free(R, free_error);
return false;
}
@@ -1514,7 +1509,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
lldb::addr_t R;
lldb_private::Error read_error;
- m_memory_map.ReadPointerFromMemory(&R, P, read_error);
+ memory_map.ReadPointerFromMemory(&R, P, read_error);
if (!read_error.Success())
{
@@ -1529,7 +1524,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
lldb_private::DataBufferHeap buffer(target_size, 0);
read_error.Clear();
- m_memory_map.ReadMemory(buffer.GetBytes(), R, buffer.GetByteSize(), read_error);
+ memory_map.ReadMemory(buffer.GetBytes(), R, buffer.GetByteSize(), read_error);
if (!read_error.Success())
{
if (log)
@@ -1540,7 +1535,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
}
lldb_private::Error write_error;
- m_memory_map.WriteMemory(D, buffer.GetBytes(), buffer.GetByteSize(), write_error);
+ memory_map.WriteMemory(D, buffer.GetBytes(), buffer.GetByteSize(), write_error);
if (!write_error.Success())
{
if (log)
@@ -1630,7 +1625,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
lldb::addr_t R;
lldb_private::Error read_error;
- m_memory_map.ReadPointerFromMemory(&R, P, read_error);
+ memory_map.ReadPointerFromMemory(&R, P, read_error);
if (!read_error.Success())
{
@@ -1645,7 +1640,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
lldb_private::DataBufferHeap buffer(target_size, 0);
read_error.Clear();
- m_memory_map.ReadMemory(buffer.GetBytes(), D, buffer.GetByteSize(), read_error);
+ memory_map.ReadMemory(buffer.GetBytes(), D, buffer.GetByteSize(), read_error);
if (!read_error.Success())
{
if (log)
@@ -1656,7 +1651,7 @@ IRInterpreter::runOnFunction (lldb::ClangExpressionVariableSP &result,
}
lldb_private::Error write_error;
- m_memory_map.WriteMemory(R, buffer.GetBytes(), buffer.GetByteSize(), write_error);
+ memory_map.WriteMemory(R, buffer.GetBytes(), buffer.GetByteSize(), write_error);
if (!write_error.Success())
{
if (log)
OpenPOWER on IntegriCloud