summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/RangeConstraintManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove references to 'Checker' and 'GRTransferFuncs' fromTed Kremenek2010-01-051-3/+5
| | | | | | | | | | | | GRStateManager. Having these references was an abstraction violation, as they really should only be known about GRExprEngine. This change required adding a new 'ProcessAssume' callback in GRSubEngine. GRExprEngine implements this callback by calling 'EvalAssume' on all registered Checker objects as well as the registered GRTransferFunc object. llvm-svn: 92549
* lib/Analysis: Remove VISIBILITY_HIDDEN from definitions in anonymous namespaceKovarththanan Rajaratnam2009-11-281-6/+5
| | | | llvm-svn: 90028
* Move the ManagerRegistry to the Analysis library to resolve the layering ↵Chandler Carruth2009-11-111-1/+1
| | | | | | violation. llvm-svn: 86863
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-30/+30
| | | | llvm-svn: 81346
* Remove uses of std::ostream from libAnalysis.Ted Kremenek2009-06-241-4/+4
| | | | llvm-svn: 74136
* Remove GRStateManager& field from SimpleConstraintManager.Ted Kremenek2009-06-181-5/+3
| | | | llvm-svn: 73735
* libAnalysis:Ted Kremenek2009-06-181-9/+8
| | | | | | | | | - Remove the 'isFeasible' flag from all uses of 'Assume'. - Remove the 'Assume' methods from GRStateManager. Now the only way to create a new GRState with an assumption is to use the new 'assume' methods in GRState. llvm-svn: 73731
* Remove more uses of GRStateRef.Ted Kremenek2009-06-171-14/+12
| | | | llvm-svn: 73648
* Tweak pretty-printing of constraints.Ted Kremenek2009-04-211-1/+1
| | | | llvm-svn: 69740
* Rename lib/Driver (etc) to lib/Frontend in prep for the *actual*Daniel Dunbar2009-03-021-1/+1
| | | | | | driver taking lib/Driver. llvm-svn: 65811
* Revise comment. Comparing pointer values in 'Range' wasn't the performance ↵Ted Kremenek2009-02-181-5/+3
| | | | | | issue I thought it was, but it is still worth ordering Range objects by their APSInt values. llvm-svn: 64921
* Fix performance bug in RangeConstraintManager (that I introduced):Ted Kremenek2009-02-181-9/+23
| | | | | | | | | | | | | | When comparing if one Range is "less" than another, compare the actual APSInt numeric values instead of their pointer addresses. This ensures that the ImmutableSet in RangeSet always has a consistent ordering between Ranges. This is critical for generating the same digest/hash for the contents of the sets. This was a serious performance bug because it would often cause state caching to be disabled along complicated paths. Along the way: - Put Range and RangeSet in the "anonymous namespace" and mark them hidden llvm-svn: 64890
* Revised RangeConstraintManager based on several discussions with Ben Laurie andTed Kremenek2009-02-171-519/+180
| | | | | | | | | | | | | | | | | Zhongxing Xu. The resultant code is less than 1/2 the size of the original. Key highlights: - All CouldBeXXX methods have been removed. Checking for feasibility is now just done in the AddXXX methods. - RangeSets now represent "all possible values" explicitly as the range set { [min, max] } instead of the empty set. The empty set now represents "no feasible values". This change consolidated much of the core algorithm to only have one code path instead of alternate paths that considered the empty set to represent "all possible falues." llvm-svn: 64787
* Add pretty-printing (for GraphViz) support for RangeConstraintManager.Ted Kremenek2009-02-161-36/+8
| | | | llvm-svn: 64646
* Do not register 'RangeConstraintManager' as the default ConstraintManager.Ted Kremenek2009-02-161-2/+0
| | | | llvm-svn: 64627
* Patch by Ben Laurie:Ted Kremenek2009-02-141-0/+720
ConstraintManager: - constify getSymVal() BasicConstraintManager: - Pull out logic that would be common to ConstraintManagers of a similar nature and put them in a parent class called 'SimpleConstraintManager'. RangeConstraintManager: - Added a new prototype ConstraintManager to track ranges of variables! This ConstraintManager keeps tracks of ranges of concrete integers that a symbolic integer may have. AnalysisConsumer: - Add driver option to use RangeConstraintManager with GRExprEngine-based analyses. llvm-svn: 64558
OpenPOWER on IntegriCloud