summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2013-04-05 02:22:57 +0000
committerSean Callanan <scallanan@apple.com>2013-04-05 02:22:57 +0000
commit5a1af4e63a068efed4ab3218a63d2147404cc0fc (patch)
tree2efca166de2c880075a495d354beb12d7bcec8bc /clang/lib
parent2f91004b64d360e80f244ab0a5e35f975c4e3c76 (diff)
downloadbcm5719-llvm-5a1af4e63a068efed4ab3218a63d2147404cc0fc.tar.gz
bcm5719-llvm-5a1af4e63a068efed4ab3218a63d2147404cc0fc.zip
Factored out memory access into the target process
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
Diffstat (limited to 'clang/lib')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud