Chris Lattner
e0f69b32e5
Fix a fixme: allow memdep to see past read-only calls when doing
...
load dependence queries. This allows GVN to eliminate a few more
instructions on 403.gcc:
152598 gvn - Number of instructions deleted
49240 gvn - Number of loads deleted
after:
153986 gvn - Number of instructions deleted
50069 gvn - Number of loads deleted
llvm-svn: 60786
2008-12-09 19:47:40 +00:00
Chris Lattner
0dbe02a270
rename getNonLocalDependency -> getNonLocalCallDependency, and remove
...
pointer stuff from it, simplifying the code a bit.
llvm-svn: 60783
2008-12-09 19:38:05 +00:00
Chris Lattner
3768aeb290
Switch GVN::processNonLocalLoad to using the new
...
MemDep::getNonLocalPointerDependency method. There are
some open issues with this (missed optimizations) and
plenty of future work, but this does allow GVN to eliminate
*slightly* more loads (49246 vs 49033).
Switching over now allows simplification of the other code
path in memdep.
llvm-svn: 60780
2008-12-09 19:25:07 +00:00
Chris Lattner
b0aa96c25d
random cleanups, no functionality change.
...
llvm-svn: 60779
2008-12-09 19:21:47 +00:00
Evan Cheng
35f9ef25f1
xfail this for now.
...
llvm-svn: 60777
2008-12-09 18:43:00 +00:00
Evan Cheng
b81948d88b
Back out 60748 for now. It's breaking SPASS, 254.gap, and 464.h264ref.
...
llvm-svn: 60776
2008-12-09 18:21:49 +00:00
Evan Cheng
92299e0722
Cosmetic changes.
...
llvm-svn: 60771
2008-12-09 17:56:30 +00:00
Nuno Lopes
360aae23b1
remove unused var
...
llvm-svn: 60770
2008-12-09 17:04:06 +00:00
Dan Gohman
275e6da839
Whitespace cleanups.
...
llvm-svn: 60769
2008-12-09 16:37:48 +00:00
Mikhail Glushenkov
25ca49afd4
Remove Clang tests since clang is not installed on the buildbots.
...
llvm-svn: 60767
2008-12-09 15:11:45 +00:00
Mikhail Glushenkov
b1adbf1413
Add some rudimentary tests for .
...
llvm-svn: 60766
2008-12-09 14:41:27 +00:00
Mikhail Glushenkov
18f6dc1f16
Man page typo fix.
...
llvm-svn: 60765
2008-12-09 14:41:00 +00:00
Mikhail Glushenkov
6f236eebcf
Support -emit-llvm properly (with -S and -c).
...
llvm-svn: 60764
2008-12-09 14:40:18 +00:00
Duncan Sands
392ed50974
Handle a compiler warning.
...
llvm-svn: 60755
2008-12-09 09:58:11 +00:00
Chris Lattner
ff8be5564e
fix typos gabor noticed
...
llvm-svn: 60754
2008-12-09 08:38:36 +00:00
Bill Wendling
d034543c7e
Correct my English.
...
llvm-svn: 60753
2008-12-09 07:55:31 +00:00
Chris Lattner
b7b4a2dbac
restructure the top level non-local ptr dep query to handle
...
the first block of a query specially. This makes the "complete query
caching" subsystem more effective, avoiding predecessor queries. This
speeds up GVN another 4%.
llvm-svn: 60752
2008-12-09 07:52:59 +00:00
Chris Lattner
f61cc24ef3
rename getNonLocalPointerDepInternal -> getNonLocalPointerDepFromBB
...
and split its inner loop out into a new GetNonLocalInfoForBlock
function. No functionality change.
llvm-svn: 60751
2008-12-09 07:47:11 +00:00
Evan Cheng
3130873f30
DisableGVCompilation should not abort on internal GlobalValue's.
...
llvm-svn: 60750
2008-12-09 07:31:49 +00:00
Mon P Wang
85d72dabc5
In LegalizeOp, don't change the result type of CONVERT_RNDSAT when promoting
...
one of its operand.
llvm-svn: 60749
2008-12-09 07:27:39 +00:00
Nick Lewycky
41060b1556
It's easy to handle SLE/SGE when the loop has a unit stride.
...
llvm-svn: 60748
2008-12-09 07:25:04 +00:00
Chris Lattner
7358482dbc
if we have two elements, insert both, don't use std::sort.
...
This speeds up the new GVN by another 3%
llvm-svn: 60747
2008-12-09 07:05:45 +00:00
Chris Lattner
e428927eda
If we're only adding one new element to 'Cache', insert it into its known
...
position instead of using a full sort. This speeds up GVN by ~4% with the
new memdep stuff.
llvm-svn: 60746
2008-12-09 06:58:04 +00:00
Chris Lattner
951d1310c9
convert a couple other places that use pred_iterator to use the caching
...
pred iterator.
llvm-svn: 60745
2008-12-09 06:44:17 +00:00
Chris Lattner
6eb2690ea4
newline at end of phile
...
llvm-svn: 60744
2008-12-09 06:32:32 +00:00
Chris Lattner
d7df2dce20
use hte new pred cache to speed up the new non-local memdep
...
queries. This speeds up GVN using the new queries (not yet
checked in) by just over 10%.
llvm-svn: 60743
2008-12-09 06:28:49 +00:00
Chris Lattner
14f67ea7b5
pred_iterator got a lot slower since use-diet landed. This is a
...
really simple cache class for these queries. Hopefully this can
be removed if pred_iterator speeds back up.
llvm-svn: 60742
2008-12-09 06:27:07 +00:00
Scott Michel
5c944059b4
CellSPU:
...
- Fix call.ll and call_indirect.ll expected results, now that it's using a
different pre-register allocation scheduler.
llvm-svn: 60741
2008-12-09 06:12:03 +00:00
Mon P Wang
0c011f8ba9
Fix getNode to allow a vector for the shift amount for shifts of vectors.
...
Fix the shift amount when unrolling a vector shift into scalar shifts.
Fix problem in getShuffleScalarElt where it assumes that the input of
a bit convert must be a vector.
llvm-svn: 60740
2008-12-09 05:46:39 +00:00
Chris Lattner
e32dbaddd2
Fix a really subtle off-by-one bug that Duncan noticed with valgrind
...
on test/CodeGen/Generic/2007-06-06-CriticalEdgeLandingPad.
llvm-svn: 60739
2008-12-09 04:47:21 +00:00
Scott Michel
cf7ec43939
CellSPU:
...
- Change default scheduling preference to list-burr, which produces somewhat
better code than the default. Could also use list-tdrr, but need to ask
dev list about the appropriate handy mnemonic before commiting.
llvm-svn: 60738
2008-12-09 03:37:19 +00:00
Bill Wendling
7250a29def
Add initial support for fast-isel of the [SU]ADDO intrinsics. It isn't
...
complete. For instance, it lowers the common case into this less-than-optimal
code:
addl %ecx, %eax
seto %cl
testb %cl, %cl
jne LBB1_2 ## overflow
instead of:
addl %ecx, %eax
jo LBB1_2 ## overflow
That will come in a future commit.
llvm-svn: 60737
2008-12-09 02:42:50 +00:00
Dan Gohman
0e700eb88b
Fix the name of ISD::TokenFactor in a comment. Thanks Gabor!
...
llvm-svn: 60736
2008-12-09 02:18:52 +00:00
Chris Lattner
aa0be1e32a
remove two unneeded forward declarations, pointed out by Gabor.
...
llvm-svn: 60735
2008-12-09 02:10:10 +00:00
Dan Gohman
e99b76aa24
Don't charge full latency for an anti-dependence, in this simplistic
...
pipeline model.
llvm-svn: 60733
2008-12-09 00:26:46 +00:00
Dan Gohman
9e5cc22129
Fix a couple of mistaken switch case fall-throughs. Thanks to Bill
...
for spotting these!
llvm-svn: 60728
2008-12-08 23:50:06 +00:00
Devang Patel
0ef5e583cd
Actually test something. Use PR3170 test case.
...
llvm-svn: 60727
2008-12-08 23:44:46 +00:00
Chris Lattner
23e2ac8894
remove DebugIterations option. Despite the accusations,
...
jump threading has been shown to only expose problems not
have bugs itself. I'm sure it's completely bug free! ;-)
llvm-svn: 60725
2008-12-08 22:44:07 +00:00
Evan Cheng
3bb2ad8a0a
Re-apply 60689 now my head is screwed on right.
...
llvm-svn: 60711
2008-12-08 19:29:03 +00:00
Dan Gohman
6f3258586e
Fix the top-level comments, and fix some 80-column violations.
...
llvm-svn: 60707
2008-12-08 17:50:35 +00:00
Dan Gohman
c0280e8867
Move the conversion to intptr_t to a separate statement. This
...
avoids GCC's warning even on 64-bit hosts.
llvm-svn: 60706
2008-12-08 17:41:24 +00:00
Dan Gohman
5bca97fc4f
Revert 60689. It caused many regressions on Darwin targets.
...
llvm-svn: 60705
2008-12-08 17:38:02 +00:00
Ted Kremenek
164f7f4a43
Use 'delete []' instead of 'delete' in OwningArray::reset().
...
llvm-svn: 60703
2008-12-08 17:28:11 +00:00
Devang Patel
a8d0117253
Fix spelling.
...
Thanks Duncan!
llvm-svn: 60702
2008-12-08 17:07:24 +00:00
Devang Patel
82fb6bc606
Undo previous patch.
...
llvm-svn: 60701
2008-12-08 17:02:37 +00:00
Duncan Sands
fd39a042aa
Fix comment typo.
...
llvm-svn: 60698
2008-12-08 14:10:36 +00:00
Duncan Sands
982c6ed1d9
Fix comment typo.
...
llvm-svn: 60697
2008-12-08 14:01:59 +00:00
Dan Gohman
14d4094968
Factor out the code for sign-extending/truncating gep indices
...
and use it in x86 address mode folding. Also, make
getRegForValue return 0 for illegal types even if it has a
ValueMap for them, because Argument values are put in the
ValueMap. This fixes PR3181.
llvm-svn: 60696
2008-12-08 07:57:47 +00:00
Chris Lattner
7307ef0ba3
add another level of caching for non-local pointer queries, keeping
...
track of whether the CachedNonLocalPointerInfo for a block is specific
to a block. If so, just return it without any pred scanning. This is
good for a 6% speedup on GVN (when it uses this lookup method, which
it doesn't right now).
llvm-svn: 60695
2008-12-08 07:31:50 +00:00
Chris Lattner
9020891916
consistency
...
llvm-svn: 60694
2008-12-08 07:21:39 +00:00