- Sep 25, 2007
-
-
Ted Kremenek authored
llvm-svn: 42305
-
Ted Kremenek authored
llvm-svn: 42304
-
Ted Kremenek authored
llvm-svn: 42301
-
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
-
Hartmut Kaiser authored
Disambiguated a variable. llvm-svn: 42161
-
- Sep 19, 2007
-
-
Ted Kremenek authored
llvm-svn: 42145
-
Ted Kremenek authored
to specify how two dataflow values should be compared for equality. The default is to use std::equal_to. llvm-svn: 42115
-
Ted Kremenek authored
rather than a special "equal" method defined in the class for the value. llvm-svn: 42113
-
- Sep 18, 2007
-
-
Ted Kremenek authored
called VisitStmt, but VisitChildren is more direct and creates less boilerplate logic. llvm-svn: 42110
-
Ted Kremenek authored
llvm-svn: 42109
-
Ted Kremenek authored
invocation of the solver. UninitializedValues checker now uses CFG::runOnAllBlocks to query the computed dataflow values (tighter code). llvm-svn: 42107
-
Ted Kremenek authored
of visiting all block-level statements in a CFG. Tightened implementation of UninitializedValues. llvm-svn: 42106
-
Ted Kremenek authored
variable instead of a temporary. llvm-svn: 42102
-
Ted Kremenek authored
with CFG *edges* instead of blocks. This will fascilitate dataflow analyses that are sensitive to block terminators, and also simplifies some reasoning. Updated UninitializedValues to comply to this new interface. llvm-svn: 42099
-
- Sep 17, 2007
-
-
Ted Kremenek authored
too "conservative"). Several revisions to UninitializedValues checker after testing. We now appear to be working correctly (probably some bugs still, but main functionality appears to be there). Implemented careful emitting of warnings so that we wouldn't get a cascade of warnings for simply not defining a single variable and using it everywhere. This way the warnings point closer to the root cause rather than "symptoms" from using values derived from uninitialized variables. llvm-svn: 42067
-
Ted Kremenek authored
llvm-svn: 42056
-
Ted Kremenek authored
globals and function parameters. llvm-svn: 42055
-
Ted Kremenek authored
for reporting errors and running the checker. llvm-svn: 42046
-
Ted Kremenek authored
llvm-svn: 42041
-
Ted Kremenek authored
mechanism can be implemented simply by affixing the Observer to an analysis meta data, so it doesn't need to be a required type. This also permits analyses not to implement an Observer if it doesn't make sense. Changed "DataflowValues::MetaDataTy" to "DataflowValues::AnalysisDataTy" to reflect that the type enscapsulated the data associated with analyzing a given CFG. Changed CFGStmtVisitor::BlockStmt_VisitImplicitControlFlowStmt(Stmt*) to ...VisitImplicitControlFlowExpr(Expr*). The type narrowing is more precise and more useful to clients. Added CFGStmtVisitor::BlockStmt_VisitExpr to reflect the visitation of expressions at the block statement level. This captures all implicit control-flow statements as well as other expressions that are hoisted to the block level (such as conditions for terminators and function calls). This is especially useful for dataflow analysis. llvm-svn: 42034
-
- Sep 16, 2007
-
-
Chris Lattner authored
this eliminates their dependence on the preprocessor and eliminates some duplicated code. llvm-svn: 41993
-
- Sep 15, 2007
-
-
Chris Lattner authored
llvm-svn: 41988
-
Ted Kremenek authored
Preliminary implementation of UninitializedValues, which is based on new solver (doesn't work yet, but compiles). llvm-svn: 41970
-
- Sep 14, 2007
-
-
Steve Naroff authored
Move Decl::NextDeclarator (w/ setters/getters) down to ScopedDecl/FieldDecl. Decl is now svelte:-) llvm-svn: 41935
-
- Sep 13, 2007
-
-
Chris Lattner authored
llvm-svn: 41906
-
- Sep 12, 2007
-
-
Ted Kremenek authored
Removed extraneous call to Observer->ObserveStmt when handling DeclRefExprs. llvm-svn: 41890
-
Ted Kremenek authored
llvm-svn: 41888
-
Ted Kremenek authored
is much simpler now. llvm-svn: 41885
-
- Sep 11, 2007
-
-
Ted Kremenek authored
if the assigned value is a constant expression, e.g.: int x = 0; We then check to see if "x" is ever reassigned later. If so, we don't emit a warning. This is because programmers frequently use defensive programming to make sure a variable has a defined value. llvm-svn: 41853
-
Ted Kremenek authored
llvm-svn: 41848
-
Gabor Greif authored
warnings that some compilers diagnose llvm-svn: 41847
-
- Sep 10, 2007
-
-
Ted Kremenek authored
that refer to direct function calls. Modified interface of LiveVariables to only track liveness of VarDecls. This cleans up a bunch of edge cases, and removed the bug just mentioned. llvm-svn: 41797
-
Ted Kremenek authored
"Audit" to "Observer" and "Observe" llvm-svn: 41794
-
- Sep 07, 2007
-
-
Ted Kremenek authored
but never used. Fix a bug in LiveVariables where uses on the LHS of self-assign operators (e.g +=, *=, etc) would not be properly recorded in the liveness state of the variable. llvm-svn: 41757
-
Ted Kremenek authored
that contained no declarations, or when a variable is declared but never used. llvm-svn: 41756
-
Ted Kremenek authored
llvm-svn: 41755
-
Ted Kremenek authored
to variables that are no longer live. This analysis is built on top of CFGs and the LiveVariables analysis. changes to driver: added driver option "-check-dead-stores" to run the analysis llvm-svn: 41754
-
- Sep 06, 2007
-
-
Ted Kremenek authored
- Finished 99% of analysis logic. Probably a few bugs. - Added querying functions to query liveness. - Added better pretty printing of liveness. - Added better bookkeeping of per-variable liveness information. - Added LiveVariablesAuditor interface, which allows "lazy" querying of intra-basic block liveness information. Driver: - Minor cleanups involved in dumping liveness information. llvm-svn: 41753
-
Ted Kremenek authored
source-level CFGs. This code may change significantly in the near future as we explore different means to implement dataflow analyses. Added a driver option, -dump-live-variables, to view the output of live variable analysis. This output is very ALPHA; it will be improved shortly. llvm-svn: 41737
-