Skip to content
  • Ted Kremenek's avatar
    Implement lazy "copying" of structures and arrays in RegionStore. While · fa41714d
    Ted Kremenek authored
    RegionStore already lazily abstracted the contents of arrays and structs, when
    doing an assignment from one array/struct to another we did an explicit
    element-wise copy, which resulted in a loss of laziness and huge performance
    problem when analyzing many code bases.
    
    Now RegionStoreManager handles such assignments using a new SVal could
    'LazyCompoundSVal', which basically means the value of a given struct or array
    (a MemRegion*) in a specific state (GRState). When we do a load from a field
    whose encompassing struct binds to a LazyCompoundSVal, we essentially do a field
    lookup in the original structure. This means we have essentially zero copying of
    data for structs/arrays and everything stays lazy.
    
    llvm-svn: 78268
    fa41714d
Loading