Skip to content
  • Sean Callanan's avatar
    Factored out memory access into the target process · 5a1af4e6
    Sean Callanan authored
    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
    5a1af4e6
Loading