Skip to content
Snippets Groups Projects
  1. Dec 22, 2010
  2. Dec 01, 2010
  3. Aug 25, 2010
  4. Feb 05, 2010
  5. Jan 25, 2010
    • Ted Kremenek's avatar
      Split libAnalysis into two libraries: libAnalysis and libChecker. · 1309f9a3
      Ted Kremenek authored
      (1) libAnalysis is a generic analysis library that can be used by
          Sema.  It defines the CFG, basic dataflow analysis primitives, and
          inexpensive flow-sensitive analyses (e.g. LiveVariables).
      
      (2) libChecker contains the guts of the static analyzer, incuding the
          path-sensitive analysis engine and domain-specific checks.
      
      Now any clients that want to use the frontend to build their own tools
      don't need to link in the entire static analyzer.
      
      This change exposes various obvious cleanups that can be made to the
      layout of files and headers in libChecker.  More changes pending.  :)
      
      This change also exposed a layering violation between AnalysisContext
      and MemRegion.  BlockInvocationContext shouldn't explicitly know about
      BlockDataRegions.  For now I've removed the BlockDataRegion* from
      BlockInvocationContext (removing context-sensitivity; although this
      wasn't used yet).  We need to have a better way to extend
      BlockInvocationContext (and any LocationContext) to add
      context-sensitivty.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94406 91177308-0d34-0410-b5e6-96231b3b80d8
      1309f9a3
  6. Sep 09, 2009
  7. Aug 06, 2009
    • Ted Kremenek's avatar
      Implement lazy "copying" of structures and arrays in RegionStore. While · a5e81f12
      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.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78268 91177308-0d34-0410-b5e6-96231b3b80d8
      a5e81f12
  8. Mar 26, 2009
    • Ted Kremenek's avatar
      analyzer infrastructure: make a bunch of changes to symbolic expressions that · e0e4ebf6
      Ted Kremenek authored
      Zhongxing and I discussed by email.
      
      Main changes:
      - Removed SymIntConstraintVal and SymIntConstraint
      - Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr
      - Added nonloc::SymExprVal to wrap SymExpr
      - SymbolRef is now just a typedef of 'const SymbolData*'
      - Bunch of minor code cleanups in how some methods were invoked (no functionality change)
      
      This changes are part of a long-term plan to have full symbolic expression
      trees. This will be useful for lazily evaluating complicated expressions.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67731 91177308-0d34-0410-b5e6-96231b3b80d8
      e0e4ebf6
  9. Mar 11, 2009
  10. Dec 05, 2008
  11. Nov 22, 2008
  12. Oct 30, 2008
  13. Oct 21, 2008
  14. Oct 17, 2008
  15. Sep 19, 2008
  16. Apr 30, 2008
  17. Apr 22, 2008
  18. Mar 16, 2008
  19. Mar 07, 2008
  20. Mar 06, 2008
  21. Mar 05, 2008
  22. Feb 28, 2008
  23. Feb 19, 2008
  24. Feb 16, 2008
Loading