Chris Lattner
2dea8d65bc
Add one that I missed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11179 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:53:10 +00:00
Chris Lattner
c3f5f7701f
Instead of callign removeTriviallyDeadNodes on the global graph every time
...
removeDeadNodes is called, only call it at the end of the pass being run.
This saves 1.3 seconds running DSA on 177.mesa (5.3->4.0s), which is
pretty big. This is only possible because of the automatic garbage
collection done on forwarding nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11178 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:51:48 +00:00
Chris Lattner
cd90f21c0c
Remove another unneeded call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11177 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:40:40 +00:00
Chris Lattner
cadfac6879
This call is no longer needed now that merging does not produce garbage
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11176 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:38:34 +00:00
Chris Lattner
4ff0b9636d
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11175 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:27:18 +00:00
Chris Lattner
9857c1a6ae
Bugfix for ilist conversion. The ilist wants to make an 'end' node which has
...
G == 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11174 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:05:37 +00:00
Chris Lattner
28897e1784
Switch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11173 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 00:53:26 +00:00
Chris Lattner
9fd37ba721
Change to use node_iterators instead of direct access to Nodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11171 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 00:23:16 +00:00
Chris Lattner
e92e76446e
getNodes() is gone, use node_begin/end instead
...
Rename stats from dsnode -> dsa
Add a new stat
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11167 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 23:58:05 +00:00
Chris Lattner
a84c681637
getNodes() is gone
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11166 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 23:57:26 +00:00
Chris Lattner
a5ca28cafe
There is no need to clone over nodes that are going to be dead anyway
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11157 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 22:00:03 +00:00
Chris Lattner
3b303d91d7
In a "seeing the forest through the trees" kinda situation, I realized that a
...
complete rewrite of load-vn will make it a bit faster. This changes speeds up
the gcse pass (which uses load-vn) from 25.45s to 0.42s on the testcase in
PR209.
I've also verified that this gives the exact same results as the old one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11132 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 17:20:00 +00:00
Chris Lattner
57ef9a2392
This is a big diff with no functionality change. We just reorder some code,
...
which causes big reindentation. While I'm at it, I fix the fixme by removing
some dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11131 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 05:56:23 +00:00
Chris Lattner
270db367e0
finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11130 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 05:51:40 +00:00
Tanya Lattner
1ad5bc5616
Fixed Chris' typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11128 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 04:45:21 +00:00
Chris Lattner
adf9b90411
Implement optimizations for handling large basic blocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11126 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 00:36:43 +00:00
Chris Lattner
a67138ddff
Avoid referencing deleted DSgraphs when merging an SCC into a larger SCC. This
...
fixes the crash in 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11033 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-31 21:02:18 +00:00
Chris Lattner
a4dd6743e7
Fix thinko
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11027 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 22:48:02 +00:00
Chris Lattner
92e41d5982
Forward method request to chained aa implementation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11024 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 22:20:55 +00:00
Chris Lattner
bc1daaa8bb
Implement the pointsToConstantMemory() method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11022 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 22:17:24 +00:00
Chris Lattner
f4d904d7e3
Improve mod/ref information based on the pointsToConstantMemory method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11021 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 22:16:42 +00:00
Misha Brukman
10d208d7b1
Order #includes alphabetically, per style guide.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11015 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30 17:26:24 +00:00
Chris Lattner
ead9eb75d7
Fix a bug aflicting 265.gap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11006 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-29 08:36:22 +00:00
Chris Lattner
17a93e2e1b
Minor bugfixes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11005 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-29 03:32:15 +00:00
Chris Lattner
62482e5649
Rename DSGraph::ScalarMapTy -> DSScalarMap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11001 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 09:15:42 +00:00
Chris Lattner
28da03b0fe
Fix a bug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11000 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 03:31:34 +00:00
Chris Lattner
a3fd88d01f
Eliminate the call to removeTriviallyDeadNodes from updateFromGlobals graph,
...
moving it to the start of removeDeadNodes. This speeds up DSA by 2s on perlbmk
from 41s
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10999 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 03:24:41 +00:00
Chris Lattner
6d8f3dcd75
In the TD pass, iterate over globals directly instead of through the whole scalar
...
map. This saves 5s in the TD pass, from 22->17s on perlbmk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10998 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 03:12:48 +00:00
Chris Lattner
34741cf0dd
In the TD pass, don't iterate over the scalar map to find the globals, iterate over
...
the globals directly. This doesn't save any substantial time, however, because the
globals graph only contains globals!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10997 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 03:07:30 +00:00
Chris Lattner
bdce7b7844
In updateFromGlobalsGraph, instead of iterating over all of the scalars in the
...
function to find the globals, iterate over all of the globals directly. This
speeds the function up from 14s to 6.3s on perlbmk, reducing DSA time from
53->46s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10996 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 03:03:06 +00:00
Chris Lattner
a88a55cf10
Minor tweaks, eliminate useless integer pruning optimziation, turn on
...
timers by default
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10993 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 02:41:32 +00:00
Chris Lattner
239644dc3b
Further reduce the number of nodes cloned with getClonedNH, using merge instead.
...
This reduces the number of nodes allocated, then immediately merged and DNE'd
from 2193852 to 1298049. unfortunately this only speeds DSA up by ~1.5s (of
53s), because it's spending most of its time waddling through the scalar map :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10992 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 02:11:49 +00:00
Chris Lattner
00948c05b2
Add a timer, fix a minor bug.
...
Also, use RC::merge when possible, reducing the number of nodes allocated, then immediately merged away from 2985444 to 2193852 on perlbmk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10991 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 02:05:05 +00:00
Chris Lattner
64507e39da
Another bugfix, disable "spurious" output.
...
You gotta love spurious
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10990 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28 01:19:52 +00:00
Chris Lattner
352e31f572
fix bug in previous checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10989 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 22:54:56 +00:00
Chris Lattner
0b14487591
* Add a new commandline argument to control the "global roots hack". Default
...
it to be off. If it looks like it's completely unnecessary after testing, I
will remove it completely (which is the hope).
* Callers of the DSNode "copy ctor" can not choose to not copy links.
* Make node collapsing not create a garbage node in some cases, avoiding a
memory allocation, and a subsequent DNE.
* When merging types, allow two functions of different types to be merged
without collapsing.
* Use DSNodeHandle::isNull more often instead of DSNodeHandle::getNode() == 0,
as it is much more efficient.
*** Implement the new, more efficient reachability cloner class
In addition to only cloning nodes that are reachable from interesting
roots, this also fixes the huge inefficiency we had where we cloned lots
of nodes, only to merge them away immediately after they were cloned.
Now we only actually allocate a node if there isn't one to merge it into.
* Eliminate the now-obsolete cloneReachable* and clonePartiallyInto methods
* Rewrite updateFromGlobalsGraph to use the reachability cloner
* Rewrite mergeInGraph to use the reachability cloner
* Disable the scalar map scanning code in removeTriviallyDeadNodes. In large
SCC's, this is extremely expensive. We need a better data structure for the
scalar map, because we really want to scan the unique node handles, not ALL
of the scalars.
* Remove the incorrect SANER_CODE_FOR_CHECKING_IF_ALL_REFERRERS_ARE_FROM_SCALARMAP code.
* Move the code for eliminating integer nodes from the trivially dead
eliminator to the dead node eliminator.
* removeDeadNodes no longer uses removeTriviallyDeadNodes, as it contains a
superset of the node removal power.
* Only futz around with the globals graph in removeDeadNodes if it is modified
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10987 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 22:03:40 +00:00
Chris Lattner
f325e3981e
Rewrite to use the reachability cloner interface. Also, make this much more
...
efficient in the case where a function calls into the same graph multiple times
(ie, it either contains multiple calls to the same function, or multiple calls
to functions in the same SCC graph)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10986 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 21:53:14 +00:00
Chris Lattner
02da032b03
minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10985 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 21:51:19 +00:00
Chris Lattner
825a02ae36
Get clone flags right, so we don't build InlinedGlobals only to clear them
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10984 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 21:50:41 +00:00
Chris Lattner
091f776081
Initial support for implementing clonePartiallyInto in terms of cloneReachableSubgraph, though this support is currently disabled.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10970 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-23 01:44:53 +00:00
Chris Lattner
2f561384fb
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10955 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 16:56:13 +00:00
Chris Lattner
93ddd7ea10
Ok, I'm tired of pulling out all my timers to check stuff in, just do it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10954 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 16:36:28 +00:00
Chris Lattner
5254a8dda8
Bug fix: X.mergeWith(Y) was not updating Y if Y was a null node handle!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10953 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 16:31:08 +00:00
Chris Lattner
4c6cb7a2b1
Start implementing DSGraph::clonePartiallyInto and implement mergeInGraph
...
in terms of it.
Though clonePartiallyInto is not cloning partial graphs yet, this change
dramatically speeds up inlining of graphs with many scalars. For example,
this change speeds up the BU pass on 253.perlbmk from 69s to 36s, because
it avoids iteration over the scalar map, which can get pretty large.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10951 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 15:30:58 +00:00
Chris Lattner
4a85776993
Allow disabling of ALL printing overhead when performing timings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10948 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22 13:42:43 +00:00
Chris Lattner
67bb7603ea
Remove use of ConstantHandling itf
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10800 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 20:13:04 +00:00
Chris Lattner
e9028638bf
Remove use of ConstantHandling itf
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10781 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 18:02:15 +00:00
Chris Lattner
6eb88d44c9
Eliminate use of ConstantHandling itf
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10780 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 17:57:32 +00:00
Chris Lattner
b3da2fd16f
Live var is now in lib/Target/Sparc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10735 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-09 18:16:20 +00:00
Chris Lattner
12023d67f8
Move sparc-specific code into lib/Target/Sparc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10734 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-09 18:15:56 +00:00
Chris Lattner
329c1c6c94
Improve encapsulation in the Loop and LoopInfo classes by eliminating the
...
getSubLoops/getTopLevelLoops methods, replacing them with iterator-based
accessors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10714 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-08 00:09:44 +00:00
Chris Lattner
6cdc42b3d1
Add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10617 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-28 04:03:49 +00:00
Chris Lattner
9a0a41f224
rename ClassifyExpression -> ClassifyExpr
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10592 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-23 08:04:08 +00:00
Chris Lattner
790462ca1f
Finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10588 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-23 06:44:41 +00:00
Chris Lattner
4c307d4a90
finegrainify namespacification
...
Implement indvar analysis of getelementptr and sub expressions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10582 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-22 05:26:29 +00:00
Chris Lattner
2cffeec014
Add a new AliassetTracker::remove method. Because we need to be able to remove
...
a pointer from an AliasSet, maintain the pointer values on a doubly linked
list instead of a singly linked list, to permit efficient removal from the
middle of the list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10506 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 08:11:56 +00:00
Chris Lattner
2cdd21c2e4
Finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10464 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 21:35:53 +00:00
Alkis Evlogimenos
4d7af65903
Change interface of MachineOperand as follows:
...
a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
b) add isUse(), isDef()
c) rename opHiBits32() to isHiBits32(),
opLoBits32() to isLoBits32(),
opHiBits64() to isHiBits64(),
opLoBits64() to isLoBits64().
This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 13:24:17 +00:00
Chris Lattner
e26092456a
Finegrainify namespacification
...
Add capability to represent volatile AliasSet's
Propagate this information from loads&stores into the aliassets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10457 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 04:52:11 +00:00
Chris Lattner
4a83088b30
Factor out some duplicated code, implement the rest of the cases in
...
BasicAA/2003-12-11-ConstExprGEP.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10412 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 23:20:16 +00:00
Chris Lattner
b307c88fe7
Fix PR86. This makes basicaa _SIGNIFICANLY_ more aggressive with getelementptr's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10410 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 22:44:13 +00:00
Chris Lattner
1ca2a583cb
Finegrainify namespacification
...
Add new -print-cfg-only pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10407 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 21:48:18 +00:00
Chris Lattner
c54735e7cb
Fix a glaring bug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10400 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 06:06:28 +00:00
Chris Lattner
88d3e03429
Realize the gep P, <zeros> must aliases P.
...
This is a partial fix for PR 86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10399 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 06:02:00 +00:00
Chris Lattner
863914578a
With Brian's change to AA.h we can now clean out this uglyness
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10398 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 05:44:59 +00:00
Brian Gaeke
8e32f5e46d
IncludeFile hack to pull in BasicValueNumbering whenever ValueNumbering.h
...
is included.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10397 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 05:05:56 +00:00
Chris Lattner
381bf79ae1
Finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10367 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 15:34:03 +00:00
Chris Lattner
9a4f8ef787
Finegrainify namespacification
...
Provide a context module to WriteAsOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10366 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 15:33:59 +00:00
Chris Lattner
cd7c287730
Finegrainify namespacification
...
Move method out of generic dominators construction code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10299 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-07 00:35:42 +00:00
Chris Lattner
fa3711a0f8
Do not depend on index type to determine whether it is a structure or sequential index
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10221 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25 20:19:55 +00:00
Chris Lattner
9d7c9ea053
Fix file header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10219 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25 20:11:47 +00:00
Chris Lattner
b66214c5ad
Remove dead variable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10218 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25 20:11:00 +00:00
Chris Lattner
1af55e1693
Use gep_type_begin/end instead of looking for ubytes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10217 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25 20:10:07 +00:00
Chris Lattner
ec4e8085e8
Finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10210 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25 18:33:40 +00:00
Chris Lattner
1e2385b941
Finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10138 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21 21:54:22 +00:00
Chris Lattner
179bc7dcb1
Implement a small optimization to handling of GEP's that are equivalent to casts.
...
This results in substantially reduced collapsing for some testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10002 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-14 17:09:46 +00:00
Chris Lattner
a366c98077
Trying to get the dsgraph for an external function is bad for DSA's health
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9979 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 18:48:11 +00:00
Chris Lattner
79390d48d0
Implement the CompleteBU pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9964 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 05:05:41 +00:00
Chris Lattner
6acfe92b32
Minor code cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9962 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 05:04:19 +00:00
Chris Lattner
a190766a54
Disable integer tracking by default
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9960 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 03:10:49 +00:00
Chris Lattner
95724a4aec
Add an initial version of the CompleteBUDataStructures class, which is currently
...
identical to the BU pass, but has an accurate call graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9956 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 01:43:00 +00:00
Chris Lattner
9a92729581
Fine-grainify namespaces for this library
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9948 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 23:11:14 +00:00
Chris Lattner
afc1dbafb4
Add new argument to disable checking
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9922 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 17:58:22 +00:00
Chris Lattner
d8ea8a5027
Print return nodes for graphs with multiple functions in them correctly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9914 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 04:58:19 +00:00
Chris Lattner
9dc4185763
Don't crash if no gg
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9913 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 04:57:58 +00:00
Chris Lattner
c5f0afad2c
Cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9907 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12 00:40:34 +00:00
Brian Gaeke
d0fde30ce8
Put all LLVM code into the llvm namespace, as per bug 109.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
Chris Lattner
413406c068
Compute node offsets correctly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9895 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 20:12:32 +00:00
Chris Lattner
400433dfea
Add new method for computing node mappings. This is used by the pool allocator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9880 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 05:08:59 +00:00
Chris Lattner
ccc4b1a2d3
More additions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9834 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-09 19:54:30 +00:00
Chris Lattner
cda2347bcd
Add more functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9826 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-09 04:10:41 +00:00
Chris Lattner
4d728e867a
None of the __llvm_* functions call into the program. This makes the
...
callgraph MUCH simpler for eh using program.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9825 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-09 04:00:59 +00:00
Chris Lattner
67ce57ac49
Add support for memmove
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9824 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-09 03:32:52 +00:00
Chris Lattner
fb8c61056f
Handle bzero and memset in the local analysis, because we were missing the fact
...
that memset returns its argument!!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9811 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-08 21:55:50 +00:00
Chris Lattner
492dda9fd5
This doesn't use DSCallSiteIterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9809 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-08 21:17:37 +00:00
Chris Lattner
0271345368
Fix name collision
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9722 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-05 05:55:45 +00:00
Chris Lattner
15869aa2c7
All DSGraphs keep a reference to the targetdata they are created with. This is
...
used to eliminate the hard coded, hacked in, sparc specific, global TargetData.
Changing the TargetData used to actually match the code fixes problems, and
eliminates a crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9659 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-02 22:27:28 +00:00
Chris Lattner
dbfe36e51e
Fix bug: test/Regression/Analysis/DSGraph/2003-11-02-NodeCollapsing.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9658 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-02 21:02:20 +00:00
Chris Lattner
ba12c23ca7
Including the symbol table in the FindUsedTypes analysis was the WRONG way
...
to fix test/Regression/CBackend/2003-10-23-UnusedType.ll. This completely
neutered the deadtypeelim pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9646 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-02 01:28:41 +00:00
Chris Lattner
07a38e7b77
Make the call graph more precise despite the hated constantpointerrefs.
...
Do you detect the animosity I feel towards CPRs yet?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9640 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-31 21:05:12 +00:00
Chris Lattner
14fffaf6c1
When someone includes CallGraph.h, make sure that they link in CallGraph.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9611 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-30 05:17:30 +00:00
Chris Lattner
c2bcde4da0
Fix PR62, and llvm/test/Regression/CBackend/2003-10-28-CastToPtrToStruct.ll
...
ConstantExpr's can use unrelated types, make sure to scan them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9569 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-28 23:09:45 +00:00
Chris Lattner
472a7ef1cb
Fix bug: CBackend/2003-10-23-UnusedType.ll and hopefully 252.eon
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9441 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-23 19:30:30 +00:00
Chris Lattner
b7c4c992be
This is a disgusting hack that improves code substantially, by making
...
callgraphSCC passes more effective.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9384 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-22 18:53:31 +00:00
Chris Lattner
59dc17873d
Do not add unreachable code to a natural loop!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9377 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-22 16:41:21 +00:00
Chris Lattner
d073ea0053
Make sure to print labels on nodes without names
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9376 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-22 16:30:58 +00:00
Chris Lattner
a75b3ef9a8
If the basic block has no name, make sure to print the % number of it
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9375 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-22 16:22:42 +00:00
Chris Lattner
002362c837
Implement the Function::viewCFG* methods, for use in a debugger. Also, the
...
-print-cfg pass now lives here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9374 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-22 16:03:49 +00:00
John Criswell
856ba76200
Added LLVM copyright header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9321 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-21 15:17:13 +00:00
John Criswell
e488e9360b
Added LLVM copyright notice to Makefiles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9312 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 22:26:57 +00:00
Chris Lattner
e9d3c6b919
Convert this code from using annotations to using a local map
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9310 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:52:23 +00:00
Chris Lattner
0beae0cdac
Remove using declaration
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9307 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:38:17 +00:00
John Criswell
b576c94c15
Added LLVM project notice to the top of every C++ source file.
...
Header files will be on the way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 19:43:21 +00:00
Chris Lattner
3b237fcd38
Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9269 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-19 21:34:28 +00:00
Chris Lattner
50b5d71cb7
Make use of "external" depth-first iterators to avoid revisiting nodes
...
multiple times. This reduces the time to construct post-dominance sets a LOT.
For example, optimizing perlbmk goes from taking 12.9894s to 1.4074s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9091 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-13 16:36:06 +00:00
Chris Lattner
cf3056db0f
Regularize header file comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9071 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-13 03:32:08 +00:00
Chris Lattner
2ef1236e4a
Make getNumBackEdges more efficient
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9063 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-12 22:14:27 +00:00
Misha Brukman
cf00c4ab3b
Fix spelling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9027 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-10 17:57:28 +00:00
Alkis Evlogimenos
b5c1af4773
Use std::string::size_type for for ColonPos to stop gcc from giving a warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8811 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-01 22:49:22 +00:00
Chris Lattner
fbc2d84ce9
DOn't crash if program calls the null pointer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8708 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-24 23:42:58 +00:00
Chris Lattner
03f252f1eb
Remove explicit use of BasicBlock::succ_iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8706 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-24 22:18:35 +00:00
Chris Lattner
11fc9301fb
Functions reachable from the arguments of unresolvable call nodes should
...
not have their arguments marked complete
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8639 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 23:58:33 +00:00
Chris Lattner
ec157b7cde
The Globals graph must become complete at the end of the BU phase!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8638 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 23:27:05 +00:00
Chris Lattner
3b0a9be238
Do not mark incoming arguments to functions complete if the function is pointed to by a global in the globals graph
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8637 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 22:24:04 +00:00
Chris Lattner
26c4fc3b69
Make sure to add global variable initializers to the Globals graph!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8636 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 21:48:16 +00:00
Chris Lattner
9970bf6288
Don't consider incomplete nodes to be typesafe!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8635 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 21:48:01 +00:00
Chris Lattner
bab8c28924
Remove trivially dead nodes was not removing nodes that were dead due to forwarding!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8634 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 21:34:07 +00:00
Chris Lattner
894263bc9f
Add special case handling for calloc and realloc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8630 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 16:50:46 +00:00
Chris Lattner
808a7aeec7
Switch from using CallInst's to represent call sites to using the LLVM
...
CallSite class. Now we can represent function calls by invoke instructions
too!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8629 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 16:34:13 +00:00
Chris Lattner
192cd9cccd
Make this work better for constants that aren't necessarily in ANY graph, such as null pointers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8628 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 16:12:57 +00:00
Chris Lattner
c1820036bd
Fix bug: BasicAA/2003-09-19-LocalArgument.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8615 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 03:08:47 +00:00
Chris Lattner
7892549796
Keep track of the number of typed/untyped memory accesses theyre are in the program
...
VS: ----------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8611 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 01:20:46 +00:00
Chris Lattner
f52d01bbc5
These two conditions are not exclusive!!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8518 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 04:35:16 +00:00
Chris Lattner
b31247a840
Make the print output more useful
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8517 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 04:29:37 +00:00
Misha Brukman
2f2d06506c
Fixed spelling and grammar.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8478 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-11 18:14:24 +00:00
Chris Lattner
c444a4228f
Renamed DominatorTree::Node::getNode() -> getBlock()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8469 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-11 16:26:13 +00:00
Misha Brukman
7bc439a4b6
Spell `definitely' correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8466 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-11 15:31:17 +00:00
Chris Lattner
706e61ead9
Rework post dominator information so that we do not have to
...
unify all exit nodes of a function to compute post-dominance information.
This does not work with functions that have both unwind and return nodes,
because we cannot unify these blocks. The new implementation is better
anyway. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8460 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 20:37:08 +00:00
Chris Lattner
2446b0aaaf
Remove using declarations
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8442 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 16:08:03 +00:00
Chris Lattner
a176a8bb39
another trivial cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8435 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 14:55:05 +00:00
Chris Lattner
44abf85ae7
Simplification of trip counting machinery.
...
- make sure to check the indvar type before anything else (efficiency)
- Make sure to insert the 'add' into the program, even though it'll be
dead
- Wrap code at 80 columns
- Other minor cleanups to reduce indentation level
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8434 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 14:51:49 +00:00
Chris Lattner
69ecd0d7e7
Spelling fixes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8429 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 05:24:09 +00:00
Chris Lattner
f6e5233fc7
clean up file header comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8427 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 05:08:19 +00:00
Chris Lattner
36836a6eb2
Simplify some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8426 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 04:49:10 +00:00
Chris Lattner
bd70a31c51
Fix bug: RLE-Preserve-Volatile.ll
...
Volatile loads and stores must not be value numbered
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8398 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-08 18:13:58 +00:00
Chris Lattner
47c97513a8
This file is hopelessly out of date
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8298 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:14:00 +00:00
Chris Lattner
758fefc0f0
Final cleanup: remove dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8291 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 18:01:36 +00:00
Chris Lattner
273328e8e0
Not only is this a lot smaller, it actually works if there is already a
...
function with the right name in the module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8290 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 16:53:46 +00:00
Chris Lattner
09a670587a
If "These should be used only by the auto-parallelization pass", we might as
...
well put them INTO the auto-par pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8288 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 16:49:38 +00:00
Chris Lattner
60a3518cf9
Moved all of the cilkifier stuff into lib/Transforms/IPO, as it really is not
...
support stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8287 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 16:45:30 +00:00
Chris Lattner
aa9214524d
Minor cleanups
...
Do not #include Parallelize.h, it's just a subset of Cilkifier.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8285 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 16:42:16 +00:00
Chris Lattner
5714c97400
Replace M with F when refering to functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8274 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 20:36:52 +00:00
Chris Lattner
55b2eb3ef8
Rename TarjanSCCIterator -> scc_iterator
...
* Increases consistency with other iterators (e.g. df_iterator, po_iterator...)
* It's shorter
* We don't name classes by the implementation, we name it for the interface!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8273 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 20:01:57 +00:00
Chris Lattner
729d73d425
Don't explicitly use the SCC class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8271 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:55:06 +00:00
Chris Lattner
56ef49f5c6
Remove dead var
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8270 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:54:57 +00:00
Chris Lattner
9f2a06e76d
The SCC::HasLoop method is now in the main iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8269 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:51:38 +00:00
Chris Lattner
fe8d8806f7
Remove explicit passing of SCC's around as objects.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8267 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:46:48 +00:00
Chris Lattner
95008bca9e
Move the getAnalysisUsage method from the header file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8264 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:40:57 +00:00
Chris Lattner
6c5fd8e055
The tarjan iterator now returns a reference to the current SCC, not a possibly null pointer!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8262 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:35:16 +00:00
Chris Lattner
0c0023b754
Minor cleanups
...
Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8260 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:29:52 +00:00
Chris Lattner
8d0a23ab42
Indent classes correctly in the namespace
...
move bodies out-of-line
Add getAnalysisUsage method for SFGSCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8259 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:27:11 +00:00
Chris Lattner
23ebd75aff
* Cleanups
...
* Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8258 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:23:41 +00:00
Chris Lattner
4a81067a84
Initial checkin of the CallGraphSCCPass class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8247 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 01:54:59 +00:00
Chris Lattner
6666a04c6c
There is no reason for this to be a pass!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8214 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 14:43:17 +00:00
Misha Brukman
5560c9d49c
Spell `necessary' correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7944 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 14:43:39 +00:00
Chris Lattner
169db9d775
Fix the bug that broke the nightly tester in McCat/18-imp last night. :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7925 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 21:47:33 +00:00
Chris Lattner
7dd46b09c0
Fix bug: LoopPreheaders/2003-08-15-PreheadersFail.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7915 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-16 20:57:16 +00:00
Vikram S. Adve
891bd82e79
Improvement to the previous fix: branch following a delay slot of
...
another delayed instr. would cause the later sanity-check (assertion)
in PhyRegAlloc.cpp to fail, even though there is really no error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7848 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-14 20:45:56 +00:00
Vikram S. Adve
88d962aa58
For an instruction with delay slots, mark all live values before
...
the instruction as being live before/after the delay slot
instructions as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7795 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-12 22:19:59 +00:00
Chris Lattner
8043127860
Remove unnecessary use of NonCopyable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7641 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-06 17:16:24 +00:00
Chris Lattner
7ddb0139ad
Add more verbose comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7610 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 18:38:37 +00:00
Sumant Kowshik
108421a8e5
Added function mergeInGlobalsGraph which merges in the entire globals graph with the graph of a function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7606 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 17:04:41 +00:00
Chris Lattner
6806f5614d
DEBUG got moved to Support/Debug.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7492 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 22:15:03 +00:00
Vikram S. Adve
7a81a0fd13
Don't require a BB to look-up live variables, unless they may need to
...
be recomputed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7388 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 19:42:32 +00:00
Chris Lattner
1f2bbaa9cb
Fix another minor bug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7340 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-26 23:00:05 +00:00
Chris Lattner
e7e221ad24
Dont' try to parse the colon
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7323 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25 20:49:29 +00:00
Chris Lattner
f2d0134118
Add a more general check-flags which can be used to ensure arbitrary flags are set
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7322 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25 20:45:40 +00:00
Chris Lattner
c07736a397
Simplify code by using ConstantInt::getRawValue instead of checking to see
...
whether the constant is signed or unsigned, then casting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7252 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 15:22:26 +00:00
Chris Lattner
bfcdf14d83
Fit code into 80 columns
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7249 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 15:17:01 +00:00
Chris Lattner
28a128e37a
Eliminate old-style cast
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7248 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 15:16:40 +00:00
Vikram S. Adve
40c600e8f3
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7227 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-22 12:08:58 +00:00
Brian Gaeke
1d2ba44224
Fix typo in call to isUnresolvableFunc, which was breaking the build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7194 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-17 19:07:46 +00:00
Vikram S. Adve
1da1d32fc7
Rematerialize nodes from the globals graph into the current graph
...
after all callees are inlined into the current graph.
NOTE: There's also a major bug fix for the BU pass in DataStructure.cpp,
which ensures that resolvable indirect calls are not moved out to the
globals graph, so that they are eventually inlined (if possible).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7189 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16 21:42:03 +00:00
Vikram S. Adve
03e19ddaf7
(1) Rematerialize nodes from the globals graph into the current graph
...
after all callers are inlined into the current graph.
(2) Optimize the way a graph is inlined into its callees in the TD phase:
(a) Use DSGraph::cloneReachableSubgraph to clone only a subgraph at
each call site, for faster inlining.
(b) Clone separately for the same callee at different call sites,
since only the reachable subgraph is being cloned, not the entire
caller graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7188 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16 21:40:28 +00:00
Vikram S. Adve
78bbec7fcb
Implement 2 important changes: (1) rematerialization from the globals graph,
...
and (2) faster inlining by cloning only reachable nodes. In particular:
(1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes
to clone the subgraph reachable from a set of root nodes, into the
current graph, merging the global nodes into thos in the current graph.
The TD pass now uses this for faster inlining, and so does the
next function.
(2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
globals graph into the current graph in both BU and TD passes.
(3) `I' flags are removed from all nodes in the globals graph, because they
are difficult to maintain correctly and are not needed anyway.
(4) Aux. function calls are only removed to the globals graph if they
will never be resovled. (This is what fixed gap.) The immediate
reason is that if we took these out of a function (and moved them to
the globals graph) we would need to rematerialize these nodes into the
function graph for every function in the BU pass. The longer term
problem is that we would need to find a way to remove them from the
globals graph iff they have been resolved on all paths through the
call graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7187 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16 21:36:31 +00:00
Vikram S. Adve
2e1de5ed59
Factor out the test for unresolvable external functions into
...
isUnresolvableFunc() (I thought I needed this externally.
I don't, but it's still nicer this way.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7186 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16 21:25:17 +00:00
Misha Brukman
1ba3138cdc
The word separate' only has one
e'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7174 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-14 17:26:34 +00:00
Chris Lattner
5bfccb9def
Reuse the values if they are constants: this is important so that we index into the right structure field
...
This fixes bug: BasicAA/2003-07-03-BasicAACrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7093 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-03 06:42:38 +00:00
Chris Lattner
85cfe01a5e
Remove globals more aggressively from graphs.
...
Fix a bug where we removed nodes that were marked U.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7090 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-03 02:03:53 +00:00
Chris Lattner
7079386e02
INCLUDE_PARENT_GRAPH is required!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7088 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 23:57:05 +00:00
Chris Lattner
10c45d6cd5
Disable incorrect mustalias code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7087 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 23:56:51 +00:00
Chris Lattner
61691c5d85
Remove space at end of line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7084 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 23:44:15 +00:00
Chris Lattner
6c87461fe6
Fix how we are handling unreachable functions. This DRAMATICALLY improves efficiency
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7082 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 23:42:48 +00:00
Chris Lattner
d391d70361
Keep track of how many inlinings are performed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7076 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 20:24:42 +00:00
Chris Lattner
47030f8a72
Try using trivially dead deletion
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7075 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 19:49:11 +00:00
Chris Lattner
44cfdf9b9a
Remove dead Nodes list
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7065 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 06:06:34 +00:00
Chris Lattner
a8da51bf51
Complete rewrite of td pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7064 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 04:39:44 +00:00
Chris Lattner
63899fab93
Print collapsed to match the paper
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7063 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 04:39:27 +00:00
Chris Lattner
9cd0484251
Reduce amount of work we do calculating mustaliases if the arg is a global
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7062 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 04:39:13 +00:00
Chris Lattner
58f98d0bf0
Add support for ParentGraph only when building in debug mode
...
Minor cleanups, reenable folding of call nodes to external functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7061 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 04:38:49 +00:00