Owen Anderson
1dd2e40521
Revert r55859. This is breaking the build in the abscence of its companion commit.
...
llvm-svn: 55865
2008-09-05 23:36:01 +00:00
Duncan Sands
9e23602849
Delete the removeCallEdgeTo callgraph method,
...
because it does not maintain a correct list
of callsites. I discovered (see following
commit) that the inliner will create a wrong
callgraph if it is fed a callgraph with
correct edges but incorrect callsites. These
were created by Prune-EH, and while it wasn't
done via removeCallEdgeTo, it could have been
done via removeCallEdgeTo, which is an accident
waiting to happen. Use removeCallEdgeFor
instead.
llvm-svn: 55859
2008-09-05 21:43:04 +00:00
Dan Gohman
a79db30d28
Tidy up several unbeseeming casts from pointer to intptr_t.
...
llvm-svn: 55779
2008-09-04 17:05:41 +00:00
Matthijs Kooijman
2353f35989
Replace two manual loops with calls to CallSite::hasArguments (no functional changes).
...
llvm-svn: 51947
2008-06-04 16:57:50 +00:00
Dan Gohman
d78c400b5b
Clean up the use of static and anonymous namespaces. This turned up
...
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
2008-05-13 00:00:25 +00:00
Chris Lattner
cc9709cff4
add a new CallGraphNode::removeCallEdgeFor method, tidy some comments.
...
llvm-svn: 49617
2008-04-13 19:41:25 +00:00
Devang Patel
718da668ab
PassInfo keep tracks whether a pass is an analysis pass or not.
...
llvm-svn: 48554
2008-03-19 21:56:59 +00:00
Chris Lattner
f3ebc3f3d2
Remove attribution from file headers, per discussion on llvmdev.
...
llvm-svn: 45418
2007-12-29 20:36:04 +00:00
Duncan Sands
38ef3a8ec7
Rather than having special rules like "intrinsics cannot
...
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
2007-12-03 20:06:50 +00:00
Devang Patel
8c78a0bff0
Drop 'const'
...
llvm-svn: 36662
2007-05-03 01:11:54 +00:00
Devang Patel
e95c6ad802
Use 'static const char' instead of 'static const int'.
...
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
2007-05-02 21:39:20 +00:00
Lauro Ramos Venancio
41223586a2
Fix build error.
...
llvm-svn: 36648
2007-05-02 20:37:47 +00:00
Devang Patel
09f162ca6a
Do not use typeinfo to identify pass in pass manager.
...
llvm-svn: 36632
2007-05-01 21:15:47 +00:00
Reid Spencer
f75727ab14
Make classes in anonymous namespaces use VISIBILITY_HIDDEN to help reduce
...
LLVM's footprint and speed up linking.
llvm-svn: 33941
2007-02-05 23:42:17 +00:00
Reid Spencer
5301e7c605
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
...
confusion with external linkage types.
llvm-svn: 33663
2007-01-30 20:08:39 +00:00
Bill Wendling
a77f14265b
Added an automatic cast to "std::ostream*" etc. from OStream. We then can
...
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.
llvm-svn: 32636
2006-12-17 05:15:13 +00:00
Bill Wendling
f3baad3ee1
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Chris Lattner
dd23d3dd05
straighten out various memory ownership issues in the callgraph stuff.
...
This fixes Regression/Other/2002-01-31-CallGraph.ll.
llvm-svn: 32237
2006-12-05 19:46:12 +00:00
Chris Lattner
baf6c54410
Add a comment and fix a memory leak. Thanks to Vikram for pointing this out.
...
llvm-svn: 32196
2006-12-04 21:22:45 +00:00
Bill Wendling
afd54eb8b6
Replacing std::iostreams with llvm iostreams. Some of these changes involve
...
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
llvm-svn: 31990
2006-11-29 00:19:40 +00:00
Chris Lattner
aba5e1ee97
Fix a bug pointed out by Zhongxing Xu
...
llvm-svn: 30831
2006-10-09 17:28:13 +00:00
Chris Lattner
97c9f20c52
simplify AnalysisGroup registration, eliminating one typeid call.
...
llvm-svn: 29932
2006-08-28 00:42:29 +00:00
Chris Lattner
c2d3d3112e
eliminate RegisterOpt. It does the same thing as RegisterPass.
...
llvm-svn: 29925
2006-08-27 22:42:52 +00:00
Chris Lattner
5de3b8b262
Change the callgraph representation to store the callsite along with the
...
target CG node. This allows the inliner to properly update the callgraph
when using the pruning inliner. The pruning inliner may not copy over all
call sites from a callee to a caller, so the edges corresponding to those
call sites should not be copied over either.
This fixes PR827 and Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
llvm-svn: 29120
2006-07-12 18:29:36 +00:00
Reid Spencer
be535661cc
For PR780:
...
1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.
llvm-svn: 28715
2006-06-07 22:00:26 +00:00
Chris Lattner
20a4da4dfd
Fix -pedantic warning
...
llvm-svn: 28634
2006-06-01 17:17:46 +00:00
Reid Spencer
5861659a1e
Change from using a stub function to a stub variable for passing to the
...
IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.
llvm-svn: 28621
2006-06-01 07:02:51 +00:00
Chris Lattner
00ca8d2de8
Add a new CallGraph::getOrInsertFunction for clients to use when updating
...
the callgraph.
llvm-svn: 25317
2006-01-14 20:03:00 +00:00
Chris Lattner
bc351e171f
add a dump method to CallGraph
...
llvm-svn: 25314
2006-01-14 19:17:02 +00:00
Chris Lattner
be19877731
Separate the call graph implementation from its interface. This implements
...
the rough idea sketched out in http://nondot.org/sabre/LLVMNotes/CallGraphClass.txt ,
allowing new spiffy implementations of the callgraph interface to be built.
Many thanks to Saem Ghani for contributing this!
llvm-svn: 24944
2005-12-22 06:07:52 +00:00
Misha Brukman
01808caded
Remove trailing whitespace
...
llvm-svn: 21416
2005-04-21 21:13:18 +00:00
Chris Lattner
1b4e78d9e6
Mission accomplished!
...
llvm-svn: 17990
2004-11-19 16:22:24 +00:00
Chris Lattner
4f2cf030e8
'Pass' should now not be derived from by clients. Instead, they should derive
...
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
llvm-svn: 16436
2004-09-20 04:48:05 +00:00
Chris Lattner
d6d99dfa3f
Fix a nasty iterator invalidation problem I introduced yesterday. This
...
unfortunately is the cause of a bunch of failures from tonight, and the
reason the tester is running so slow :(
llvm-svn: 16407
2004-09-19 19:01:06 +00:00
Chris Lattner
824a21868b
Add CallGraphNode::removeAnyCallEdgeTo method
...
llvm-svn: 16398
2004-09-18 21:34:34 +00:00
Chris Lattner
85d5ccc006
When changing a function, make sure to update the CallGraphNode for the
...
function, not just the CallGraph.
llvm-svn: 16388
2004-09-18 00:27:20 +00:00
Chris Lattner
e81c2aa42a
Implement new changeFunction method, nuke a never implemented one.
...
llvm-svn: 16386
2004-09-18 00:22:13 +00:00
Reid Spencer
7c16caa336
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Chris Lattner
6b54110281
Add standard print/dump methods to CallGraph classes.
...
llvm-svn: 15569
2004-08-08 03:27:49 +00:00
Misha Brukman
63b38bd2ed
Fix #includes of i*.h => Instructions.h as per PR403.
...
llvm-svn: 15334
2004-07-29 17:30:56 +00:00
Reid Spencer
30d69a5af9
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14942
2004-07-18 00:18:30 +00:00
Chris Lattner
6942946132
Fix a problem with double freeing memory. For some reason, CallGraph is not
...
acting like a normal pass. :(
llvm-svn: 13318
2004-05-02 16:06:18 +00:00
Chris Lattner
929291aabb
Plug a minor memory leak
...
llvm-svn: 13317
2004-05-02 07:31:34 +00:00
Chris Lattner
8b6db18ac3
Change the call graph class to have TWO external nodes, making call graph
...
SCC passes much more useful. In particular, this should fix the incredibly
stupid missed inlining opportunities that the inliner suffered from.
llvm-svn: 12860
2004-04-12 05:36:32 +00:00
Brian Gaeke
960707c335
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Chris Lattner
9a010038f1
More additions
...
llvm-svn: 9834
2003-11-09 19:54:30 +00:00
Chris Lattner
950c75f135
Add more functions
...
llvm-svn: 9826
2003-11-09 04:10:41 +00:00
Chris Lattner
5011b956a9
None of the __llvm_* functions call into the program. This makes the
...
callgraph MUCH simpler for eh using program.
llvm-svn: 9825
2003-11-09 04:00:59 +00:00
Chris Lattner
9c4a58b780
Make the call graph more precise despite the hated constantpointerrefs.
...
Do you detect the animosity I feel towards CPRs yet?
llvm-svn: 9640
2003-10-31 21:05:12 +00:00
Chris Lattner
dd63f9e22b
When someone includes CallGraph.h, make sure that they link in CallGraph.cpp
...
llvm-svn: 9611
2003-10-30 05:17:30 +00:00
Chris Lattner
5987ab8677
This is a disgusting hack that improves code substantially, by making
...
callgraphSCC passes more effective.
llvm-svn: 9384
2003-10-22 18:53:31 +00:00
John Criswell
482202a601
Added LLVM project notice to the top of every C++ source file.
...
Header files will be on the way.
llvm-svn: 9298
2003-10-20 19:43:21 +00:00
Chris Lattner
233f2a0816
These two conditions are not exclusive!!
...
llvm-svn: 8518
2003-09-15 04:35:16 +00:00
Chris Lattner
5d0d3a2667
Make the print output more useful
...
llvm-svn: 8517
2003-09-15 04:29:37 +00:00
Chris Lattner
6f5e18d696
Replace M with F when refering to functions
...
llvm-svn: 8274
2003-08-31 20:36:52 +00:00
Chris Lattner
b9d55473b5
Allow the call graph to be called from analyze naturally with print implemented
...
llvm-svn: 4517
2002-11-04 00:21:19 +00:00
Chris Lattner
1a386b6a73
- Do not expose ::ID from any of the analyses anymore.
...
llvm-svn: 3417
2002-08-21 17:09:49 +00:00
Chris Lattner
2675007573
* Standardize how analysis results/passes as printed with the print() virtual
...
methods
* Eliminate AnalysisID: Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
the analyses themselves.
llvm-svn: 3116
2002-07-27 01:12:17 +00:00
Chris Lattner
a2c0985980
* Add support for different "PassType's"
...
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
llvm-svn: 3112
2002-07-26 21:12:44 +00:00
Chris Lattner
79b0c7d016
* s/method/function
...
llvm-svn: 2958
2002-07-18 04:43:16 +00:00
Chris Lattner
113f4f4609
MEGAPATCH checkin.
...
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779
2002-06-25 16:13:24 +00:00
Chris Lattner
ac7c298ba8
Print out what the root of the call graph is.
...
llvm-svn: 2223
2002-04-10 20:31:44 +00:00
Chris Lattner
d92b01c385
Add #includes to make up for #includes pruned out of header files.
...
llvm-svn: 2207
2002-04-09 18:37:46 +00:00
Chris Lattner
15deaa0ab9
s/Method/Function
...
llvm-svn: 2043
2002-03-29 17:08:29 +00:00
Chris Lattner
0df67e347a
change refs to Method to Function
...
Change references to MEthodArgument to FunctionArgument
llvm-svn: 1989
2002-03-26 17:55:33 +00:00
Chris Lattner
beed742b55
Clean up call graph, add comments, and fix test/Regression/Other/2002-01-31-CallGraph.ll
...
llvm-svn: 1828
2002-03-06 20:19:35 +00:00
Chris Lattner
d852cc32ec
Move call graph printing support out of Writer.h into Callgraph.h
...
remove dead global function
llvm-svn: 1825
2002-03-06 18:00:49 +00:00
Chris Lattner
8032732948
Take CallGraph out of the CFG namespace. It has nothing to do with CFGs
...
llvm-svn: 1820
2002-03-06 17:16:43 +00:00
Chris Lattner
60a6591d83
Method.h no longer includes BasicBlock.h
...
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
llvm-svn: 1746
2002-02-12 21:07:25 +00:00
Chris Lattner
ccf571a408
Convert analyses to new pass structure
...
llvm-svn: 1603
2002-01-31 00:42:27 +00:00
Chris Lattner
7f74a56e24
Changes to build successfully with GCC 3.02
...
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Chris Lattner
2413b160ec
Renamed inst_const_iterator -> const_inst_iterator
...
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner
5de2204fe8
Create a new #include "Support/..." directory structure to move things
...
from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
03946cd9b6
Implement a new entry node that has edges to all external methods in the module
...
llvm-svn: 1369
2001-11-26 18:51:25 +00:00
Vikram S. Adve
5dab57de99
Added function IsLeafMethod to identify leaf methods.
...
This will use the CallGraph only if one is provided.
llvm-svn: 950
2001-10-22 13:55:46 +00:00
Chris Lattner
8cbbbef674
* Add support for Invoke instructions
...
* Add support for indirect calls
llvm-svn: 752
2001-10-13 06:33:19 +00:00
Chris Lattner
da55810666
Commit more code over to new cast style
...
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
bbf3ae8414
Initial support for construction of a call graph
...
llvm-svn: 660
2001-09-28 00:08:15 +00:00