Skip to content
  1. Mar 19, 2013
    • Sean Callanan's avatar
      Refactored the expression parser so that the IR · 8dfb68e0
      Sean Callanan authored
      and the JITted code are managed by a standalone
      class that handles memory management itself.
      
      I have removed RecordingMemoryManager and
      ProcessDataAllocator, which filled similar roles
      and had confusing ownership, with a common class
      called IRExecutionUnit.  The IRExecutionUnit
      manages all allocations ever made for an expression
      and frees them when it goes away.  It also contains
      the code generator and can vend the Module for an
      expression to other clases.
      
      The end goal here is to make the output of the
      expression parser re-usable; that is, to avoid
      re-parsing when re-parsing isn't necessary.
      
      I've also cleaned up some code and used weak pointers
      in more places.  Please let me know if you see any
      leaks; I checked myself as well but I might have
      missed a case.
      
      llvm-svn: 177364
      8dfb68e0
  2. Mar 14, 2013
  3. Mar 12, 2013
  4. Mar 10, 2013
  5. Mar 09, 2013
  6. Mar 08, 2013
    • Sean Callanan's avatar
      Added very lightweight, statically-allocated · 8106d808
      Sean Callanan authored
      counters for a variety of metrics associated
      with expression parsing.  This should give some
      idea of how much work the expression parser is
      doing on Clang's behalf, and help with hopefully
      reducing that load over time.
      
      <rdar://problem/13210748> Audit type search/import for expressions
      
      llvm-svn: 176714
      8106d808
  7. Mar 06, 2013
  8. Mar 04, 2013
    • Greg Clayton's avatar
      <rdar://problem/13338643> · 9422dd64
      Greg Clayton authored
      DWARF with .o files now uses 40-60% less memory!
      
      Big fixes include:
      - Change line table internal representation to contain "file addresses". Since each line table is owned by a compile unit that is owned by a module, it makes address translation into lldb_private::Address easy to do when needed.
      - Removed linked address members/methods from lldb_private::Section and lldb_private::Address
      - lldb_private::LineTable can now relink itself using a FileRangeMap to make it easier to re-link line tables in the future
      - Added ObjectFile::ClearSymtab() so that we can get rid of the object file symbol tables after we parse them once since they are not needed and kept memory allocated for no reason
      - Moved the m_sections_ap (std::auto_ptr to section list) and m_symtab_ap (std::auto_ptr to the lldb_private::Symtab) out of each of the ObjectFile subclasses and put it into lldb_private::ObjectFile.
      - Changed how the debug map is parsed and stored to be able to:
          - Lazily parse the debug map for each object file
          - not require the address map for a .o file until debug information is linked for a .o file
      
      llvm-svn: 176454
      9422dd64
  9. Mar 02, 2013
  10. Feb 28, 2013
    • Sean Callanan's avatar
      Fixed some problems with type deportation: · 933ca2e2
      Sean Callanan authored
        - made sure we tell Clang not to try to
          complete the type since it can't be
          completed from its origin any more; and
      
        - fixed a silly bug where we tried to
          forget about the original decl's origins
          rather than the deported decl's origin.
      
      These produced some crashes in ptr_refs,
      especially under libgmalloc.
      
      <rdar://problem/13256150>
      
      llvm-svn: 176233
      933ca2e2
  11. Feb 27, 2013
  12. Feb 23, 2013
    • Greg Clayton's avatar
      <rdar://problem/13265297> · 72310355
      Greg Clayton authored
      StackFrame assumes m_sc is additive, but m_sc can lose its target. So now the SymbolContext::Clear() method takes a bool that indicates if the target should be cleared. Modified all existing code to properly set the bool argument.
      
      llvm-svn: 175953
      72310355
  13. Feb 22, 2013
  14. Feb 21, 2013
  15. Feb 20, 2013
  16. Feb 16, 2013
  17. Feb 14, 2013
  18. Feb 13, 2013
    • Greg Clayton's avatar
      <rdar://problem/13210494> · a66c4d96
      Greg Clayton authored
      Parse objective C information as efficiently as possible and without taking dangerous runtime locks.
      
      Reworked the way objective C information is parsed by:
      1 - don't read all class names up front, this is about 500K of data with names
      2 - add a 32 bit hash map that maps a hash of a name to the Class pointer (isa)
      3 - Improved name lookups by using the new hash map
      4 - split up reading the objc runtime info into dynamic and shared cache since the shared cache only needs to be read once.
      5 - When reading all isa values, also get the 32 bit hash instead of the name
      6 - Read names lazily now that we don't need all names up front
      7 - Allow the hash maps to not be there and still have this function correctly
      
      There is dead code in here with all of the various methods I tried. I want to check this in first to not lose any of it in case we need to revert to any of the extra code. I will promptly cleanup and commit again.
      
      llvm-svn: 175101
      a66c4d96
    • Sean Callanan's avatar
      Made NULL, nil, and Nil use the appropriate · d7739824
      Sean Callanan authored
      builtins.
      
      <rdar://problem/13204027>
      
      llvm-svn: 175091
      d7739824
  19. Feb 12, 2013
  20. Feb 09, 2013
  21. Feb 07, 2013
  22. Feb 01, 2013
  23. Jan 31, 2013
  24. Jan 29, 2013
  25. Jan 28, 2013
  26. Jan 25, 2013
    • Greg Clayton's avatar
      <rdar://problem/13069948> · c7bece56
      Greg Clayton authored
      Major fixed to allow reading files that are over 4GB. The main problems were that the DataExtractor was using 32 bit offsets as a data cursor, and since we mmap all of our object files we could run into cases where if we had a very large core file that was over 4GB, we were running into the 4GB boundary.
      
      So I defined a new "lldb::offset_t" which should be used for all file offsets.
      
      After making this change, I enabled warnings for data loss and for enexpected implicit conversions temporarily and found a ton of things that I fixed.
      
      Any functions that take an index internally, should use "size_t" for any indexes and also should return "size_t" for any sizes of collections.
      
      llvm-svn: 173463
      c7bece56
  27. Jan 22, 2013
  28. Jan 19, 2013
Loading