Nick Lewycky
0bed364307
It's easy to handle SLE/SGE when the loop has a unit stride.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60748 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 07:25:04 +00:00
Chris Lattner
ba4dacc875
if we have two elements, insert both, don't use std::sort.
...
This speeds up the new GVN by another 3%
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60747 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 07:05:45 +00:00
Chris Lattner
1aeadacdad
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60746 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 06:58:04 +00:00
Chris Lattner
511b36c00f
convert a couple other places that use pred_iterator to use the caching
...
pred iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60745 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 06:44:17 +00:00
Chris Lattner
4012fdda13
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%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 06:28:49 +00:00
Mon P Wang
e9f1015d1f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60740 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 05:46:39 +00:00
Chris Lattner
46a879ebd3
Fix a really subtle off-by-one bug that Duncan noticed with valgrind
...
on test/CodeGen/Generic/2007-06-06-CriticalEdgeLandingPad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60739 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 04:47:21 +00:00
Scott Michel
e07d3dead1
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60738 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 03:37:19 +00:00
Bill Wendling
52370a1089
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60737 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 02:42:50 +00:00
Dan Gohman
aeac8f9cb4
Don't charge full latency for an anti-dependence, in this simplistic
...
pipeline model.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60733 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 00:26:46 +00:00
Dan Gohman
55fdaec36a
Fix a couple of mistaken switch case fall-throughs. Thanks to Bill
...
for spotting these!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60728 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 23:50:06 +00:00
Chris Lattner
20fa76ef6f
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! ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60725 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 22:44:07 +00:00
Evan Cheng
e4d1082b2c
Re-apply 60689 now my head is screwed on right.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60711 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 19:29:03 +00:00
Dan Gohman
a629b48a66
Fix the top-level comments, and fix some 80-column violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60707 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 17:50:35 +00:00
Dan Gohman
2d4e9bc922
Revert 60689. It caused many regressions on Darwin targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60705 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 17:38:02 +00:00
Devang Patel
042b877e84
Fix spelling.
...
Thanks Duncan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60702 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 17:07:24 +00:00
Devang Patel
6d9896f153
Undo previous patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60701 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 17:02:37 +00:00
Duncan Sands
1832705b06
Fix comment typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60697 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 14:01:59 +00:00
Dan Gohman
c8a1a3c426
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60696 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 07:57:47 +00:00
Chris Lattner
11dcd8d38d
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60695 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 07:31:50 +00:00
Chris Lattner
59779c5605
consistency
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60694 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 07:21:39 +00:00
Chris Lattner
bedb8c1d35
introduce a new RoundUpAlignment helper function, use it to
...
remove some more 64-bit divs and rems from the StructLayout
ctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60692 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 07:11:56 +00:00
Dan Gohman
149cfc3519
Make ConstantAggregateZero::get return a ConstantAggregateZero*,
...
as suggested in PR3182.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60691 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 07:10:54 +00:00
Dan Gohman
f923129fc3
Update CPP backend for PrintModulePass API changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60690 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 07:07:24 +00:00
Evan Cheng
dda346aa71
Perform cheap checks first.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60689 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 06:52:43 +00:00
Chris Lattner
295d4e953a
Some minor optimizations for isObjectSmallerThan.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60687 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 06:28:54 +00:00
Dan Gohman
2e3e5bf427
Move createVirtualRegister out-of-line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60684 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 04:54:11 +00:00
Dan Gohman
c93ced5b34
Clarify some comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60683 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 04:53:23 +00:00
Nick Lewycky
28ea4f6c07
Fixes for Visual Studio users. Patch by OvermindDL1 on llvm-dev!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60679 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 00:45:02 +00:00
Chris Lattner
3f7eb5b795
add an assert. the cast<> below would catch this but a message is more
...
useful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60674 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 18:45:15 +00:00
Chris Lattner
0655f73ef7
factor some code better.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60673 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 18:42:51 +00:00
Chris Lattner
d44745d241
factor some code, fixing some fixme's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60672 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 18:39:13 +00:00
Chris Lattner
6290f5cac2
add support for caching pointer dependence queries. Nothing uses this yet
...
so it "can't" break anything. That said, it does appear to work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60654 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 08:50:20 +00:00
Chris Lattner
a16ead8b10
fix a bug I introduced in simplifycfg handling single entry phi
...
nodes. FoldSingleEntryPHINodes deletes the PHI, so there is no
need to delete it afterward.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60653 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 07:22:45 +00:00
Owen Anderson
75c99c5aa8
Switch to top-down mode and fix a crasher this exposed caused by an error in the
...
live interval updating.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60652 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 05:33:18 +00:00
Nick Lewycky
6ecf5ce3e3
Fix typo, psuedo -> pseudo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60651 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 03:49:52 +00:00
Chris Lattner
9a193fd8ae
Some internal refactoring to make it easier to cache results.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60650 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 02:56:57 +00:00
Chris Lattner
7ebcf03246
Introduce a new MemDep::getNonLocalPointerDependency
...
method. This will eventually take over load/store dep
queries from getNonLocalDependency. For now it works
fine, but is incredibly slow because it does no caching.
Lets not switch GVN to use it until that is fixed :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60649 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 02:15:47 +00:00
Chris Lattner
e79be944c8
push the "pointer case" up the analysis stack a bit. This causes
...
duplication of logic (in 2 places) to determine what pointer a
load/store touches. This will be addressed in a future commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60648 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 01:50:16 +00:00
Chris Lattner
d8dd934d16
make clients have to know how to call getCallSiteDependencyFrom
...
instead of making getDependencyFrom do it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60647 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 01:21:14 +00:00
Chris Lattner
106c6ca7b0
rename some variables for consistency
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60644 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 00:39:19 +00:00
Chris Lattner
fbc72e3e61
I love how using out of scope variables is not an error with GCC, no really I do.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60643 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 00:38:27 +00:00
Chris Lattner
8ef57c5faf
Rename getCallSiteDependency -> getCallSiteDependencyFrom to
...
emphasize the scanning and make it more similar to
getDependencyFrom
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60642 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 00:35:51 +00:00
Chris Lattner
745291a6ce
a memdep query on a volatile load/store will always return
...
clobber with the current implementation. Instead of returning
a "precise clobber" just return a fuzzy one. This doesn't
matter to any clients anyway and should speed up analysis time
very very slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60641 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 00:28:02 +00:00
Chris Lattner
f760be1c7f
don't bother touching volatile stores, they will just return clobber on
...
everything interesting anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60640 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 00:25:15 +00:00
Chris Lattner
84b9a56d11
remove the ability to get memdep info for vaarg. I don't think the
...
original impl was correct and noone actually makes the query anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60639 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 00:21:18 +00:00
Chris Lattner
630c99fd21
improve a note.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60636 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 00:15:10 +00:00
Chris Lattner
6a09a74e46
some more PRE/GVN/DSE related notes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60633 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-06 22:52:12 +00:00
Chris Lattner
f96ca79cf3
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60632 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-06 22:49:05 +00:00
Chris Lattner
78a7e7c797
some random notes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60624 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-06 19:28:22 +00:00