Chris Lattner [Thu, 24 Mar 2005 17:57:43 +0000 (17:57 +0000)]
new testcase that DS-AA is causing to be miscompiled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20813
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 17:32:20 +0000 (17:32 +0000)]
eliminate dead variables, patch contributed by Gabor Greif!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20812
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 06:28:42 +0000 (06:28 +0000)]
Implement more of the PPC32 Pattern ISel:
1) dynamic stack alloc
2) loads
3) shifts
4) subtract
5) immediate form of add, and, or, xor
6) change flag from -pattern-isel to -enable-ppc-pattern-isel
Remove dead arguments from getGlobalBaseReg in the simple ISel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20810
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 06:16:18 +0000 (06:16 +0000)]
Fix silly "no newline at end of file" warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20809
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 05:13:53 +0000 (05:13 +0000)]
Fix compilation errors, patch contributed by the fabulous Bill Wendling!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20808
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 05:12:48 +0000 (05:12 +0000)]
fix a compilation error, patch contributed by Bill Wendling!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20807
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 04:41:43 +0000 (04:41 +0000)]
Addition of the PPC32 Pattern ISel. While it is far from complete, it will
be brought up to parity with the current simple ISel in the coming days.
Currently, -pattern-isel is required to trigger it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20805
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 04:39:54 +0000 (04:39 +0000)]
Remove comments that are now meaningless from the pattern ISels, at Chris's
request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20804
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 04:22:04 +0000 (04:22 +0000)]
Fix a crash while promoting a value out of a loop from a global variable
when using ds-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20802
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 03:04:50 +0000 (03:04 +0000)]
teach ds-aa about mod/ref for external function calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20801
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 02:41:19 +0000 (02:41 +0000)]
Simplify dead code into a fixme :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20800
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 01:22:52 +0000 (01:22 +0000)]
fix a compiler crash in runtime/libprofile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20799
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:51:12 +0000 (23:51 +0000)]
wrap a long line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20797
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:49:47 +0000 (23:49 +0000)]
If we are calling an external function, chain to another AA to potentially
decide, don't just immediately give up.
This implements GlobalsModRef/chaining-analysis.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20796
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:48:56 +0000 (23:48 +0000)]
GlobalMR should be able to analyze this function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20795
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:27:34 +0000 (23:27 +0000)]
if a function doesn't access memory at all, it definitely doesn't read it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20794
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:26:58 +0000 (23:26 +0000)]
Make this more efficient by only making one virtual method call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20793
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 22:06:41 +0000 (22:06 +0000)]
Make this a bit more aggressive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20792
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 21:59:34 +0000 (21:59 +0000)]
a hack to allow count-aa to work with ds-aa :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20791
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 21:59:07 +0000 (21:59 +0000)]
Add two options to allow -count-aa to print queries either (1) all queries,
or (2) only queries that are not successful (e.g. return may alias)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20790
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 23 Mar 2005 21:14:33 +0000 (21:14 +0000)]
Fix grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20789
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 21:00:12 +0000 (21:00 +0000)]
enable -debug-only=licm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20788
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 20:12:08 +0000 (20:12 +0000)]
turn a dead conditional into an assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20787
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 20:08:59 +0000 (20:08 +0000)]
Totally gut mergeInGraph. There is absolutely no reason to be merging
global roots in from callees to callers. The BU graphs do not have accurate
globals information and all of the clients know it. Instead, just make sure
the GG is up-to-date, and they will be perfectly satiated.
This speeds up the BU pass on 176.gcc from 5.5s to 1.5s, and Loc+BU+TD
from 7s to 2.7s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20786
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 16:43:11 +0000 (16:43 +0000)]
wrap a long line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20785
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 23 Mar 2005 15:20:01 +0000 (15:20 +0000)]
don't lie to the register allocator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20784
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 01:48:09 +0000 (01:48 +0000)]
Make -steens-aa more conservative (aka correct) by making sure to obey
incompleteness flags.
Make it more aggressive by taking field sensitive information into
account.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20781
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 23 Mar 2005 01:47:20 +0000 (01:47 +0000)]
Added alias analysis.
Fixed many many bugs.
This now works on almost all Singlesource , and most of MultiSource.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20780
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 01:47:19 +0000 (01:47 +0000)]
implement Analysis/DSGraph/field-sensitive.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20779
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 01:46:59 +0000 (01:46 +0000)]
new testcase to verify that we have field sensitive alias analysis info. This
test cannot be satisfied without interprocedural information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20778
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 01:32:03 +0000 (01:32 +0000)]
make sure this test tests the intended target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20777
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 01:29:26 +0000 (01:29 +0000)]
don't crash in some bad cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20776
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 23:54:52 +0000 (23:54 +0000)]
Several changes here:
1. Increase max node size from 64->256 to avoid collapsing an important
structure in 181.mcf
2. If we have multiple calls to an indirect call node with an indirect
callee, fold these call nodes together, to avoid DSA turning apoc into
a flaming fireball of death when analyzing 176.gcc.
With this change, 176.gcc now takes ~7s to analyze for loc+bu+td, with
5.7s of that in the BU pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20775
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 22:11:22 +0000 (22:11 +0000)]
We might as well check the TD graphs as well, even though they are fine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20774
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 22:10:22 +0000 (22:10 +0000)]
Mark external globals incomplete in the BU Globals graph, fixing
Analysis/DSGraph/2005-03-22-IncompleteGlobal.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20773
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 22:07:15 +0000 (22:07 +0000)]
New testcase, the BU pass is marking the global complete in the globals graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20772
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 22 Mar 2005 21:33:19 +0000 (21:33 +0000)]
Updating my entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20771
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 19:44:11 +0000 (19:44 +0000)]
Fix a serious bug where we didn't insert globals into the globalset when
cloning a graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20770
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 22 Mar 2005 16:42:52 +0000 (16:42 +0000)]
hum, it is good to use real instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20769
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 03:55:10 +0000 (03:55 +0000)]
Directly count the number of memory instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20766
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 03:20:38 +0000 (03:20 +0000)]
Timers SHOULD NOT record the time taken to count the bytes allocated in the heap!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20765
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 02:45:13 +0000 (02:45 +0000)]
Remove an iteration pass over the entire scalarmap for each function created
by not allowing integer constants to get into the scalar map in the first
place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20764
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 01:50:42 +0000 (01:50 +0000)]
When making a clone of a DSGraph from the BU pass, make sure to remember that
this clone is supposed to be used for *ALL* of the functions in the SCC.
This fixes the memory explosion problem the TD pass was having, reducing the
memory growth from 24MB -> 3.5MB on povray and 270MB ->8.3MB on perlbmk!
This obviously also speeds up the TD pass *a lot*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20763
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 01:42:59 +0000 (01:42 +0000)]
Don't use operator[], use the new method instead, which is faster. This speeds
up the TD pass about 30% for povray and perlbmk. It's still not clear why
copying a 5MB set of graphs turns into a 25MB set of graphs though :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20762
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 01:42:10 +0000 (01:42 +0000)]
add a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20761
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:36:51 +0000 (00:36 +0000)]
Now that the dead ctor is gone, nothing uses the old node mapping exported by
cloneInto: make it an internally used mapping.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20760
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:33:35 +0000 (00:33 +0000)]
remove a dead ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20759
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:29:44 +0000 (00:29 +0000)]
now that the second argument is always this->ReturnNodes, don't bother passing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20758
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:25:52 +0000 (00:25 +0000)]
instead of using a local RetValMap, just use the graph we are cloning into
for the return node map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20757
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 22 Mar 2005 00:24:07 +0000 (00:24 +0000)]
two things: 1)evilness reduction patch, reduces the number of instructions hiding in the small jump CC moving code. 2)implement div of small data types by FP DIV (also reduces evilness and should speed things up)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20756
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:22:45 +0000 (00:22 +0000)]
now that the valuemapping is always the local scalar map, we can eliminate
this identity merge.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20755
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:21:05 +0000 (00:21 +0000)]
remove the second argument to cloneInto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20754
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:20:56 +0000 (00:20 +0000)]
drop the second argument to cloneInto, which is always the local scalar map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20753
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:12:00 +0000 (00:12 +0000)]
add some timers, don't clone aux nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20752
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:09:45 +0000 (00:09 +0000)]
move this out of line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20751
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:09:36 +0000 (00:09 +0000)]
move this stuff out of line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20750
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Mar 2005 00:04:21 +0000 (00:04 +0000)]
don't generate temporary scalarmaps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20749
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 22:49:53 +0000 (22:49 +0000)]
allow passing clone flags down to cloneInto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20748
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 22:49:43 +0000 (22:49 +0000)]
allow passing clone flags into the ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20747
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 20:31:29 +0000 (20:31 +0000)]
Enhance the TD pass to build composite graphs when we have indirect call
sites that target multiple callees. If we have a function table, for
example, with N callees, and M callers call through it, we used to have
to perform O(M*N) graph inlinings. Now we perform O(M+N) inlinings.
This speeds up the td pass on perlbmk from 36.26s to 25.75s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20743
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 20:29:56 +0000 (20:29 +0000)]
add a new map
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20742
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 20:28:50 +0000 (20:28 +0000)]
make this const correct
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20741
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 20:20:49 +0000 (20:20 +0000)]
Fix a major problem where we didn't add call graph edges for call sites with
more than 1 callee. This fixes Analysis/DSGraph/FunctionPointerTable-const.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20740
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 20:18:51 +0000 (20:18 +0000)]
New testcase, which is important to handle correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20739
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 21 Mar 2005 19:22:14 +0000 (19:22 +0000)]
We may be adding functions to the Module during initialization, so
conservatively, it's modified
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20735
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 17:55:41 +0000 (17:55 +0000)]
This error message changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20734
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 10:00:45 +0000 (10:00 +0000)]
Ugh, for some reason, I can't call this unless the reference is const!?!?!?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20732
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 09:39:51 +0000 (09:39 +0000)]
The reachability cloner should add arguments to merged calls when the RHS of
the merge has more operands than the LHS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20731
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 09:39:20 +0000 (09:39 +0000)]
Make the first operand of this method be modifiable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20730
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 09:38:39 +0000 (09:38 +0000)]
add a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20729
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 09:18:39 +0000 (09:18 +0000)]
If merging two calls like: foo(A) and bar(B, C), make sure the result has two
arguments, not one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20728
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 08:43:32 +0000 (08:43 +0000)]
'note to self'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20727
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 06:27:42 +0000 (06:27 +0000)]
Remove a bunch of cruft and dead code for handling the case when types were
defined in function constant pools. The assembler grammar has long
disallowed functions from having constant pools, so all of this stuff is
dead.
This makes it an immediate error for functions to refer to nonexisting
types, fixing Regression/Verifier/2005-03-21-UndefinedTypeReference.ll.
Before, references to non-existing types in functions would only be
detected when the subsequent function was parsed, due to the call to
"ResolveTypes". "ResolveTypes" has not resolved any types for a long time,
instead it emitted an error message if no resolved types are left. Since
the only caller of this method is in the module code, just inline it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20726
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 06:24:53 +0000 (06:24 +0000)]
New testcase that the assembler incorrectly accepts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20725
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Mon, 21 Mar 2005 06:07:43 +0000 (06:07 +0000)]
Make this method non-const. Making it const causes the const version of
getIGroup to be called instead of the non-const one. These two methods
have (??) different behavior, so this change fixes bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20724
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 04:55:35 +0000 (04:55 +0000)]
Change the way that the TD pass inlines graphs. Instead of inlining each
graph into all of the functions it calls when we visit a graph, change it so
that the graph visitor inlines all of the callers of a graph into the current
graph when it visits it.
While we're at it, inline global information from the GG instead of from each
of the callers. The GG contains a superset of the info that the callers do
anyway, and this way we only need to do it one time (not one for each caller).
This speeds up the TD pass substantially on several programs, and there is
still room for improvement. For example, the TD pass used to take 147s
on perlbmk, it now takes 36s. On povray, we went from about 5s to 1.97s.
134.perl is down from ~1s for Loc+BU+TD to .6s.
The TD pass needs a lot of improvement though, which will occur with later
patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20723
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 04:46:35 +0000 (04:46 +0000)]
rename a method add a data structure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20722
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Mar 2005 01:36:35 +0000 (01:36 +0000)]
Provide a guaranteed definition of intptr_t. Thansk to Evan Jones for
pointing this out!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20721
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 18:02:56 +0000 (18:02 +0000)]
Don't strip modref bits when inlining down the call graph. This fixes
the DSGraph/2003-06-30-TopDownResolve.ll regression from last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20717
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 04:30:30 +0000 (04:30 +0000)]
Remove the ability to keep track of inlined globals, which is always dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20716
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 04:30:16 +0000 (04:30 +0000)]
Remove the InlinedGlobals set which is always empty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20715
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 04:29:54 +0000 (04:29 +0000)]
This call is always a noop, remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20714
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 04:29:39 +0000 (04:29 +0000)]
remove some pointless asserts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20713
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 04:23:57 +0000 (04:23 +0000)]
-steens doesn't use the inlined globals facility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20712
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 03:32:35 +0000 (03:32 +0000)]
Build EC's for globals twice. The first is after constructing the initial
Globals Graph for the local pass, the second is after all of the locals
graphs have been constructed. This allows for many additional global EC's
to be recognized that weren't before. This speeds up analysis of programs
like 177.mesa, where it changes DSA from taking 0.712s to 0.4018s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20711
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 03:29:54 +0000 (03:29 +0000)]
Add a new DSNode::removeGlobal method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20710
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 03:29:39 +0000 (03:29 +0000)]
add a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20709
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:42:07 +0000 (02:42 +0000)]
Transform BU pass to not use the horrible DSCallSiteIterator class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20708
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:41:38 +0000 (02:41 +0000)]
Implement new methods for dealing with DSNode global lists, rename uses of
old methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20707
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:41:16 +0000 (02:41 +0000)]
use simpler methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20706
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:40:27 +0000 (02:40 +0000)]
method was renamed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20705
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:40:11 +0000 (02:40 +0000)]
print out equiv class info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20704
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:40:04 +0000 (02:40 +0000)]
some methods got renamed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20703
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:39:49 +0000 (02:39 +0000)]
Make use of simpler DSNode methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20702
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:38:39 +0000 (02:38 +0000)]
rename some methods and add some new methods for dealing with the globals list
in a DSNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20701
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 02:14:15 +0000 (02:14 +0000)]
#ifdef out a function only used by #ifdef'd code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20700
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Mar 2005 01:18:00 +0000 (01:18 +0000)]
comment cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20699
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Sat, 19 Mar 2005 23:39:50 +0000 (23:39 +0000)]
Constant-propagate the value of `isL' variable and eliminate it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20698
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 19 Mar 2005 22:36:39 +0000 (22:36 +0000)]
Silence VC++ warning about mixing intptr_t and bool, and about unused variable isL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20697
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Mar 2005 22:23:45 +0000 (22:23 +0000)]
Create an equivalence class of global variables that DSA will never be able
to tell apart anyway, and only track the leader for of these equivalence
classes in our graphs.
This dramatically reduces the number of GlobalValue*'s that appear in scalar
maps, which A) reduces memory usage, by eliminating many many scalarmap entries
and B) reduces time for operations that need to execute an operation for each
global in the scalar map.
As an example, this reduces the memory used to analyze 176.gcc from 1GB to
511MB, which (while it's still way too much) is better because it doesn't hit
swap anymore. On eon, this shrinks the local graphs from 14MB to 6.8MB,
shrinks the bu+td graphs of povray from 50M to 40M, shrinks the TD graphs of
130.li from 8.8M to 3.6M, etc.
This change also speeds up DSA on large programs where this makes a big
difference. For example, 130.li goes from 1.17s -> 0.56s, 134.perl goes
from 2.14 -> 0.93s, povray goes from 15.63s->7.99s (!!!).
This also apparently either fixes the problem that caused DSA to crash on
perlbmk and gcc, or it hides it, because DSA now works on these. These
both take entirely too much time in the TD pass (147s for perl, 538s for
gcc, vs 7.67/5.9s in the bu pass for either one), but this is a known
problem that I'll deal with later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20696
91177308-0d34-0410-b5e6-
96231b3b80d8