Chris Lattner
5cac0f71ca
update this.
...
llvm-svn: 113116
2010-09-05 20:22:09 +00:00
Chris Lattner
1edf7434cf
more cleanups
...
llvm-svn: 113115
2010-09-05 20:13:07 +00:00
Chris Lattner
e6214557e7
Change lower atomic pass to use IntrinsicInst to simplify it a bit.
...
llvm-svn: 113114
2010-09-05 20:10:47 +00:00
Chris Lattner
05ef361b5e
eliminate some non-obvious casts. UndefValue isa Constant.
...
llvm-svn: 113113
2010-09-05 20:03:09 +00:00
Chris Lattner
72d283c826
fix PR8063, a crash in globalopt in the malloc analysis code.
...
llvm-svn: 113109
2010-09-05 17:20:46 +00:00
Lang Hames
64a4a13617
Added initialisers for reduction rule counters.
...
llvm-svn: 113108
2010-09-05 13:42:32 +00:00
Nick Lewycky
e3ac69eca3
Fix warning reported by MSVC++ builder.
...
llvm-svn: 113106
2010-09-05 09:11:38 +00:00
Nick Lewycky
f3a07ec394
Switch FnSet to containing the ComparableFunction instead of a pointer to one.
...
This reduces malloc traffic (yay!) and removes MergeFunctionsEqualityInfo.
llvm-svn: 113105
2010-09-05 09:00:32 +00:00
Nick Lewycky
0095937b13
Fix many bugs when merging weak-strong and weak-weak pairs. We now merge all
...
strong functions first to make sure they're the canonical definitions and then
do a second pass looking only for weak functions.
llvm-svn: 113104
2010-09-05 08:22:49 +00:00
Chris Lattner
eeba0c73e5
implement rdar://6653118 - fastisel should fold loads where possible.
...
Since mem2reg isn't run at -O0, we get a ton of reloads from the stack,
for example, before, this code:
int foo(int x, int y, int z) {
return x+y+z;
}
used to compile into:
_foo: ## @foo
subq $12, %rsp
movl %edi, 8(%rsp)
movl %esi, 4(%rsp)
movl %edx, (%rsp)
movl 8(%rsp), %edx
movl 4(%rsp), %esi
addl %edx, %esi
movl (%rsp), %edx
addl %esi, %edx
movl %edx, %eax
addq $12, %rsp
ret
Now we produce:
_foo: ## @foo
subq $12, %rsp
movl %edi, 8(%rsp)
movl %esi, 4(%rsp)
movl %edx, (%rsp)
movl 8(%rsp), %edx
addl 4(%rsp), %edx ## Folded load
addl (%rsp), %edx ## Folded load
movl %edx, %eax
addq $12, %rsp
ret
Fewer instructions and less register use = faster compiles.
llvm-svn: 113102
2010-09-05 02:18:34 +00:00
Jakob Stoklund Olesen
313358fef9
Remove dead code.
...
Clobber ranges are no longer used when joining physical registers.
Instead, all aliases are checked for interference.
llvm-svn: 113084
2010-09-04 21:09:33 +00:00
Chris Lattner
f20ca8028d
fix this to work with allocators that have reference type with compilers
...
that diagnose invalid references to references.
llvm-svn: 113078
2010-09-04 18:45:02 +00:00
Chris Lattner
0963048185
dead method.
...
llvm-svn: 113077
2010-09-04 18:19:16 +00:00
Chris Lattner
2f095c636a
delete dead code.
...
llvm-svn: 113075
2010-09-04 18:17:16 +00:00
Chris Lattner
65b48b5dfc
zap dead code.
...
llvm-svn: 113073
2010-09-04 18:12:00 +00:00
Chris Lattner
55118e7224
remove dead code, mblaze uses SelectAddrRegImm/SelectAddrRegReg,
...
not SelectAddr
llvm-svn: 113072
2010-09-04 18:02:47 +00:00
Chris Lattner
b1951ea1fe
zap dead code.
...
llvm-svn: 113071
2010-09-04 17:45:58 +00:00
Bruno Cardoso Lopes
c6accda78e
Remove the last bit of isShuffleMaskLegal checks and improve the comment regarding mmx shuffles
...
llvm-svn: 113059
2010-09-04 02:58:56 +00:00
Bruno Cardoso Lopes
731bcc1abf
make explicit that we not handle several mmx shuffles
...
llvm-svn: 113058
2010-09-04 02:50:13 +00:00
Dan Gohman
487e250109
Fix LoopSimplify to notify ScalarEvolution when splitting a loop backedge
...
into an inner loop, as the new loop iteration may differ substantially.
This fixes PR8078.
llvm-svn: 113057
2010-09-04 02:42:48 +00:00
Bruno Cardoso Lopes
20779ee157
Emit target specific nodes to handle palignr. Do not touch it for MMX versions yet.
...
llvm-svn: 113056
2010-09-04 02:36:07 +00:00
Bruno Cardoso Lopes
cff7cd18ab
Emit target specific nodes to handle splats starting at zero indicies
...
llvm-svn: 113055
2010-09-04 02:02:14 +00:00
Bruno Cardoso Lopes
95759917eb
Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMask
...
llvm-svn: 113050
2010-09-04 01:36:45 +00:00
Bruno Cardoso Lopes
2b57008c72
Emit target specific nodes for isSHUFPMask
...
llvm-svn: 113048
2010-09-04 01:22:57 +00:00
Bruno Cardoso Lopes
2f7af36134
Previous isMOVLMask matching already emits targets nodes, remove check
...
llvm-svn: 113047
2010-09-04 00:50:08 +00:00
Bruno Cardoso Lopes
9f8e704151
One more check from the original isShuffleMaskLegal goes away
...
llvm-svn: 113045
2010-09-04 00:46:16 +00:00
Bruno Cardoso Lopes
16959372bb
Remove a duplicated but useless check that i've inserted in the previous commit.
...
llvm-svn: 113044
2010-09-04 00:43:12 +00:00
Bruno Cardoso Lopes
44578d38d3
Refactor some code and remove the extra checks for unpckl_undef and unpckh_undef
...
llvm-svn: 113043
2010-09-04 00:39:43 +00:00
Chris Lattner
50506787d1
fix a bug in my licm rewrite when a load from the promoted memory
...
location is being re-stored to the memory location. We would get
a dangling pointer from the SSAUpdate data structure and miss a
use. This fixes PR8068
llvm-svn: 113042
2010-09-04 00:12:30 +00:00
Bruno Cardoso Lopes
7829d0e74b
Remove check for unpckh mask
...
llvm-svn: 113035
2010-09-03 23:32:47 +00:00
Bruno Cardoso Lopes
d1dacc57aa
Remove check for unpckl mask
...
llvm-svn: 113034
2010-09-03 23:31:50 +00:00
Bruno Cardoso Lopes
207b9d6218
Inline isShuffleMaskLegal into LowerVECTOR_SHUFFLE, so we can start
...
checking each standalone condition and decide whether emit target
specific nodes or remove the condition if it's already matched before.
llvm-svn: 113031
2010-09-03 23:24:06 +00:00
Owen Anderson
c91c1a205a
Propagate non-local comparisons. Fixes PR1757.
...
llvm-svn: 113025
2010-09-03 22:47:08 +00:00
Eric Christopher
0acd994f90
Reapply this increase to the number of virtual registers. All of the
...
various breakages appear to be dealt with.
Patch by Pekka Jääskeläinen.
llvm-svn: 113024
2010-09-03 22:46:31 +00:00
Dan Gohman
47bec3cb57
Disable the asserts that check that normalization is perfectly
...
invertible. ScalarEvolution's folding routines don't always succeed
in canonicalizing equal expressions to a single canonical form, and
this can cause these asserts to fail, even though there's no actual
correctness problem. This fixes PR8066.
llvm-svn: 113021
2010-09-03 22:12:56 +00:00
Bruno Cardoso Lopes
2bef20eda7
Reapply considered harmfull part of rr112934 and r112942.
...
"Use target specific nodes instead of relying in unpckl and
unpckh pattern fragments during isel time. Also place a
depth limit in getShuffleScalarElt.
llvm-svn: 113020
2010-09-03 22:09:41 +00:00
Jim Grosbach
005155e236
previous patch was a little too tricky for its own good. Don't try to
...
overload UserInInstr. Explicitly check Allocatable. The early exit in the
condition will mean the performance impact of the extra test should be
minimal.
llvm-svn: 113016
2010-09-03 21:45:15 +00:00
Dale Johannesen
367afb5a00
Remove the rest of the nonexistent 64-bit AVX instructions.
...
Bruno, please review.
llvm-svn: 113014
2010-09-03 21:23:00 +00:00
David Greene
2a9de4d828
Generalize getFieldType to work on all TypedInits. Add a couple of testcases from
...
Amaury Pouly.
llvm-svn: 113010
2010-09-03 21:00:49 +00:00
Bruno Cardoso Lopes
a750d994fe
Reapply last harmless part of r112934, the pattern fragment to match X86Unpcklpd
...
llvm-svn: 113009
2010-09-03 20:44:26 +00:00
Bruno Cardoso Lopes
fe8717c573
Reintroduce a simple function refactoring done in r112934, also without any functionality changes
...
llvm-svn: 113008
2010-09-03 20:20:02 +00:00
Bruno Cardoso Lopes
48e589b122
Reapply piecies of r112942 and r112934 which don't do
...
functional changes
llvm-svn: 113007
2010-09-03 20:10:35 +00:00
Bruno Cardoso Lopes
6979cf0808
Reapply Fix comment
...
llvm-svn: 113006
2010-09-03 19:55:05 +00:00
Daniel Dunbar
6f3da24d70
Revert r112934, "- Use specific nodes to match unpckl masks.", which introduced
...
some infinite loop and select failures.
- Apologies for eager reverting, but its branch day.
llvm-svn: 113000
2010-09-03 19:38:11 +00:00
Daniel Dunbar
f1aacd55c0
Revert r112938 "Fix comment", which depends on r112934, which introduced some
...
infinite loop and select failures.
llvm-svn: 112999
2010-09-03 19:38:08 +00:00
Daniel Dunbar
0ffe4db45c
Revert r112942, "Use punpckh and unpckh family of nodes instead of using unpckh
...
mask pattern fragment", which depends on r112934, which introduced some infinite
loop and select failures.
llvm-svn: 112998
2010-09-03 19:38:05 +00:00
Bob Wilson
3626a8c136
Add a missing check when legalizing a vector extending load. This doesn't
...
solve the root problem, but it corrects the bug in the code I added to
support legalizing in the case where the non-extended type is also legal.
llvm-svn: 112997
2010-09-03 19:20:37 +00:00
Bill Wendling
78395e4b8a
Get rid of "passing signed into unsigned parameter" warning on PPC.
...
llvm-svn: 112995
2010-09-03 19:09:46 +00:00
Owen Anderson
c725462245
Add support for simplifying a load from a computed value to a load from a global when it
...
is provable that they're equivalent. This fixes PR4855.
llvm-svn: 112994
2010-09-03 19:08:37 +00:00
Bill Wendling
cef985bc7e
Quiesce warning about non-virtual d'tor in virtual class.
...
llvm-svn: 112991
2010-09-03 18:41:20 +00:00