#
e7ec558f |
| 21-Dec-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert r170826. The output of
./bin/clang -cc1 -internal-isystem /home/espindola/llvm/build/lib/clang/3.3/include/ -analyze -analyzer-checker=debug.DumpCallGraph /home/espindola/llvm/clang/test/Anal
Revert r170826. The output of
./bin/clang -cc1 -internal-isystem /home/espindola/llvm/build/lib/clang/3.3/include/ -analyze -analyzer-checker=debug.DumpCallGraph /home/espindola/llvm/clang/test/Analysis/debug-CallGraph.c -fblocks
changes in each run.
llvm-svn: 170829
show more ...
|
#
77ca7f1b |
| 21-Dec-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Traverse the Call Graph in topological order.
Modify the call graph by removing the parentless nodes. Instead all nodes are children of root to ensure they are all reachable. Remove the t
[analyzer] Traverse the Call Graph in topological order.
Modify the call graph by removing the parentless nodes. Instead all nodes are children of root to ensure they are all reachable. Remove the tracking of nodes that are "top level" or global. This information is not used and can be obtained from the Decls stored inside CallGraphNodes.
Instead of existing ordering hacks, analyze the functions in topological order over the Call Graph.
Together with the addition of devirtualizable ObjC message sends and blocks to the call graph, this gives around 6% performance improvement on several large ObjC benchmarks.
llvm-svn: 170826
show more ...
|
#
5c32dfc5 |
| 21-Dec-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add blocks and ObjC messages to the call graph.
This paves the road for constructing a better function dependency graph. If we analyze a function before the functions it calls and inlines
[analyzer] Add blocks and ObjC messages to the call graph.
This paves the road for constructing a better function dependency graph. If we analyze a function before the functions it calls and inlines, there is more opportunity for optimization.
Note, we add call edges to the called methods that correspond to function definitions (declarations with bodies).
llvm-svn: 170825
show more ...
|
Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3 |
|
#
3a02247d |
| 04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered.
This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/util
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered.
This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files.
I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
show more ...
|
Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1 |
|
#
d1d76b2d |
| 06-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused private member variables found by clang's new -Wunused-private-field.
llvm-svn: 158086
|
Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1 |
|
#
8e078528 |
| 12-Apr-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] PCH deserialization optimization.
We should not deserialize unused declarations from the PCH file. Achieve this by storing the top level declarations during parsing (HandleTopLevelDecl AS
[analyzer] PCH deserialization optimization.
We should not deserialize unused declarations from the PCH file. Achieve this by storing the top level declarations during parsing (HandleTopLevelDecl ASTConsumer callback) and analyzing/building a call graph only for those.
Tested the patch on a sample ObjC file that uses PCH. With the patch, the analyzes is 17.5% faster and clang consumes 40% less memory. Got about 10% overall build/analyzes time decrease on a large Objective C project.
A bit of CallGraph refactoring/cleanup as well..
llvm-svn: 154625
show more ...
|
#
504957f4 |
| 05-Apr-2012 |
Ted Kremenek <kremenek@apple.com> |
Do not crash in the callgraph construction when encountering deleted function definitions. Fixes <rdar://problem/11178609>.
llvm-svn: 154081
|
#
dcc425ec |
| 14-Mar-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Fix dereference of end iterator. Spotted by ASan.
llvm-svn: 152738
|
#
32da47b9 |
| 13-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Refactor CallGraph to use Recursive AST visitor when collecting function Decls.
llvm-svn: 152651
|
#
c2555770 |
| 09-Mar-2012 |
Anna Zaks <ganna@apple.com> |
CallGraph: Add getNode() method, constify.
llvm-svn: 152439
|
#
9a008bb7 |
| 08-Mar-2012 |
Anna Zaks <ganna@apple.com> |
Call Graph: Only the root node is allowed to have an invalid Decl*.
llvm-svn: 152350
|
#
eb725320 |
| 08-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
Remove stray semi-colon.
llvm-svn: 152331
|
#
c000e7ed |
| 08-Mar-2012 |
Anna Zaks <ganna@apple.com> |
Add a basic CallGraph to Analysis.
The final graph contains a single root node, which is a parent of all externally available functions(and 'main'). As well as a list of Parentless/Unreachable funct
Add a basic CallGraph to Analysis.
The final graph contains a single root node, which is a parent of all externally available functions(and 'main'). As well as a list of Parentless/Unreachable functions, which are either truly unreachable or are unreachable due to our analyses imprecision.
The analyzer checkers debug.DumpCallGraph or debug.ViewGraph can be used to look at the produced graph.
Currently, the graph is not very precise, for example, it entirely skips edges resulted from ObjC method calls.
llvm-svn: 152272
show more ...
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1, llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1, llvmorg-2.8.0, llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0, llvmorg-2.7.0 |
|
#
9fc223a6 |
| 30-Nov-2009 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Adapt to the DOTGraphTraits changes in LLVM.
llvm-svn: 90137
|
#
f4c511b0 |
| 14-Nov-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Change *BugReport constructors to take StringRefs.
- Eliminates many calls to std::string.c_str() - Fixes an invalid read in ReturnStackAddressChecker due to an unsafe call to StringRef.data() whi
Change *BugReport constructors to take StringRefs.
- Eliminates many calls to std::string.c_str() - Fixes an invalid read in ReturnStackAddressChecker due to an unsafe call to StringRef.data() which doesn't guarantee null-termination.
llvm-svn: 88779
show more ...
|
#
cb131542 |
| 28-Oct-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
make CallGraph more flexible by letting it accept ASTContext instead of ASTUnit. Patch by Simone Pellegrini.
llvm-svn: 85386
|
Revision tags: llvmorg-2.6.0 |
|
#
4cbe8590 |
| 29-Sep-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Modify ASTLocation and apart from being a Decl or Stmt, allow it to also be:
-A NamedDecl reference -A TypeLoc
llvm-svn: 83095
|
#
81aba1fe |
| 29-Sep-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add more const-goodness to ASTLocation.
llvm-svn: 83087
|
#
11289f42 |
| 09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups.
llvm-svn: 81346
|
#
30ac7607 |
| 24-Jul-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add getDecl() to CallGraph and CallGraphNode.
llvm-svn: 76940
|
#
ee5d708e |
| 23-Jul-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add two nodes to the call graph: - Root is the main function or 0. - ExternalCallingNode has edges to all external functions.
llvm-svn: 76876
|
#
a598e5c9 |
| 23-Jul-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add template specializations to view the call graph in dot format. - change the DenseMap used in callgraph to std::map, since DenseMap cannot be used with mapped_iterator and friends.
llvm-svn:
Add template specializations to view the call graph in dot format. - change the DenseMap used in callgraph to std::map, since DenseMap cannot be used with mapped_iterator and friends.
llvm-svn: 76874
show more ...
|
#
8274ad52 |
| 21-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Remove the ASTContext parameter from Entity::getPrintableName().
llvm-svn: 76546
|
#
05ac8276 |
| 21-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Change the semantics for Entity.
Entity can now refer to declarations that are not visible outside the translation unit. It is a wrapper of a pointer union, it's either a Decl* for declarations that
Change the semantics for Entity.
Entity can now refer to declarations that are not visible outside the translation unit. It is a wrapper of a pointer union, it's either a Decl* for declarations that don't "cross" translation units, or an EntityImpl* which is associated with the specific "visible" Decl.
Included is a test case for handling fields across translation units.
llvm-svn: 76515
show more ...
|
#
4b9f2d08 |
| 18-Jul-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Replace stmt visitors with the fall back method.
llvm-svn: 76294
|