History log of /llvm-project/clang/lib/Analysis/LiveVariables.cpp (Results 76 – 100 of 122)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e302792b 25-Aug-2010 John McCall <rjmccall@apple.com>

GCC didn't care for my attempt at API compatibility, so brute-force everything
to the new constants.

llvm-svn: 112047


# 2e222689 04-Jun-2010 Jordy Rose <jediknil@belkadan.com>

Assignments to reference variables shouldn't kill the variable.

llvm-svn: 105452


Revision tags: llvmorg-2.7.0
# 0f0883b9 03-Mar-2010 Ted Kremenek <kremenek@apple.com>

Fix an algorithmic bug in LiveVariables pointed out by Zhongxing.
If an initializer in a DeclStmt references the declared variable, that
extends the liveness of that variable.

llvm-svn: 97624


# d497e126 02-Mar-2010 Zhongxing Xu <xuzhongxing@gmail.com>

Register all parameters even if they didn't occur in the function body.
We may query their liveness because they are added to store when passing
argument values.

llvm-svn: 97562


# d6b87086 25-Jan-2010 Ted Kremenek <kremenek@apple.com>

Split libAnalysis into two libraries: libAnalysis and libChecker.

(1) libAnalysis is a generic analysis library that can be used by
Sema. It defines the CFG, basic dataflow analysis primitives,

Split libAnalysis into two libraries: libAnalysis and libChecker.

(1) libAnalysis is a generic analysis library that can be used by
Sema. It defines the CFG, basic dataflow analysis primitives, and
inexpensive flow-sensitive analyses (e.g. LiveVariables).

(2) libChecker contains the guts of the static analyzer, incuding the
path-sensitive analysis engine and domain-specific checks.

Now any clients that want to use the frontend to build their own tools
don't need to link in the entire static analyzer.

This change exposes various obvious cleanups that can be made to the
layout of files and headers in libChecker. More changes pending. :)

This change also exposed a layering violation between AnalysisContext
and MemRegion. BlockInvocationContext shouldn't explicitly know about
BlockDataRegions. For now I've removed the BlockDataRegion* from
BlockInvocationContext (removing context-sensitivity; although this
wasn't used yet). We need to have a better way to extend
BlockInvocationContext (and any LocationContext) to add
context-sensitivty.

llvm-svn: 94406

show more ...


# 7b8b4d70 30-Dec-2009 Zhongxing Xu <xuzhongxing@gmail.com>

Simplify code by using an equivalent template class.

llvm-svn: 92305


# 9c951ab4 24-Dec-2009 Ted Kremenek <kremenek@apple.com>

Enhance dataflow analyses to recognize branch statements in the CFG used as hooks for the initialization of condition variables.

llvm-svn: 92119


# 65c6566b 28-Nov-2009 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>

lib/Analysis: Remove VISIBILITY_HIDDEN from definitions in anonymous namespace

llvm-svn: 90028


# 0f5e6f88 26-Nov-2009 Ted Kremenek <kremenek@apple.com>

Enhance LiveVariables to understand that blocks can extend the liveness of a variable by "capturing" them in a BlockExpr.

This required two changes:

1) Added 'getReferencedgetReferencedBlockVars()'

Enhance LiveVariables to understand that blocks can extend the liveness of a variable by "capturing" them in a BlockExpr.

This required two changes:

1) Added 'getReferencedgetReferencedBlockVars()' to AnalysisContext so
that clients can iterate over the "captured" variables in a block.

2) Modified LiveVariables to take an AnalysisContext& in its
constructor and to call getReferencedgetReferencedBlockVars() when it
processes a BlockExpr*.

llvm-svn: 89924

show more ...


# 612e3802 10-Nov-2009 Jeffrey Yasskin <jyasskin@google.com>

Fix clang's use of DenseMap iterators after r86636 fixed their constness.
Patch by Victor Zverovich!

llvm-svn: 86638


# 975a119f 07-Nov-2009 Ted Kremenek <kremenek@apple.com>

Use SaveAndRestore to simplify logic in LiveVariables::runOnAllBlocks(). Patch by Kovarththanan Rajaratnam!

llvm-svn: 86343


# 45540e91 06-Nov-2009 Chris Lattner <sabre@nondot.org>

add some const qualifiers, patch by Kovarththanan Rajaratnam!

llvm-svn: 86260


Revision tags: llvmorg-2.6.0
# 07d0785d 18-Oct-2009 Daniel Dunbar <daniel@zuster.org>

PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients
are updated.

llvm-svn: 84447


# e81a5531 17-Oct-2009 Daniel Dunbar <daniel@zuster.org>

Use raw_ostream instead of C stdio.

llvm-svn: 84340


# 11289f42 09-Sep-2009 Mike Stump <mrs@apple.com>

