summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/LiveVariables.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Cosmetic patch from João Paulo Rechi VitaDouglas Gregor2008-10-211-1/+0
| | | | llvm-svn: 57910
* Move VLA processing logic from LiveVariables to CFG construction. This way ↵Ted Kremenek2008-09-261-20/+0
| | | | | | all dataflow analyses "see" the VLA size expressions. llvm-svn: 56655
* Examine VLA size expressions when computing liveness information.Ted Kremenek2008-09-261-4/+26
| | | | | | Fixes <rdar://problem/6248086> llvm-svn: 56645
* Added decl_iterator to DeclStmt to provide an abstract interface to iterate ↵Ted Kremenek2008-08-051-2/+3
| | | | | | | | 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
* Fix a bug in the dead stores checker reported in the following email:Ted Kremenek2008-07-031-3/+11
| | | | | | | | | | 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
* Change self/_cmd to be instances of ImplicitParamDecl instead of ParmVarDecl.Chris Lattner2008-06-171-0/+5
| | | | | | Patch by David Chisnall! llvm-svn: 52422
* Added CFGBlock::getTerminatorCondition() to get the Expr* of the condition a ↵Ted Kremenek2008-04-161-48/+5
| | | | | | | | | | | block's terminator. 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
* LiveVariables now updates the liveness state of block-level expressions thatTed Kremenek2008-04-161-12/+49
| | | | | | are referenced by CFGBlock terminators. llvm-svn: 49798
* Fix bug in terminator processing for uninitialized-values: simply ignore the ↵Ted Kremenek2008-04-151-7/+64
| | | | | | | | | | 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
* Added initial support into the flow-sensitive dataflow solver to visit the ↵Ted Kremenek2008-04-151-1/+19
| | | | | | | | | | | | | Block-level expression 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
* ++/-- makes a variable live since it is used; thus the liveness state isTed Kremenek2008-04-151-3/+3
| | | | | | "Alive" as opposed to staying the same. llvm-svn: 49707
* Bug fix in LiveVariables: Operators ++/-- may kill a value, but the variableTed Kremenek2008-04-151-6/+5
| | | | | | is still live. llvm-svn: 49705
* LiveVariables analysis now uses intersect for the merge of block-level ↵Ted Kremenek2008-03-201-2/+11
| | | | | | | | 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
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-0/+246
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
OpenPOWER on IntegriCloud