- Aug 05, 2008
-
-
Ted Kremenek authored
Added decl_iterator to DeclStmt to provide an abstract interface to iterate over the ScopedDecls of a DeclStmt. Updated a few clients of DeclStmt::getNextDeclarator() to use decl_iterator instead. Will update other clients after additional testing. llvm-svn: 54368
-
- Jul 04, 2008
-
-
Ted Kremenek authored
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002157.html Essentially the observer mechanism in LiveVariables was observing block-level expressions multiple times, leading to a case where the dead store checker could see a value as dead when it was really live. llvm-svn: 53115
-
- Jun 17, 2008
-
-
Chris Lattner authored
Patch by David Chisnall! llvm-svn: 52422
-
- Apr 16, 2008
-
-
Ted Kremenek authored
Refactored LiveVariables to use getTerminatorCondition() in VisitTerminator(). Bug fix: CFG now computes Block-level expression numbers using information from block terminators. This fixes <rdar://problem/5868189>. llvm-svn: 49818
-
Ted Kremenek authored
are referenced by CFGBlock terminators. llvm-svn: 49798
-
- Apr 15, 2008
-
-
Ted Kremenek authored
Fix bug in terminator processing for uninitialized-values: simply ignore the terminator, don't reprocess it. LiveVariables analysis now does a flow-insensitive analysis to determine what variables have their address taken; these variables are now always treated as being live. The DataflowSolver now uses "SetTopValue()" when getting the initial value for the entry/exit block. llvm-svn: 49734
-
Ted Kremenek authored
in a block's terminator. This expression is visited within a block, but it is accessed by the terminator. This is important to observe because for live-variables analysis the block-level expression is live between the terminator and where the expression occurs in the block. So far this hasn't been an issue to not observe this because the block-level expression used in the terminator is always the last one in the block, and we have never queried the liveness information about this point (but before the terminator). llvm-svn: 49709
-
Ted Kremenek authored
"Alive" as opposed to staying the same. llvm-svn: 49707
-
Ted Kremenek authored
is still live. llvm-svn: 49705
-
- Mar 20, 2008
-
-
Ted Kremenek authored
LiveVariables analysis now uses intersect for the merge of block-level expression liveness information. The rationale is that a block-level expression cannot be live in a parent block unless it is live in all of the successor blocks. llvm-svn: 48618
-
- Mar 16, 2008
-
-
Chris Lattner authored
lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. llvm-svn: 48402
-
- Mar 13, 2008
-
-
Ted Kremenek authored
to be run on other declarations of blocks of code (e.g., Objective-C methods.) llvm-svn: 48339
-
- Mar 05, 2008
-
-
Ted Kremenek authored
llvm-svn: 47958
-
Ted Kremenek authored
llvm-svn: 47955
-
- Feb 25, 2008
-
-
Ted Kremenek authored
that aren't VarDecls. llvm-svn: 47572
-
- Feb 23, 2008
-
-
Ted Kremenek authored
confluence points the liveness information for variables (Decls) and NOT block-level expressions. llvm-svn: 47506
-
- Feb 22, 2008
-
-
Ted Kremenek authored
llvm-svn: 47464
-
- Feb 07, 2008
-
-
Ted Kremenek authored
as the initializers for DeclStmts were not being registered as being live at the start of the DeclStmt. llvm-svn: 46837
-
- Jan 29, 2008
-
-
Ted Kremenek authored
and now we require a FunctionDecl* object so that we can also keep track of all of the ParmDecls. Modified clients of LiveVariables to conform to the new interface. llvm-svn: 46490
-
- Jan 18, 2008
-
-
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
-
- Jan 11, 2008
-
-
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 08, 2008
-
-
Ted Kremenek authored
llvm-svn: 45750
-
- Dec 29, 2007
-
-
Chris Lattner authored
discussion of this change. llvm-svn: 45410
-
- Dec 21, 2007
-
-
Ted Kremenek authored
Created include/clang/Analysis/Analyses directory. - Moved LiveVariables.h and UninitializedValues.h into this dir. Moved ExprDeclBitVector.h into Analysis/Support. Updated all clients who use these headers to reflect the new paths. llvm-svn: 45292
-
- Dec 13, 2007
-
-
Ted Kremenek authored
we incorrectly examine the expression within a sizeof() for use in computing dataflow values. This fixes: PR 1858 (http://llvm.org/bugs/show_bug.cgi?id=1858) llvm-svn: 44982
-
- Nov 20, 2007
-
-
Ted Kremenek authored
"block-expressions" when visiting arbitrary expressions (via calls to "Visit()"). This results in a refactoring where a dataflow analysis no longer needs to always special case when handling block-expressions versus non-block expressions. Updated LiveVariables and UninitializedValues to conform to the slightly altered interface of these visitor classes. Thanks to Nuno Lopes for providing a test case that illustrated some fundamental problems in the current design of the CFGXXXStmtVisitor classes and how they were used. llvm-svn: 44246
-
- Nov 19, 2007
-
-
Ted Kremenek authored
state that occurred in subexpressions of Block-Level expressions. Bug and fix provided by Nuno Lopes. llvm-svn: 44224
-
- Oct 07, 2007
-
-
Chris Lattner authored
llvm-svn: 42730
-
- Oct 01, 2007
-
-
Ted Kremenek authored
tracked BlkExpr information now maintained by the CFG class. llvm-svn: 42498
-
- Sep 28, 2007
-
-
Ted Kremenek authored
properly kill variables. e.g: (x) = 1; llvm-svn: 42450
-
Ted Kremenek authored
ExprDeclBitVector class for defining dataflow state. llvm-svn: 42446
-
- Sep 25, 2007
-
-
Ted Kremenek authored
code that uses the solver to reflect the new location. Created "FlowSensitive" subdirectory in include/clang/Analysis to hold header files relating to flow-sensitive analyses. Moved "DataflowValues.h" into this subdirectory. llvm-svn: 42320
-
Ted Kremenek authored
between forward and backward analyses, with trait classes being used to implement the key differences in operations/functionality. Converted the LiveVariables analysis to use the generic DataflowSolver. This, along with removing some extra functionality that was not needed, reduced the code for LiveVariables by over half. Modified Driver code to handle the updated interface to LiveVariables. Modified the DeadStores checker to handle the update interface to LiveVariables. Updated DataflowValues (generic ADT to store dataflow values) to also store values for blocks. This is used by DeadStores. Updated some comments. llvm-svn: 42293
-
- Sep 20, 2007
-
-
Ted Kremenek authored
Analysis/Visitors/*Visitors.h files. llvm-svn: 42175
-
- Sep 14, 2007
-
-
Steve Naroff authored
Move Decl::NextDeclarator (w/ setters/getters) down to ScopedDecl/FieldDecl. Decl is now svelte:-) llvm-svn: 41935
-
- Sep 12, 2007
-
-
Ted Kremenek authored
Removed extraneous call to Observer->ObserveStmt when handling DeclRefExprs. llvm-svn: 41890
-
Ted Kremenek authored
llvm-svn: 41888
-