Skip to content
  1. Mar 24, 2012
  2. Mar 23, 2012
  3. Mar 22, 2012
  4. Mar 21, 2012
  5. Mar 18, 2012
    • Jordy Rose's avatar
      [analyzer] Use a FoldingSet to cache simple RetainSummary instances, rather... · 61c974b4
      Jordy Rose authored
      [analyzer] Use a FoldingSet to cache simple RetainSummary instances, rather than explicitly keeping DoNothing and StopTracking summaries and nothing else.
      
      I tried to test the effects of this change on memory usage and run time, but what I saw on retain-release.m was indistinguishable from noise (debug and release builds). Even so, some caveman profiling showed 101 cache hits that we would have generated new summaries for before (i.e. not default or stop summaries), and the more code we analyze, the more memory we should save.
      
      Maybe we should have a standard project for benchmarking the retain count checker's memory and time?
      
      llvm-svn: 153007
      61c974b4
  6. Mar 17, 2012
  7. Mar 11, 2012
  8. Mar 10, 2012
  9. Mar 09, 2012
    • Ted Kremenek's avatar
      [analyzer] Implement basic path diagnostic pruning based on "interesting" symbols and regions. · 1e809b4c
      Ted Kremenek authored
      Essentially, a bug centers around a story for various symbols and regions.  We should only include
      the path diagnostic events that relate to those symbols and regions.
      
      The pruning is done by associating a set of interesting symbols and regions with a BugReporter, which
      can be modified at BugReport creation or by BugReporterVisitors.
      
      This patch reduces the diagnostics emitted in several of our test cases.  I've vetted these as
      having desired behavior.  The only regression is a missing null check diagnostic for the return
      value of realloc() in test/Analysis/malloc-plist.c.  This will require some investigation to fix,
      and I have added a FIXME to the test case.
      
      llvm-svn: 152361
      1e809b4c
  10. Mar 06, 2012
  11. Feb 28, 2012
  12. Feb 25, 2012
  13. Feb 18, 2012
  14. Feb 14, 2012
    • Anna Zaks's avatar
      [analyzer] Make Malloc Checker optimistic in presence of inlining. · 3d34834b
      Anna Zaks authored
      (In response of Ted's review of r150112.)
      
      This moves the logic which checked if a symbol escapes through a
      parameter to invalidateRegionCallback (instead of post CallExpr visit.)
      
      To accommodate the change, added a CallOrObjCMessage parameter to
      checkRegionChanges callback.
      
      llvm-svn: 150513
      3d34834b
  15. Feb 07, 2012
  16. Feb 05, 2012
  17. Feb 04, 2012
  18. Jan 26, 2012
  19. Jan 17, 2012
  20. Jan 06, 2012
    • Ted Kremenek's avatar
      [analyzer] Make the entries in 'Environment' context-sensitive by making entries map from · 632e3b7e
      Ted Kremenek authored
      (Stmt*,LocationContext*) pairs to SVals instead of Stmt* to SVals.
      
      This is needed to support basic IPA via inlining.  Without this, we cannot tell
      if a Stmt* binding is part of the current analysis scope (StackFrameContext) or
      part of a parent context.
      
      This change introduces an uglification of the use of getSVal(), and thus takes
      two steps forward and one step back.  There are also potential performance implications
      of enlarging the Environment.  Both can be addressed going forward by refactoring the
      APIs and optimizing the internal representation of Environment.  This patch
      mainly introduces the functionality upon when we want to build upon (and clean up).
      
      llvm-svn: 147688
      632e3b7e
  21. Jan 04, 2012
  22. Dec 22, 2011
  23. Dec 05, 2011
  24. Dec 01, 2011
  25. Nov 14, 2011
  26. Nov 01, 2011
  27. Oct 26, 2011
  28. Oct 25, 2011
    • Anna Zaks's avatar
      [analyzer] Remove getEngine() form CheckerContext · 58734db0
      Anna Zaks authored
      A step toward making sure that diagnostics report should only
      be generated though the CheckerContext and not though BugReporter
      or ExprEngine directly.
      
      llvm-svn: 142947
      58734db0
    • Anna Zaks's avatar
      [analyzer] Simplify CheckerContext · b473816b
      Anna Zaks authored
      Remove dead members/parameters: ProgramState, respondsToCallback, autoTransition.
      Remove addTransition method since it's the same as generateNode. Maybe we should
      rename generateNode to genTransition (since a transition is always automatically
      generated)?
      
      llvm-svn: 142946
      b473816b
    • Anna Zaks's avatar
      [analyze] Convert EndOfPath callback to use CheckerContext · 3eae3341
      Anna Zaks authored
      Get rid of the EndOfPathBuilder completely.
      Use the generic NodeBuilder to generate nodes.
      Enqueue the end of path frontier explicitly.
      
      llvm-svn: 142943
      3eae3341
  29. Oct 19, 2011
    • Anna Zaks's avatar
      [analyzer] Remove dead code. · e83ddcc4
      Anna Zaks authored
      ExprEngineBuilders is not used.
      
      llvm-svn: 142450
      e83ddcc4
    • Anna Zaks's avatar
      [analyzer] Node Builder refactoring: Introduce a simple Node Builder... · fc0189aa
      Anna Zaks authored
      [analyzer] Node Builder refactoring: Introduce a simple Node Builder responsible for generating the node frontier.
      
      Currently we have a bunch of different node builders which provide some common
      functionality but are difficult to refactor. Each builder generates nodes of
      different kinds and calculates the frontier nodes, which should be propagated
      to the next step (after the builder dies).
      
      Introduce a new NodeBuilder which provides very basic node generation facilities
      but takes care of the second problem. The idea is that all the other builders
      will eventually use it. Use this builder in CheckerContext instead of
      StmtNodeBuilder (the way the frontier is propagated to the StmtBuilder
      is a hack and will be removed later on).
      
      llvm-svn: 142443
      fc0189aa
Loading