Remove tabs, and whitespace cleanups.

llvm-svn: 81346


# 6796fbd2 16-Jul-2009 Ted Kremenek <kremenek@apple.com>

Move the source-level CFG from libAST to libAnalysis.

llvm-svn: 76092


# 703db197 30-Jun-2009 Zhongxing Xu <xuzhongxing@gmail.com>

Instead of r74522, use another approach to fix xfail_regionstore_wine_crash.c.
Mark the super region of the binding of block level expr in the Environment
as live.

llvm-svn: 74525


# d29e74e6 30-Jun-2009 Zhongxing Xu <xuzhongxing@gmail.com>

Block level expr should be visited. Otherwise variables in init expr of
DeclStmt would be dead before the DeclStmt.
For example:
int x = 0;
int y = x;
'x' would be dead before 'int y = x'.

llvm-svn:

Block level expr should be visited. Otherwise variables in init expr of
DeclStmt would be dead before the DeclStmt.
For example:
int x = 0;
int y = x;
'x' would be dead before 'int y = x'.

llvm-svn: 74522

show more ...


# 4d947fac 07-Apr-2009 Ted Kremenek <kremenek@apple.com>

Remove hack from LiveVariables analysis where variables whose address are taken
are considered 'live'. This hack isn't needed anymore because we have a
separation in the path-sensitive analyzer betwe

Remove hack from LiveVariables analysis where variables whose address are taken
are considered 'live'. This hack isn't needed anymore because we have a
separation in the path-sensitive analyzer between variable names and bindings;
the analyzer can continue to reason about the storage of a variable after its
name is no longer directly referenced. Now the live variables analysis literally means "is this name live".

Along this line, update the dead stores checker to explicitly look for variables
whose values have escaped.

llvm-svn: 68504

show more ...


# 529efc74 28-Mar-2009 Chris Lattner <sabre@nondot.org>

rename some methods.

llvm-svn: 67923


Revision tags: llvmorg-2.5.0
# 378e7fd3 30-Jan-2009 Ted Kremenek <kremenek@apple.com>

Fix horrible non-termination bug in LiveVariables. The issue was that
the liveness state of block-level expressions could oscillate because
of two issues:
- The initial value before a merge was not

Fix horrible non-termination bug in LiveVariables. The issue was that
the liveness state of block-level expressions could oscillate because
of two issues:
- The initial value before a merge was not always set to "Top"
- The set of live block-level expressions is a union, not an intersection

This fixes <rdar://problem/650084>.

llvm-svn: 63421

show more ...


# f1ca7d3e 27-Jan-2009 Chris Lattner <sabre@nondot.org>

Introduce a new PresumedLoc class to represent the concept of a location
as reported to the user and as manipulated by #line. This is what __FILE__,
__INCLUDE_LEVEL__, diagnostics and other things s

Introduce a new PresumedLoc class to represent the concept of a location
as reported to the user and as manipulated by #line. This is what __FILE__,
__INCLUDE_LEVEL__, diagnostics and other things should follow (but not
dependency generation!).

This patch also includes several cleanups along the way:

- SourceLocation now has a dump method, and several other places
that did similar things now use it.
- I cleaned up some code in AnalysisConsumer, but it should probably be
simplified further now that NamedDecl is better.
- TextDiagnosticPrinter is now simplified and cleaned up a bit.

This patch is a prerequisite for #line, but does not actually provide
any #line functionality.

llvm-svn: 63098

show more ...


# 53e384f6 16-Jan-2009 Chris Lattner <sabre@nondot.org>

Change some terminology in SourceLocation: instead of referring to
the "physical" location of tokens, refer to the "spelling" location.
This is more concrete and useful, tokens aren't really physica

Change some terminology in SourceLocation: instead of referring to
the "physical" location of tokens, refer to the "spelling" location.
This is more concrete and useful, tokens aren't really physical objects!

llvm-svn: 62309

show more ...


# 6ee0a118 09-Dec-2008 Ted Kremenek <kremenek@apple.com>

Fixed LiveVariables bug where we didn't consider block-level expressions that functioned as the size of a VLA to be live.

llvm-svn: 60730


# fc419a03 14-Nov-2008 Ted Kremenek <kremenek@apple.com>

Minor tweaks to liveness analysis:
- Block-expression for 'ObjCForCollectionStmt' is not alive before it occurs
- Recursively visit 'element' expression for ObjCForCollectionStmt to get liveness for

Minor tweaks to liveness analysis:
- Block-expression for 'ObjCForCollectionStmt' is not alive before it occurs
- Recursively visit 'element' expression for ObjCForCollectionStmt to get liveness for referenced block-level expressions and variables.

llvm-svn: 59316

show more ...


12345