- Jan 24, 2008
-
-
Ted Kremenek authored
Added "multiplication" support for equality sets. llvm-svn: 46289
-
Ted Kremenek authored
llvm-svn: 46288
-
- Jan 23, 2008
-
-
Ted Kremenek authored
causing problems with Dot. llvm-svn: 46285
-
Ted Kremenek authored
llvm-svn: 46284
-
Ted Kremenek authored
abstract "L-values" and "R-values" when doing value tracking, and expanding constant tracking to encompass tracking disjunctive sets of possible constants. Further, the tree-walking is more efficient, as we don't blindly recurse the tree if we won't generate new states. llvm-svn: 46278
-
- Jan 18, 2008
-
-
Ted Kremenek authored
use ImmutableMap::SlimFind(), which returns the correct value. Added pruning of dead block-level expressions and Decls from our value map using liveness information. llvm-svn: 46154
-
Ted Kremenek authored
dead at an assignment without taking into account if the variable was used in the RHS of the assignment. llvm-svn: 46153
-
- Jan 17, 2008
-
-
Ted Kremenek authored
is because GNU-style Statement-expressions cause the last statement in the statement-expression to act like an expression. We now have two notions: block-level statements and block-level expressions. The former are all Stmt* that appear in the list of statements in CFGBlocks. The latter is the subset of the former; these block-level statements are used as subexpressions somewhere in the AST. CFG::isBlockExpr() returns true for the latter, not the former (previously isBlockExpr() always returned true for non-Expr Stmt*). Modified the LiveVariables analysis to also track liveness state for block-level expressions (using the updated definition of block-level expressions). Modified the dataflow solver so that when it records values for block-level statements, it records the dataflow value *before* the transfer function for a Stmt* is evaluated (not after). This is more in sync in what clients will want. Modified CFGStmtVisitor to record the current block-level statement. llvm-svn: 46143
-
Ted Kremenek authored
values for the block-level expressions. Modified 'LiveVariables' to provide the option to clients to record liveness information for block-level expressions (using the above feature). Modified 'DeadStores' to conform to the new interface of 'LiveVariables'. Modified 'GRConstants' to compute liveness information for block-level expressions. llvm-svn: 46137
-
Ted Kremenek authored
llvm-svn: 46133
-
Ted Kremenek authored
Refactored the use of this method into both the Sema module and Analysis module, which were using their own static functions that did the same thing. llvm-svn: 46129
-
Ted Kremenek authored
state. llvm-svn: 46106
-
Ted Kremenek authored
map. This will allow us to quickly prune them from maps without searching the entire map. llvm-svn: 46101
-
Ted Kremenek authored
to sort sub-expressions before Block-level expressions. llvm-svn: 46100
-
- Jan 16, 2008
-
-
Ted Kremenek authored
values are determined when evaluating the parent expression. llvm-svn: 46096
-
Ted Kremenek authored
constant propagation. llvm-svn: 46095
-
Ted Kremenek authored
handle the case where the number of nodes was 0. Fixed bug in GREngineImpl where we did not proceed to the next statement when processing a PostStmt location. llvm-svn: 46093
-
Ted Kremenek authored
llvm-svn: 46092
-
Ted Kremenek authored
llvm-svn: 46087
-
Ted Kremenek authored
llvm-svn: 46086
-
Ted Kremenek authored
that were "not a constant." llvm-svn: 46085
-
Ted Kremenek authored
call the dstor instead of using delete. llvm-svn: 46084
-
Ted Kremenek authored
Fixed some compilation errors with GREngine that showed up during template instantiation. llvm-svn: 46074
-
Ted Kremenek authored
node caching in GREngine will guarantee that we do not insert a node twice into a nodeset. llvm-svn: 46071
-
Ted Kremenek authored
llvm-svn: 46051
-
Ted Kremenek authored
variant type, and not just the pointer value. llvm-svn: 46049
-
Ted Kremenek authored
Cleaned up GRConstants::AddBinding to not directly reference the predecessor node. Now we just manipulate the current state, and a driver function creates nodes as needed. llvm-svn: 46040
-
Ted Kremenek authored
the graph reachability engine. llvm-svn: 46036
-
- Jan 15, 2008
-
-
Ted Kremenek authored
the end of the block by processing empty blocks (at BlockEntrance) or when we have just processed the last statement in a block (at PostStmt). llvm-svn: 45991
-
Ted Kremenek authored
llvm-svn: 45986
-
- Jan 13, 2008
-
-
Ted Kremenek authored
parent class ExplodedGraphImpl. llvm-svn: 45930
-
Ted Kremenek authored
ExplodedNodeImpl::NodeGroup from being defined inline to being defined "out-of-line" in ExplodedGraph.cpp. This removes a dependence on including <vector> in ExplodedGraph.h, and will hopefully result in smaller generated code with negligible performance impact. llvm-svn: 45928
-
- Jan 11, 2008
-
-
Ted Kremenek authored
of ProgramPoint. llvm-svn: 45866
-
Ted Kremenek authored
to have a much simpler, cleaner interpretation of what is a "location" in a function (as encoded by a CFG). llvm-svn: 45846
-
- Jan 09, 2008
-
-
Ted Kremenek authored
code restructuring. (new files will be introduced shortly) llvm-svn: 45785
-
- Jan 08, 2008
-
-
Ted Kremenek authored
llvm-svn: 45750
-
Ted Kremenek authored
llvm-svn: 45728
-
- Jan 07, 2008
-
-
Ted Kremenek authored
llvm-svn: 45724
-
Ted Kremenek authored
creates the initial root node from the constructor of ReachabilityEngine to ReachabilityEngine::ExecuteWorklist. llvm-svn: 45722
-
Ted Kremenek authored
ExplodedNode, ExplodedGraph (to match the vocabulary in the RHS paper) ReachabilityEngine The implementation of the core of the path-sensitive dataflow solver has been de-templatized and places in ReachabilityEngine.cpp. The solver is still incomplete. llvm-svn: 45711
-