Chris Lattner
f6b840a1ae
silence warning
...
llvm-svn: 31402
2006-11-03 01:45:13 +00:00
Chris Lattner
44b3550217
add a method
...
llvm-svn: 31249
2006-10-28 01:24:05 +00:00
Reid Spencer
6833ffe8b8
For PR950:
...
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.
llvm-svn: 31195
2006-10-26 06:15:43 +00:00
Andrew Lenharth
b22538d23c
change this back
...
llvm-svn: 31134
2006-10-23 19:52:54 +00:00
Chris Lattner
895cf34500
Move DominatorTree to immediately follow DominatorTreeBase
...
llvm-svn: 30693
2006-10-03 05:24:56 +00:00
Devang Patel
8248ba3afc
Use iterative algorith to assign DFS number. This reduces
...
call stack depth.
llvm-svn: 30575
2006-09-22 01:05:33 +00:00
Devang Patel
0d540a2f9a
Undo previous check-in.
...
Reintroduce recursive assignDFSNumber().
llvm-svn: 30380
2006-09-14 21:43:24 +00:00
Devang Patel
2983c628cd
Avoid recursion in assignDFSNumber(). Move def from ET-Forest.h
...
to Dominators.h
llvm-svn: 30309
2006-09-14 01:27:42 +00:00
Nick Lewycky
a2c3d7b1ca
Add ability to remove nodes from DominatorTree, for when a BasicBlock
...
is being removed.
llvm-svn: 30270
2006-09-12 00:18:28 +00:00
Devang Patel
a5bb9b49d3
Do not rely on std::sort and std::erase to get list of unique
...
exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
llvm-svn: 29966
2006-08-29 22:29:16 +00:00
Reid Spencer
eb02f1c668
For PR885:
...
Consolidate the LinkAllAnalyses.h and LinkAllPasses.h headers into one
so there is no dupliation.
llvm-svn: 29787
2006-08-21 05:34:03 +00:00
Chris Lattner
58aeae17a7
Add dominates/properlyDominates queries to IDom.
...
llvm-svn: 29456
2006-08-01 22:24:47 +00:00
Reid Spencer
10b9edbb69
For PR780:
...
1. Move IncludeFile.h to System library
2. Move IncludeFile.cpp to System library
3. #1 and #2 required to prevent cyclic library dependencies for libSystem
4. Convert all existing uses of Support/IncludeFile.h to System/IncludeFile.h
5. Add IncludeFile support to various lib/System classes.
6. Add new lib/System classes to LinkAllVMCore.h
All this in an attempt to pull in lib/System to what's required for VMCore
llvm-svn: 29287
2006-07-26 16:18:00 +00:00
Chris Lattner
e5e2e8d917
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
Chris Lattner
55c8fc6873
Change the verifier to never throw an exception. Instead verifyModule can
...
optionally return the string error, which is an easier api for clients to
use anyway.
llvm-svn: 29016
2006-07-06 18:00:01 +00:00
Chris Lattner
70a5120be9
Add a new method.
...
llvm-svn: 28915
2006-06-26 19:20:25 +00:00
Andrew Lenharth
18494fd192
Fix build on old compilers
...
llvm-svn: 28869
2006-06-20 15:32:17 +00:00
Andrew Lenharth
f0ecdbe7ef
Do partial inlining in BU. This resolves more call sites. Also add options to merge in globals during recursion and to back annotate DSNodes when function pointers are resolved. This makes PA work for a whole lot more things (unresolved call sites being what has been killing various DSA based passes)
...
llvm-svn: 28859
2006-06-19 18:23:36 +00:00
Andrew Lenharth
71d1cfa5c4
move header
...
llvm-svn: 28818
2006-06-16 14:33:53 +00:00
Owen Anderson
15b85dbfa5
Re-commit the safe parts of my 6/9 patch. Still working on fixing the unsafe parts.
...
llvm-svn: 28748
2006-06-11 19:22:28 +00:00
Evan Cheng
d99c8e2e5f
Back out Owen's 6/9 changes. They broke MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others).
...
llvm-svn: 28747
2006-06-11 09:32:57 +00:00
Owen Anderson
6c2f7512a6
Make Loop able to verify that it is in LCSSA-form, and have the LCSSA pass assert
...
on this.
llvm-svn: 28738
2006-06-09 18:33:30 +00:00
Reid Spencer
560366562b
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
Reid Spencer
3832b7f9c4
For PR780:
...
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.
llvm-svn: 28709
2006-06-07 20:00:19 +00:00
Chris Lattner
3d631893f9
Fix -pedantic warning
...
llvm-svn: 28634
2006-06-01 17:17:46 +00:00
Reid Spencer
2c6d390a60
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
Andrew Lenharth
bc04a6c143
Since there was interest on the mailing list, this is a utility pass that
...
uses DSA to make find targets of calls. It provides a very convinient
interface to DSA results to do things with indirect calls, such as
write a devirtualizer (which I have and may commit one of these days).
llvm-svn: 28545
2006-05-29 22:58:38 +00:00
Chris Lattner
0f467023c2
Fix pastos in comments
...
llvm-svn: 28522
2006-05-27 06:57:55 +00:00
Reid Spencer
55df120f95
Fix some doxygen usage in these headers.
...
llvm-svn: 28394
2006-05-19 19:07:54 +00:00
Chris Lattner
fce3b3f299
Use class tags instead of struct tags. The coding standards specify this
...
for public classes for improved win32 compatibility.
llvm-svn: 28391
2006-05-19 17:17:12 +00:00
Chris Lattner
a76347d917
Fix Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll and
...
PR726 by performing consistent signed division, not consistent unsigned
division when evaluating scev's. Do not touch udivs.
llvm-svn: 27326
2006-04-01 04:48:52 +00:00
Nate Begeman
31da564faa
Move some common data structures between dom and pdom into the base class
...
llvm-svn: 26905
2006-03-20 19:32:48 +00:00
Nate Begeman
7c2afcfc02
Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominator
...
set construction, rather than intersecting various std::sets. This reduces
the memory usage for the testcase in PR681 from 496 to 26MB of ram on my
darwin system, and reduces the runtime from 32.8 to 0.8 seconds on a
2.5GHz G5. This also enables future code sharing between Dom and PostDom
now that they share near-identical implementations.
llvm-svn: 26707
2006-03-11 02:20:46 +00:00
Chris Lattner
ed45ad33b7
Make the LLVM headers "-ansi -pedantic -Wno-long-long" clean.
...
Patch by Martin Partel!
llvm-svn: 26313
2006-02-22 16:23:43 +00:00
Chris Lattner
d92225434a
Refactor a bunch of code into a non-inlined method
...
llvm-svn: 25972
2006-02-04 09:51:33 +00:00
Chris Lattner
43978e529e
add a method
...
llvm-svn: 25959
2006-02-04 05:49:01 +00:00
Chris Lattner
fa8477498c
Initialize DFSnum's to -1, in case a node is not reachable.
...
llvm-svn: 25344
2006-01-15 21:48:36 +00:00
Chris Lattner
789d498d78
add an assert, patch by Daniel Berlin
...
llvm-svn: 25343
2006-01-15 21:46:23 +00:00
Chris Lattner
551df64bd0
Change ET-Forest to automatically recalculate its DFSnum's if too many slow
...
queries are made.
Patch by Daniel Berlin!
llvm-svn: 25323
2006-01-14 20:55:09 +00:00
Chris Lattner
62ab0d6471
Add CallGraph::getOrInsertFunction, to allow clients to update the callgraph
...
when they change the program
llvm-svn: 25316
2006-01-14 20:01:50 +00:00
Chris Lattner
f75f017cae
add a dump method to CallGraph
...
llvm-svn: 25314
2006-01-14 19:17:02 +00:00
Chris Lattner
07daf14bbd
Switch loopinfo to using ETForest instead of DominatorSet to compute itself.Patch by Daniel Berlin!
...
llvm-svn: 25200
2006-01-11 05:08:57 +00:00
Chris Lattner
60499c68b3
Fix the build on platforms where <cassert> doesn't define NULL
...
llvm-svn: 25147
2006-01-08 09:10:46 +00:00
Chris Lattner
84a9d11b28
Initial implementation of the ET-Forest data structure for dominators and
...
post-dominators. This code was written/adapted by Daniel Berlin!
llvm-svn: 25144
2006-01-08 08:22:18 +00:00
Chris Lattner
7f45e655a8
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
Sumant Kowshik
4e682cf56e
Added comment for removing assert
...
llvm-svn: 24623
2005-12-06 18:16:08 +00:00
Sumant Kowshik
de8f54485b
Handling of zero length last fields in struct used for growing it arbitrarily
...
llvm-svn: 24620
2005-12-06 18:01:20 +00:00
Chris Lattner
80afe26d76
Add a simple clear() method
...
llvm-svn: 24543
2005-11-30 19:31:23 +00:00
Chris Lattner
8154ba119b
Fix PR670 and test/Regression/Transforms/Mem2Reg/2005-11-28-Crash.ll
...
llvm-svn: 24508
2005-11-29 01:07:12 +00:00
Chris Lattner
a19b6a0800
Fix the dominates method to return true if the two nodes are the same. Add
...
a new properlyDominates method to do what the old one did.
llvm-svn: 24407
2005-11-18 07:27:33 +00:00
Chris Lattner
3736ba002f
remove a dead header
...
llvm-svn: 24084
2005-10-29 04:43:10 +00:00
John Criswell
0893d5847f
Move some constant folding functions into LLVMAnalysis since they are used
...
by Analysis and Transformation passes.
llvm-svn: 24038
2005-10-27 16:00:10 +00:00
Chris Lattner
8a287bab72
This pass is very old and quite useless, remove it.
...
llvm-svn: 23946
2005-10-24 02:35:24 +00:00
Chris Lattner
48f3be3f64
add a proto
...
llvm-svn: 23923
2005-10-24 01:00:32 +00:00
Chris Lattner
b035470bae
new header
...
llvm-svn: 23921
2005-10-24 00:59:49 +00:00
Chris Lattner
1cb80df69b
add some prototypes
...
llvm-svn: 23919
2005-10-24 00:38:25 +00:00
Chris Lattner
f3471861a6
new method
...
llvm-svn: 23314
2005-09-12 17:03:16 +00:00
Chris Lattner
7597afd2b5
add two helper methods
...
llvm-svn: 22735
2005-08-09 23:36:18 +00:00
Jeff Cohen
019104459d
Keep tabs and trailing spaces out.
...
llvm-svn: 22565
2005-07-30 18:33:25 +00:00
Nate Begeman
0d1a7b6737
Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so that
...
other passes may use it.
llvm-svn: 22557
2005-07-30 00:12:19 +00:00
Jeff Cohen
81980781a1
Eliminate tabs and trailing spaces.
...
llvm-svn: 22520
2005-07-27 05:53:44 +00:00
Chris Lattner
83170cd9ba
Don't crash on a query where the block is not in any loop. Thanks to
...
Sameer D. Sahasrabuddhe for pointing this out!
llvm-svn: 22314
2005-06-29 17:41:25 +00:00
Andrew Lenharth
8ff5960b39
make AliasAnalysis know that VAArg writes memory. This is extremely conservative and should be fixed
...
llvm-svn: 22267
2005-06-20 15:24:23 +00:00
Chris Lattner
ee65cff29c
fix warning
...
llvm-svn: 22060
2005-05-15 17:25:14 +00:00
Chris Lattner
138c960903
fix compiler warning
...
llvm-svn: 22059
2005-05-15 17:23:19 +00:00
Reid Spencer
ba222e3e99
Some cleanups for compilation with GCC 4.0.0 to remove warnings:
...
* Use C++ style casts, not C style casts
* Abstract base classes should have virtual destructor.
llvm-svn: 22057
2005-05-15 16:13:11 +00:00
Tanya Lattner
889ebef2ba
Add accessor method,
...
llvm-svn: 21649
2005-05-01 16:22:41 +00:00
Misha Brukman
d292737471
Convert tabs to spaces
...
llvm-svn: 21436
2005-04-22 03:27:20 +00:00
Misha Brukman
3f0aa3dbf8
Remove trailing whitespace
...
llvm-svn: 21408
2005-04-21 20:19:05 +00:00
Chris Lattner
8ac773f1f1
add support for taking the address of free.
...
llvm-svn: 21395
2005-04-21 16:08:59 +00:00
Chris Lattner
472c891d23
Improve doxygen documentation, patch contributed by Evan Jones!
...
llvm-svn: 21393
2005-04-21 16:04:49 +00:00
Chris Lattner
dadd36cb34
merge EquivClassGraphs.h into DataStructure.h with the other DSA pass definitions.
...
llvm-svn: 21041
2005-04-02 20:08:06 +00:00
Chris Lattner
8b753bbfd9
add and use a callee_iterator typedef
...
llvm-svn: 21037
2005-04-02 20:02:32 +00:00
Chris Lattner
b58ad4e3eb
Change the ActualCallees callgraph from hash_multimap<Instruction,Function>
...
to std::set<std::pair<Inst,Func>> to avoid duplicate entries.
llvm-svn: 21030
2005-04-02 19:15:15 +00:00
Chris Lattner
df0b2499ae
add new spliceFrom methods.
...
llvm-svn: 20823
2005-03-24 23:45:20 +00:00
Chris Lattner
07f8360573
if a function doesn't access memory at all, it definitely doesn't read it.
...
llvm-svn: 20794
2005-03-23 23:27:34 +00:00
Chris Lattner
03631d6bc4
a hack to allow count-aa to work with ds-aa :(
...
llvm-svn: 20791
2005-03-23 21:59:34 +00:00
Chris Lattner
deb71bf41d
Fix a serious bug where we didn't insert globals into the globalset when
...
cloning a graph.
llvm-svn: 20770
2005-03-22 19:44:11 +00:00
Chris Lattner
b2d5129f59
add a method
...
llvm-svn: 20761
2005-03-22 01:42:10 +00:00
Chris Lattner
0ed923c45a
Now that the dead ctor is gone, nothing uses the old node mapping exported by
...
cloneInto: make it an internally used mapping.
llvm-svn: 20760
2005-03-22 00:36:51 +00:00
Chris Lattner
4264b1d97e
remove a dead ctor
...
llvm-svn: 20759
2005-03-22 00:33:35 +00:00
Chris Lattner
81a96c578c
now that the second argument is always this->ReturnNodes, don't bother passing it.
...
llvm-svn: 20758
2005-03-22 00:29:44 +00:00
Chris Lattner
d76fbaa604
drop the second argument to cloneInto, which is always the local scalar map.
...
llvm-svn: 20753
2005-03-22 00:20:56 +00:00
Chris Lattner
49d2b42d89
move this stuff out of line
...
llvm-svn: 20750
2005-03-22 00:09:36 +00:00
Chris Lattner
dc160907ad
allow passing clone flags into the ctor
...
llvm-svn: 20747
2005-03-21 22:49:43 +00:00
Chris Lattner
ed74103e0c
add a new map
...
llvm-svn: 20742
2005-03-21 20:29:56 +00:00
Chris Lattner
8b4af69d5b
make this const correct
...
llvm-svn: 20741
2005-03-21 20:28:50 +00:00
Chris Lattner
7c6e697cc6
Ugh, for some reason, I can't call this unless the reference is const!?!?!?
...
llvm-svn: 20732
2005-03-21 10:00:45 +00:00
Chris Lattner
37f099ae83
Make the first operand of this method be modifiable.
...
llvm-svn: 20730
2005-03-21 09:39:20 +00:00
Chris Lattner
64f3947426
add a method
...
llvm-svn: 20729
2005-03-21 09:38:39 +00:00
Chris Lattner
7550f93ef5
If merging two calls like: foo(A) and bar(B, C), make sure the result has two
...
arguments, not one.
llvm-svn: 20728
2005-03-21 09:18:39 +00:00
Chris Lattner
df1aa8b6ed
rename a method add a data structure.
...
llvm-svn: 20722
2005-03-21 04:46:35 +00:00
Chris Lattner
334f54c1a0
Remove the InlinedGlobals set which is always empty.
...
llvm-svn: 20715
2005-03-20 04:30:16 +00:00
Chris Lattner
d5c24fc737
add a method
...
llvm-svn: 20709
2005-03-20 03:29:39 +00:00
Chris Lattner
e0771155f6
rename some methods and add some new methods for dealing with the globals list
...
in a DSNode.
llvm-svn: 20701
2005-03-20 02:38:39 +00:00
Chris Lattner
5fc6764893
Make each scalar map contain a reference to an equivalence class of global
...
variables. Do not insert a global into the scalar map unless it is the
leader of its equivalence class.
llvm-svn: 20695
2005-03-19 22:13:13 +00:00
Chris Lattner
f279754707
Each DS collection now contains an equivalence class of globals values.
...
llvm-svn: 20694
2005-03-19 22:12:33 +00:00
Chris Lattner
09ef2499f6
add a method to clear globals from a node
...
llvm-svn: 20693
2005-03-19 22:12:03 +00:00
Chris Lattner
ea7615d853
add 3 methods
...
llvm-svn: 20667
2005-03-17 23:45:35 +00:00
Chris Lattner
0332fdf1d9
remove use of compat_iterator
...
llvm-svn: 20642
2005-03-16 22:42:01 +00:00
Chris Lattner
82b219432d
remove warning, make computeGGToGMapping return an invnodemap.
...
llvm-svn: 20621
2005-03-15 17:52:07 +00:00
Chris Lattner
4db93bc8d2
add support for hashing nodehandles.
...
llvm-svn: 20620
2005-03-15 17:51:51 +00:00
Chris Lattner
0376862732
add iterators for return nodes list.
...
llvm-svn: 20617
2005-03-15 16:46:11 +00:00
Jeff Cohen
c6d8a9188b
Do it right...
...
llvm-svn: 20605
2005-03-15 06:21:40 +00:00
Jeff Cohen
c456e6eceb
Fix VC++ breakage.
...
llvm-svn: 20604
2005-03-15 06:15:08 +00:00
Chris Lattner
eb2e04e812
Rename method, add counterpart.
...
llvm-svn: 20592
2005-03-15 00:58:09 +00:00
Chris Lattner
fa7bf4a21e
Add a useful method.
...
llvm-svn: 20587
2005-03-14 19:22:33 +00:00
Chris Lattner
252d6277b5
Add support for printing EQ graphs
...
llvm-svn: 20581
2005-03-13 19:50:40 +00:00
Chris Lattner
a4bd8bd9b0
remove this from the PA namespace, leaving it in the llvm ns
...
llvm-svn: 20574
2005-03-12 12:08:52 +00:00
Chris Lattner
848760c21f
Move this from the pool allocator project to here, where it logically belongs.
...
llvm-svn: 20570
2005-03-12 11:51:30 +00:00
Chris Lattner
43d8ea234d
export two methods
...
llvm-svn: 20526
2005-03-09 05:34:23 +00:00
Chris Lattner
ef140e77e6
new helper method
...
llvm-svn: 20491
2005-03-06 20:55:34 +00:00
Chris Lattner
f1e7201a6c
Fix a case where we incorrectly returned hasComputableLoopEvolution for
...
a ternary commutative expr. Remove FIXME that does not need to be fixed
(can't happen).
llvm-svn: 20335
2005-02-26 18:40:02 +00:00
Chris Lattner
e7d2b05fb0
Add a new method to make it easy to update graphs.
...
llvm-svn: 20194
2005-02-15 18:40:55 +00:00
Chris Lattner
4d1409f15a
Add a new replaceSymbolicValuesWithConcrete method to the SCEV class,
...
adjust const'ness a bit to be more correct.
llvm-svn: 20145
2005-02-13 04:34:51 +00:00
Chris Lattner
7636e86e7e
Add some iterators that should have come in long ago
...
llvm-svn: 20085
2005-02-09 03:14:29 +00:00
Chris Lattner
a378bec169
Hopefully fix the build on Darwin with GCC 3.3
...
llvm-svn: 20064
2005-02-07 16:09:01 +00:00
Chris Lattner
0febe1ed81
Add some new members
...
llvm-svn: 20034
2005-02-04 19:58:06 +00:00
Chris Lattner
820991042d
add new member
...
llvm-svn: 20033
2005-02-04 19:57:57 +00:00
Chris Lattner
22eb2f789e
Add a new method.
...
llvm-svn: 20017
2005-02-03 18:40:05 +00:00
Chris Lattner
3757dc8600
remove dead method
...
llvm-svn: 19977
2005-02-01 21:37:06 +00:00
Chris Lattner
ee6bc42f3e
* Make some methods more const correct.
...
* Change the FunctionCalls and AuxFunctionCalls vectors into std::lists.
This makes many operations on these lists much more natural, and avoids
*exteremely* expensive copying of DSCallSites (e.g. moving nodes around
between lists, erasing a node from not the end of the vector, etc).
With a profile build of analyze, this speeds up BU DS from 25.14s to
12.59s on 176.gcc. I expect that it would help TD even more, but I don't
have data for it.
This effectively eliminates removeIdenticalCalls and children from the
profile, going from 6.53 to 0.27s.
llvm-svn: 19939
2005-01-30 23:51:02 +00:00
Chris Lattner
382abe80a0
Improve conformance with the Misha spelling benchmark suite
...
llvm-svn: 19930
2005-01-30 00:09:23 +00:00
Chris Lattner
aa4ae8f5b3
Adjust to ilist changes.
...
llvm-svn: 19923
2005-01-29 18:41:12 +00:00
Jeff Cohen
29092b4f26
Get VC++ compiling again
...
llvm-svn: 19869
2005-01-28 07:29:32 +00:00
Chris Lattner
d009d52fe5
Add some methods.
...
llvm-svn: 19817
2005-01-24 19:55:34 +00:00
Jeff Cohen
a7f1ae5dc0
Apply feed back from Chris:
...
1. Rename createLoaderPass to CreateProfileLoaderPass
2. Opt shouldn't use the pass registered in CodeGen.
llvm-svn: 19431
2005-01-10 03:56:27 +00:00
Jeff Cohen
f692cd303d
Add last four createXxxPass functions
...
llvm-svn: 19424
2005-01-09 20:42:52 +00:00
Jeff Cohen
6827f061cc
Get lib/Analysis/DataStructure to compile with VC++
...
llvm-svn: 19412
2005-01-09 04:18:28 +00:00
Jeff Cohen
6c0db8d863
Add even more missing createXxxPass functions.
...
llvm-svn: 19402
2005-01-08 22:01:16 +00:00
Chris Lattner
40cf227b6a
Make code fit in 80 cols
...
llvm-svn: 19016
2004-12-17 17:02:54 +00:00
Chris Lattner
78b1a2c137
Make the AliasAnalysis interface more precise for common cases.
...
llvm-svn: 18956
2004-12-15 07:21:39 +00:00
Chris Lattner
8cb5c70203
Move method out of line
...
llvm-svn: 18666
2004-12-08 21:04:10 +00:00
Reid Spencer
d50c86f078
For PR387:\
...
Make only one print method to avoid overloaded virtual warnings when \
compiled with -Woverloaded-virtual
llvm-svn: 18589
2004-12-07 04:03:45 +00:00
Chris Lattner
c57746a1e0
Change interface to this method a bit
...
llvm-svn: 18274
2004-11-27 18:37:04 +00:00
Chris Lattner
ab36efe42b
Add a new interface
...
llvm-svn: 18266
2004-11-26 21:36:25 +00:00
Chris Lattner
5242fcc785
Add an assertion and a method
...
llvm-svn: 17353
2004-10-30 04:03:47 +00:00
Chris Lattner
dd0094e4ed
Convert 'struct' to 'class' in various places to adhere to the coding standards
...
and work better with VC++. Patch contributed by Morten Ofstad!
llvm-svn: 17281
2004-10-27 16:14:51 +00:00
Chris Lattner
df0849be71
Make sure any client of Dominators.h links in Dominators.cpp
...
llvm-svn: 16986
2004-10-14 15:46:59 +00:00
Chris Lattner
1bd3fdd438
Remove unneeded typedef, patch by Morten Ofstad
...
llvm-svn: 16984
2004-10-14 14:51:09 +00:00
Chris Lattner
4436e1c174
Add std:: prefix for compilers without correct koenig lookup implemented.
...
Patch contributed by Paolo Invernizzi
llvm-svn: 16933
2004-10-12 16:10:39 +00:00
Chris Lattner
43c0372c0b
'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
110bbafcf7
Add CallGraphNode::removeAnyCallEdgeTo method
...
llvm-svn: 16398
2004-09-18 21:34:34 +00:00
Chris Lattner
e9772b7a63
Implement new changeFunction method, nuke a never implemented one.
...
Add comments and doxygenify others.
llvm-svn: 16387
2004-09-18 00:22:43 +00:00
Chris Lattner
33596a1fba
Make sure to update the list end when an element is removed from it. This
...
fixes a crash in LICM when processing povray.
llvm-svn: 16367
2004-09-15 17:00:41 +00:00
Chris Lattner
20b39fdfb9
Add an AliasSetTracker::copyValue method
...
llvm-svn: 16343
2004-09-14 19:15:12 +00:00
Alkis Evlogimenos
0c50e0f211
Fixes to make LLVM compile with vc7.1.
...
Patch contributed by Paolo Invernizzi!
llvm-svn: 16152
2004-09-03 18:19:51 +00:00
Reid Spencer
c4abcbefb1
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
0b9b58e550
Add standard print/dump methods to CallGraph classes.
...
llvm-svn: 15569
2004-08-08 03:27:49 +00:00
Brian Gaeke
45adb41f46
Make the create...() functions for some of these passes return a FunctionPass *.
...
llvm-svn: 15276
2004-07-27 17:43:21 +00:00
Chris Lattner
f08a512d4d
New methods
...
llvm-svn: 15229
2004-07-26 05:50:09 +00:00
Chris Lattner
31d9cbf7bb
Add support for free instructions
...
llvm-svn: 15197
2004-07-25 07:57:37 +00:00
Chris Lattner
e3adc34ea7
Clean up reference counting to stop "leaking" alias sets
...
llvm-svn: 15099
2004-07-22 07:58:18 +00:00
Chris Lattner
67c1deddfc
Add a bunch of new functionality, primarily to do with removing aliasing
...
pointers from an AST.
llvm-svn: 15065
2004-07-21 07:03:57 +00:00
Chris Lattner
f9976c5dbf
Make the AST interface a bit richer by returning whether an insertion caused
...
an insertion or not (because the pointer set already existed).
llvm-svn: 15064
2004-07-21 05:18:04 +00:00
Chris Lattner
40107200fc
Remove dead file
...
llvm-svn: 14981
2004-07-18 23:44:15 +00:00
Reid Spencer
d7fbd79a5b
bug 122:
...
remove redundant isa<GlobalValue>
ensure isa<GlobalValue> case is processed before is<Constant>
llvm-svn: 14926
2004-07-17 23:36:58 +00:00
Chris Lattner
5ab6b23a7d
Fix for PR341
...
llvm-svn: 14846
2004-07-15 02:50:38 +00:00
Chris Lattner
c2b3e11473
All of these now live in the DataStructure directory
...
llvm-svn: 14664
2004-07-07 06:32:53 +00:00
Chris Lattner
bd3218fef2
Move DSA headers into Analysis/DataStructure to make it more obvious
...
what is implemented by the DataStructure library.
llvm-svn: 14662
2004-07-07 06:29:26 +00:00
Chris Lattner
fb2f56c7c8
As much as I hate to say it, the whole setNode interface for DSNodeHandles
...
is HOPELESSLY broken. The problem is that the embedded getNode call can
change the offset of the node handle in unpredictable ways.
As it turns out, all of the clients of this method really want to set
both the node and the offset, thus it is more efficient (and less buggy)
to just do both of them in one method call. This fixes some obscure bugs
handling non-forwarded node handles.
llvm-svn: 14660
2004-07-07 06:12:52 +00:00
Reid Spencer
37b31cbcba
Move SlotCalculator.h to lib/Bytecode/Writer since that is the only place
...
that needs it after the Type != Value changes (bug 122).
llvm-svn: 14605
2004-07-04 11:36:31 +00:00
Chris Lattner
89393e9cfd
Add new header
...
llvm-svn: 14461
2004-06-28 06:31:26 +00:00
Chris Lattner
7de3acb655
Move file to lib/Analysis/DataStructure
...
llvm-svn: 14454
2004-06-28 00:40:43 +00:00
Chris Lattner
08f4d224e7
Moved to lib/analysis/datastructure
...
llvm-svn: 14451
2004-06-28 00:30:29 +00:00
Chris Lattner
552cc597c5
Moved to lib/Analysis/DataStructure
...
llvm-svn: 14449
2004-06-28 00:27:34 +00:00
Chris Lattner
de1c8b455c
Moved to lib/Analysis/DataStructure
...
llvm-svn: 14447
2004-06-28 00:20:39 +00:00
Chris Lattner
228e6d64d0
Remove distasteful method which is really part of the indvars pass
...
llvm-svn: 14359
2004-06-24 06:52:20 +00:00
Misha Brukman
d3374cf482
Remove extra space.
...
llvm-svn: 14117
2004-06-10 12:51:35 +00:00
Reid Spencer
dccf1747a1
Part of bug 122:
...
This change removes the BuildBytecodeInfo flag from the SlotCalculator
class. This flag was needed to distinguish between the Bytecode/Writer
and the AsmWriter. Now that AsmWriter doesn't use SlotCalculator, we can
remove this flag and simplify some code. Also, some minor name changes
to CachedWriter.h needed to be committed (missed in previous commit).
llvm-svn: 13785
2004-05-26 07:37:11 +00:00
Chris Lattner
bdc2cf6dec
Several *major* changes to the AA interfaces:
...
1. Provide interfaces so that clients can update alias analyses to reflect
the changes made by the transformations.
2. Change how alias analysis implementations work overall. In particular,
now clients will automatically forward to chained AA implementations: they
don't have to remember to do it themselves.
llvm-svn: 13678
2004-05-23 21:12:38 +00:00
Chris Lattner
fe63a87a98
Add interfaces to update value numbering results
...
llvm-svn: 13677
2004-05-23 21:11:17 +00:00
Chris Lattner
0588bd19d2
Rename a method
...
llvm-svn: 13676
2004-05-23 21:10:58 +00:00
Vikram S. Adve
893c53a559
Fix size/offset assertion to allow negative offsets and folded nodes.
...
llvm-svn: 13644
2004-05-23 07:34:53 +00:00
Chris Lattner
628e839194
It's not clear to me whether the old version was correct C++ code, but in
...
any case it's not portable.
llvm-svn: 13621
2004-05-21 18:38:16 +00:00
Brian Gaeke
6e9dd8d3cc
Define erase forwarding method on traces
...
llvm-svn: 13591
2004-05-17 21:17:21 +00:00
Brian Gaeke
e9fab81769
Add BBTrace accessor method and data member.
...
llvm-svn: 13351
2004-05-04 17:11:13 +00:00
Brian Gaeke
c9d203e3d2
New header file containing profile info enums shared between the C++ analysis
...
libraries and the C runtime support library
llvm-svn: 13347
2004-05-04 16:57:57 +00:00
Chris Lattner
2e752b62b4
Initialize member out of paranoia
...
llvm-svn: 13319
2004-05-02 16:06:40 +00:00
Chris Lattner
adacba2678
Fix warning
...
llvm-svn: 13189
2004-04-27 18:21:56 +00:00
Brian Gaeke
9679a3b445
Because I like being able to instantiate the cfgprinter from external projects,
...
this header file is born.
llvm-svn: 13176
2004-04-26 16:27:53 +00:00
Brian Gaeke
1aada2b128
Fix a typo in a comment.
...
llvm-svn: 13174
2004-04-26 16:26:21 +00:00
Chris Lattner
b2e1576e72
Remove the SCEV::expandCodeFor method, add a new SCEVVisitor class.
...
llvm-svn: 13133
2004-04-23 21:28:25 +00:00
Chris Lattner
c79f8aeb82
Add an ugly cast
...
llvm-svn: 13107
2004-04-22 15:00:36 +00:00
Chris Lattner
bfc19a576a
Add a method
...
llvm-svn: 13105
2004-04-22 14:56:51 +00:00
Chris Lattner
522abc00b8
Allow getting the module from a call graph
...
llvm-svn: 13086
2004-04-20 21:52:12 +00:00
Chris Lattner
6aa66a1cae
Eliminate a poorly conceived method
...
llvm-svn: 13065
2004-04-19 06:26:46 +00:00
Chris Lattner
c35a86f48b
* Improve file header comment
...
* Remove #include
* Add some methods to update loop/loopinfo
* Stop explicitly holding the loop depth in the Loop class. Instead, just
dynamically calculate it. This makes it easier to update LoopInfo as a
result of transformations.
llvm-svn: 13059
2004-04-19 03:03:19 +00:00
Chris Lattner
0ce3a74370
Provide an interface that is more convenient for iterating over the blocks
...
in a loop.
llvm-svn: 13052
2004-04-18 23:37:03 +00:00
Chris Lattner
83017d0b1b
Add new method.
...
llvm-svn: 13049
2004-04-18 22:45:16 +00:00
Chris Lattner
7174acca00
Change the ExitBlocks list from being explicitly contained in the Loop
...
structure to being dynamically computed on demand. This makes updating
loop information MUCH easier.
llvm-svn: 13045
2004-04-18 22:14:10 +00:00
Chris Lattner
b17c6d4732
Add a new method
...
llvm-svn: 13035
2004-04-18 06:54:34 +00:00
Chris Lattner
a8ec64511a
Allow clients to delete loops, add a new method
...
llvm-svn: 13031
2004-04-18 05:37:42 +00:00
Chris Lattner
5c992ad183
Add some helpful methods
...
llvm-svn: 12959
2004-04-15 15:15:40 +00:00
Chris Lattner
0d220df227
Publically export all of these classes from the ScalarEvolutions.cpp file
...
llvm-svn: 12957
2004-04-15 15:06:59 +00:00
Chris Lattner
fd1cfeeb1d
Add some methods that are useful for updating loop information.
...
llvm-svn: 12871
2004-04-12 20:26:17 +00:00
Chris Lattner
12e1831ffe
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
Chris Lattner
ba50022f83
Make comments above APIs reflect what they should do.
...
llvm-svn: 12830
2004-04-11 16:42:50 +00:00
Chris Lattner
d0345fb4a1
New method to allow more efficient clients
...
llvm-svn: 12829
2004-04-11 16:35:30 +00:00
Chris Lattner
3def8f7eab
Note to self: SAVE FILES!
...
llvm-svn: 12823
2004-04-10 22:32:47 +00:00
Chris Lattner
50afdb258f
Add an interface to update value numbering
...
llvm-svn: 12822
2004-04-10 22:32:09 +00:00
Chris Lattner
697d1d7df2
Clarify interface
...
llvm-svn: 12805
2004-04-10 06:11:29 +00:00
Chris Lattner
409ef7935c
Remove obsolete files
...
llvm-svn: 12633
2004-04-02 20:56:24 +00:00
Chris Lattner
292d3956ae
cleanup some long-dead code
...
llvm-svn: 12628
2004-04-02 20:46:26 +00:00
Chris Lattner
74911ffd6b
Add a new analysis
...
llvm-svn: 12619
2004-04-02 20:23:17 +00:00
Chris Lattner
c0fede30c5
Make the verifier API more complete and useful
...
llvm-svn: 12608
2004-04-02 15:44:33 +00:00
Chris Lattner
6a3efa7a38
Tweak argument
...
llvm-svn: 12412
2004-03-15 04:08:18 +00:00
Chris Lattner
a546ebb664
Deinline a couple of methods. Improve comment.
...
llvm-svn: 12411
2004-03-15 04:07:59 +00:00
Chris Lattner
275dd432ab
Add two new methods which can be used to enable a bunch of transformations
...
in common cases.
llvm-svn: 12407
2004-03-15 01:58:54 +00:00
Misha Brukman
6ed546e3d2
Doxygenified and cleand up comments.
...
llvm-svn: 12294
2004-03-11 23:08:20 +00:00
Chris Lattner
2fef10e580
new method
...
llvm-svn: 12263
2004-03-09 19:36:59 +00:00
Chris Lattner
bf888377d5
Switch over to using edge profile information as the basic profiling representation,
...
from basic block counts.
llvm-svn: 12241
2004-03-08 22:03:45 +00:00
Chris Lattner
3b0551752b
We don't want to make this a pure interface, as it makes all implementors
...
bear the burden of implementing what will be all exactly the same methods.
They just want to provide the information in differing ways.
llvm-svn: 12239
2004-03-08 21:30:18 +00:00
Chris Lattner
09255cd709
Rearrange some methods, implement the dominates method
...
llvm-svn: 12237
2004-03-08 21:07:12 +00:00
Chris Lattner
91ea0d3176
Import the trace class from the reoptimizer
...
llvm-svn: 12236
2004-03-08 20:57:27 +00:00
Chris Lattner
525635b764
Add support for representing edge counts
...
llvm-svn: 12228
2004-03-08 18:19:37 +00:00
Chris Lattner
fb8eb94027
Rename method, add new method
...
llvm-svn: 12103
2004-03-03 22:00:20 +00:00
Chris Lattner
43d5238d45
De-inline methods
...
llvm-svn: 12101
2004-03-03 20:55:15 +00:00
Chris Lattner
ed70152b7d
Add new method
...
llvm-svn: 12056
2004-03-01 19:36:50 +00:00
Chris Lattner
176413cedb
Fix the "partial pool allocator" on em3d and others. The problem is that
...
DSNodes, unlike other GraphTraits nodes, can have null outgoing edges, and
df_iterator doesn't take this into consideration. As a workaround, the
successor iterator now handles null nodes and 'indicates' that null has
no successors.
llvm-svn: 12025
2004-03-01 01:42:26 +00:00
Misha Brukman
13230a9e07
Doxygenify comments.
...
llvm-svn: 12015
2004-02-29 23:55:11 +00:00
Chris Lattner
7906b0bc03
Update comments and add warning
...
llvm-svn: 11691
2004-02-21 22:27:20 +00:00
Chris Lattner
1316ee07fa
Add a method useful for updating DSA
...
llvm-svn: 11636
2004-02-19 21:27:50 +00:00
Chris Lattner
19d997875e
Add an important prototype
...
llvm-svn: 11320
2004-02-11 06:11:06 +00:00
Chris Lattner
427c8ee657
Factor this code out of llvm-prof
...
llvm-svn: 11314
2004-02-11 05:54:25 +00:00
Chris Lattner
a81258a786
An initial implementation of an LLVM ProfileInfo class which is designed to
...
eventually allow Passes to use profiling information to direct them.
llvm-svn: 11294
2004-02-10 22:11:42 +00:00
Chris Lattner
b38552cf42
Remove some unneeded stuff
...
llvm-svn: 11286
2004-02-10 21:19:49 +00:00
Chris Lattner
32a3eb0b88
Substantially improve the DSA code by removing 'forwarding' nodes from
...
DSGraphs while they are forwarding. When the last reference to the forwarding
node is dropped, the forwarding node is autodeleted. This should simplify
removeTriviallyDead nodes, and is only (efficiently) possible because we are
using an ilist of dsnodes now.
llvm-svn: 11175
2004-02-08 01:27:18 +00:00
Chris Lattner
29067016a4
Switch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode>
...
llvm-svn: 11173
2004-02-08 00:53:26 +00:00
Chris Lattner
e78429de24
Change to use iterators instead of direct access
...
llvm-svn: 11170
2004-02-08 00:22:41 +00:00
Chris Lattner
48a0d7e1c0
Abstract out the Nodes collection. Instead of providing a getNodes() method,
...
provide node_begin/end iterators, which are only guaranteed to be
bidirectional, not random access.
llvm-svn: 11165
2004-02-07 23:57:09 +00:00
Chris Lattner
2199bb0c7a
Actually USE isForwarding method
...
llvm-svn: 11160
2004-02-07 23:02:32 +00:00
Chris Lattner
6337300b83
As Alkis pointed out to me, I forgot to commit this... :(
...
llvm-svn: 11159
2004-02-07 22:54:19 +00:00
Chris Lattner
bb4d6f00f9
Add a new pointsToConstantMemory method to the AliasAnalysis interface
...
which can be implemented to improve the quality of mod-ref information.
llvm-svn: 11020
2004-01-30 22:15:41 +00:00
Misha Brukman
64f7595915
Doxygenify comments.
...
llvm-svn: 11014
2004-01-30 17:22:50 +00:00
Chris Lattner
fc239578ad
Keep track of all of the globals inserted into the scalar map
...
llvm-svn: 10995
2004-01-28 03:01:22 +00:00
Chris Lattner
268db40292
Pull the ScalarMap out into something that is more structured than what we had
...
before. This allows us to have a place to implement optimizations in a
structured way.
llvm-svn: 10994
2004-01-28 02:42:12 +00:00
Chris Lattner
2ead39d5c8
Minor tweaks
...
llvm-svn: 10983
2004-01-27 21:49:42 +00:00
Chris Lattner
16a5e6bf33
Add comments, allow DSNode "copy ctor" to ignore outgoing links, add more
...
structured access to the globals list, add a couple helper methods.
llvm-svn: 10982
2004-01-27 21:49:25 +00:00
Chris Lattner
95d03595ae
* cloneReachable* and clonePartiallyInto are not obsolete
...
* Make AssertNodeInGraph not be HORRIBLY time consuming
* Eliminate the dead mergeInGlobalsGraph method
*** Add the definition for the new ReachabilityCloner class
llvm-svn: 10981
2004-01-27 21:48:35 +00:00
Chris Lattner
de6ca7bf30
Add new flag, other minor modifications
...
llvm-svn: 10969
2004-01-23 01:42:32 +00:00
Chris Lattner
99f9b84640
Fix grammar
...
llvm-svn: 10968
2004-01-23 01:42:16 +00:00
Chris Lattner
a72f3a387a
Eliminated the CompletedNodes argument to the cloneReachable* methods. This
...
map was only used to implement a marginal GlobalsGraph optimization, and it
actually slows the analysis down (due to the overhead of keeping it), so just
eliminate it entirely.
llvm-svn: 10955
2004-01-22 16:56:13 +00:00
Chris Lattner
7348bd20b1
It doesn't make sense for one side to be const, but not the other.
...
llvm-svn: 10952
2004-01-22 16:08:51 +00:00
Chris Lattner
5f0e00c8b2
Remove const qualifier (all Value*'s are nonconst in DSA, so it's not clear
...
why this one was)
Add new method proto
llvm-svn: 10950
2004-01-22 15:26:52 +00:00
Chris Lattner
f2a7d96dde
Specialize std::swap correctly
...
llvm-svn: 10949
2004-01-22 15:26:15 +00:00
Chris Lattner
3910d21d01
Move SlotCalculator.h from include/llvm to include/llvm/Analysis
...
llvm-svn: 10930
2004-01-20 19:50:12 +00:00
Chris Lattner
1736f44b1d
Improve encapsulation in the Loop and LoopInfo classes by eliminating the
...
getSubLoops/getTopLevelLoops methods, replacing them with iterator-based
accessors.
llvm-svn: 10714
2004-01-08 00:09:44 +00:00
Chris Lattner
6ecac445aa
Rename ClassifyExpression -> ClassifyExpr
...
llvm-svn: 10591
2003-12-23 08:03:40 +00:00
Chris Lattner
ddc02fd15d
fix grammao
...
llvm-svn: 10576
2003-12-22 04:08:12 +00:00