• Roland Levillain's avatar
    Use unique location catalogs to encode Dex register maps. · a552e1c0
    Roland Levillain authored
    - For each CodeInfo object (i.e. for each method), compute a
      variable index size location catalog  of unique Dex
      register locations.  In Dex register maps, instead of
      storing the actual location of a (live) Dex register,
      store the index of the location catalog entry containing
      that Dex register location.
    - Adjust art::StackMapStream,
      art::CheckReferenceMapVisitor::CheckOptimizedMethod,
      art::StackVisitor::GetVRegFromOptimizedCode, and
      art::StackVisitor::SetVRegFromOptimizedCode.
    - Add LoadBits and StoreBits methods to art::MemoryRegion
      to load and store a block of adjacent bits in a memory
      region.
    - Update compiler/optimizing/stack_map_test.cc.
    - Remove the default value for parameter EmptyFn of
      art::HashMap.  This default value did not seem to make
      sense, as it would create an "empty function" for type Key
      by default, whereas art::HashMap expects an "empty
      function" for type std::pair<Key, Value>.
    
    Change-Id: Id9e49d7756...
    a552e1c0
check_reference_map_visitor.h 4.52 KB