diff options
author | Sean Callanan <scallanan@apple.com> | 2013-04-17 18:07:40 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2013-04-17 18:07:40 +0000 |
commit | 182bd6c0febb6e0312a6ac9162ee4113ca29deda (patch) | |
tree | 409c4ff755a054754e79ad83d0004937a026206d | |
parent | 892cb486a41b5bf14bb3f40f9394b36a302dd369 (diff) | |
download | bcm5719-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.h | 41 | ||||
-rw-r--r-- | lldb/source/Expression/IRForTarget.cpp | 6 | ||||
-rw-r--r-- | lldb/source/Expression/IRInterpreter.cpp | 49 |
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) |