forked from OSchip/llvm-project
5a1af4e63a
from IRExecutionUnit into a superclass called IRMemoryMap. IRMemoryMap handles all reading and writing, ensuring that areas are kept track of and memory is properly cached (and deleted). Also fixed several cases where we would simply leak binary data in the target process over time. Now the expression objects explicitly own their IRExecutionUnit and delete it when they go away. This is why I had to modify ClangUserExpression, ClangUtilityFunction, and ClangFunction. As a side effect of this, I am removing the JIT mutex for an IRMemoryMap. If it turns out that we need this mutex, I'll add it in then, but right now it's just adding complexity. This is part of a more general project to make expressions fully reusable. The next step is to make materialization and dematerialization use the IRMemoryMap API rather than writing and reading directly from the process's memory. This will allow the IR interpreter to use the same data, but in the host's memory, without having to use a different set of pointers. llvm-svn: 178832 |
||
---|---|---|
.. | ||
ASTDumper.cpp | ||
ASTResultSynthesizer.cpp | ||
ASTStructExtractor.cpp | ||
CMakeLists.txt | ||
ClangASTSource.cpp | ||
ClangExpressionDeclMap.cpp | ||
ClangExpressionParser.cpp | ||
ClangExpressionVariable.cpp | ||
ClangFunction.cpp | ||
ClangPersistentVariables.cpp | ||
ClangUserExpression.cpp | ||
ClangUtilityFunction.cpp | ||
DWARFExpression.cpp | ||
ExpressionSourceCode.cpp | ||
IRDynamicChecks.cpp | ||
IRExecutionUnit.cpp | ||
IRForTarget.cpp | ||
IRInterpreter.cpp | ||
IRMemoryMap.cpp | ||
Makefile |