Nate Begeman [Fri, 14 Oct 2005 18:58:46 +0000 (18:58 +0000)]
Remove an unnecsesary file. PPC32 and PPC64 share architected registers.
We will decide with subtarget support whether we ever use an i64 register
class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23734
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 06:40:20 +0000 (06:40 +0000)]
add the integer truncate/extension operations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23733
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 06:31:58 +0000 (06:31 +0000)]
Make sure targets depend on TargetSelectionDAG.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23732
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 06:26:29 +0000 (06:26 +0000)]
These are now autogenerated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23731
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 06:25:00 +0000 (06:25 +0000)]
Now that we have int/fp lattice values, implement the SDTCisOpSmallerThanOp
type constraint. This lets tblgen realize that it doesn't need any dynamic
type checks for fextend/fround on PPC (and many other targets), because there
are only two fp types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23730
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 06:12:03 +0000 (06:12 +0000)]
Fairly serious rework of the typing code to add new int/fp lattice values.
Overall, no functionality change yet though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23729
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 05:08:37 +0000 (05:08 +0000)]
simplify the code a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23728
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 04:55:50 +0000 (04:55 +0000)]
Add patterns for FP round/extend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23727
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 04:55:10 +0000 (04:55 +0000)]
add a new SDTCisOpSmallerThanOp type constraint, and implement fround/fextend in terms of it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23726
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 04:53:53 +0000 (04:53 +0000)]
Add basic support for recognizing a new SDTCisOpSmallerThanOp type constraint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23725
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 04:11:13 +0000 (04:11 +0000)]
Implement a couple of new (important) features.
1. If an operation has to be int or fp and the target only supports one
int or fp type, relize that the op has to have that type.
2. If a target has operations on multiple types, do not emit matching code
for patterns involving those operators, since we do not emit the code to
check for them yet. This prevents PPC from generating FP ops currently.
Also move some code around into more logical places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23724
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 03:54:49 +0000 (03:54 +0000)]
Do not let getLegalValueTypes return a list with duplicates in it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23723
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 14 Oct 2005 01:29:07 +0000 (01:29 +0000)]
fold sext_in_reg, sext_in_reg where both have the same VT. This was
popping up in Fourinarow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23722
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 01:28:34 +0000 (01:28 +0000)]
Allow $
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23721
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 14 Oct 2005 01:12:21 +0000 (01:12 +0000)]
Relax the checking on zextload generation a bit, since as sabre pointed out
you could be AND'ing with the result of a shift that shifts out all the
bits you care about, in addition to a constant.
Also, move over an add/sub_parts fold from legalize to the dag combiner,
where it works for things other than constants. Woot!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23720
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Oct 2005 00:33:05 +0000 (00:33 +0000)]
Fix errors when compiling with -pedantic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23719
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Oct 2005 22:10:05 +0000 (22:10 +0000)]
Fix the trunc(load) case, finally allowing crafty and povray to pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23718
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Oct 2005 21:52:31 +0000 (21:52 +0000)]
Fix some bugs in (sext (load x))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23717
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Oct 2005 21:44:47 +0000 (21:44 +0000)]
When ExpandOp'ing a [SZ]EXTLOAD, make sure to remember that the chain
is also legal. Add support for ExpandOp'ing raw EXTLOADs too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23716
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Oct 2005 20:07:41 +0000 (20:07 +0000)]
Implement PromoteOp for *EXTLOAD, allowing MallocBench/gs to Legalize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23715
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 13 Oct 2005 18:34:58 +0000 (18:34 +0000)]
Fix the remaining DAGCombiner issues pointed out by sabre. This should fix
the remainder of the failures introduced by my patch last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23714
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Oct 2005 18:16:34 +0000 (18:16 +0000)]
Fix a minor bug in the dag combiner that broke pcompress2 and some other
tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23713
91177308-0d34-0410-b5e6-
96231b3b80d8
Patrick Meredith [Thu, 13 Oct 2005 17:31:30 +0000 (17:31 +0000)]
Updated to be less restrictive on what is matched
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23712
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 13 Oct 2005 17:15:37 +0000 (17:15 +0000)]
Add support to Legalize for expanding i64 sextload/zextload into hi and lo
parts. This should fix the crafty and signed long long unit test failure
on x86 last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23711
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Thu, 13 Oct 2005 16:44:00 +0000 (16:44 +0000)]
Inhibit instructions from being pushed before function calls. This will
minimize unnecessary spilling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23710
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Oct 2005 16:34:24 +0000 (16:34 +0000)]
apparently one of the makefile changes changed libprofile.so to profile.so
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23709
91177308-0d34-0410-b5e6-
96231b3b80d8
Patrick Meredith [Thu, 13 Oct 2005 16:26:50 +0000 (16:26 +0000)]
This script is used to remove nodes with the label %tmp(.#)* and all
edges associated with said node from the dot files produced by
DSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23708
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Oct 2005 06:04:34 +0000 (06:04 +0000)]
Nate implemented this :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23707
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 13 Oct 2005 03:11:28 +0000 (03:11 +0000)]
Move some Legalize functionality over to the DAGCombiner where it belongs.
Kill some dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23706
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 13 Oct 2005 03:10:46 +0000 (03:10 +0000)]
SimplifySelectCC is dead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23705
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 12 Oct 2005 23:18:53 +0000 (23:18 +0000)]
Fix a potential bug with two combine-to's back to back that chris pointed
out, where after the first CombineTo() call, the node the second CombineTo
wishes to replace may no longer exist.
Fix a very real bug with the truncated load optimization on little endian
targets, which do not need a byte offset added to the load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23704
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 12 Oct 2005 20:40:40 +0000 (20:40 +0000)]
More cool stuff for the dag combiner. We can now finally handle things
like turning:
_foo:
fctiwz f0, f1
stfd f0, -8(r1)
lwz r2, -4(r1)
rlwinm r3, r2, 0, 16, 31
blr
into
_foo:
fctiwz f0,f1
stfd f0,-8(r1)
lhz r3,-2(r1)
blr
Also removed an unncessary constraint from sra -> srl conversion, which
should take care of hte only reason we would ever need to handle sra in
MaskedValueIsZero, AFAIK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23703
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 12 Oct 2005 18:29:35 +0000 (18:29 +0000)]
Finally committing to the new scheduler. Still -sched=none by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23702
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 12 Oct 2005 12:09:05 +0000 (12:09 +0000)]
Added graphviz/gv support for MF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23700
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Oct 2005 18:42:26 +0000 (18:42 +0000)]
this passes with the change in predicate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23699
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Oct 2005 18:41:04 +0000 (18:41 +0000)]
Fix (hopefully the last) issue where LSR is nondeterminstic. When pulling
out CSE's of base expressions it could build a result whose order was
nondet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23698
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Oct 2005 18:30:57 +0000 (18:30 +0000)]
Fix another problem where LSR was being nondeterminstic. Also remove elements
from the end of a vector instead of the beginning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23697
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Oct 2005 18:28:48 +0000 (18:28 +0000)]
lsr doesn't emit gep instructions anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23696
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Oct 2005 18:17:57 +0000 (18:17 +0000)]
Fix another lsr-is-nondeterministic case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23695
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Oct 2005 17:56:34 +0000 (17:56 +0000)]
Fix a powerpc crash on CodeGen/Generic/llvm-ct-intrinsics.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23694
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Oct 2005 06:07:15 +0000 (06:07 +0000)]
Add a canonicalization that got lost, fixing PowerPC/fold-li.ll:SUB
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23693
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 23:00:08 +0000 (23:00 +0000)]
clean up some corner cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23692
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 22:31:19 +0000 (22:31 +0000)]
Implement trivial DSE. If two stores are neighbors and store to the same
location, replace them with a new store of the last value. This occurs
in the same neighborhood in 197.parser, speeding it up about 1.5%
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23691
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 22:04:48 +0000 (22:04 +0000)]
Add support for CombineTo, allowing the dag combiner to replace nodes with
multiple results.
Use this support to implement trivial store->load forwarding, implementing
CodeGen/PowerPC/store-load-fwd.ll. Though this is the most simple case and
can be extended in the future, it is still useful. For example, it speeds
up 197.parser by 6.2% by avoiding an LSU reject in xalloc:
stw r6, lo16(l5_end_of_array)(r2)
addi r2, r5, -4
stwx r5, r4, r2
- lwzx r5, r4, r2
- rlwinm r5, r5, 0, 0, 30
stwx r5, r4, r2
lwz r2, -4(r4)
ori r2, r2, 1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23690
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 21:57:37 +0000 (21:57 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23689
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 10 Oct 2005 21:26:48 +0000 (21:26 +0000)]
Teach the DAGCombiner several new tricks, teaching it how to turn
sext_inreg into zext_inreg based on the signbit (fires a lot), srem into
urem, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23688
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 21:21:36 +0000 (21:21 +0000)]
A testcase sitting in my tree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23687
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 16:52:03 +0000 (16:52 +0000)]
Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23686
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 16:51:40 +0000 (16:51 +0000)]
Add ISD::ADD to MaskedValueIsZero
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23685
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 16:49:22 +0000 (16:49 +0000)]
This function is now dead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23684
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 16:47:10 +0000 (16:47 +0000)]
Enable Nate's excellent DAG combiner work by default. This allows the
removal of a bunch of ad-hoc and crufty code from SelectionDAG.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23682
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 06:01:00 +0000 (06:01 +0000)]
These definitions have been moved to common code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23681
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Oct 2005 06:00:30 +0000 (06:00 +0000)]
Pull DAG ISel generation nodes out of the PowerPC backend to where they
can be used by other targets. For those targets that want to use it,
have at. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23680
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 22:59:08 +0000 (22:59 +0000)]
add a todo for something I noticed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23679
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 22:12:36 +0000 (22:12 +0000)]
(X & Y) & C == 0 if either X&C or Y&C are zero
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23678
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 22:08:50 +0000 (22:08 +0000)]
Make MaskedValueIsZero a bit more aggressive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23677
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 9 Oct 2005 20:11:35 +0000 (20:11 +0000)]
This seems useful from the original patch that added the function. If there is a reason it is not useful on a RISC type target, let me know and I will pull it out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23676
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 06:36:35 +0000 (06:36 +0000)]
Fix funky xcode indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23674
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 06:24:02 +0000 (06:24 +0000)]
Hrm, you didn't see this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23673
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 06:20:55 +0000 (06:20 +0000)]
Fix a source of non-determinism in the backend: the order of processing
IV strides dependend on the pointer order of the strides in memory.
Non-determinism is bad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23672
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 05:58:56 +0000 (05:58 +0000)]
When emiting a CopyFromReg and the source is already a vreg, do not bother
creating a new vreg and inserting a copy: just use the input vreg directly.
This speeds up the compile (e.g. about 5% on mesa with a debug build of llc)
by not adding a bunch of copies and vregs to be coallesced away. On mesa,
for example, this reduces the number of intervals from 168601 to 129040
going into the coallescer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23671
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 05:36:17 +0000 (05:36 +0000)]
Disable formation of rlwinm instructions from SRA bases. This fixes
the 177.mesa failure from last night, and fixes the
CodeGen/PowerPC/2005-10-08-ArithmeticRotate.ll regression test I added.
If this code cannot be fixed, it should be removed for good, but I'll leave
it to Nate to decide its fate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23670
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Oct 2005 05:31:47 +0000 (05:31 +0000)]
Testcase that is miscompiled by the ppc backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23669
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 8 Oct 2005 01:32:34 +0000 (01:32 +0000)]
Remove another unused file. Preparing for the great "enable i64 on ppc32"
merge, and using subtarget info for ptr size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23668
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 Oct 2005 01:24:19 +0000 (01:24 +0000)]
remove a comma to compile with pedantic gcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23667
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 8 Oct 2005 01:21:27 +0000 (01:21 +0000)]
Remove a file that is no longer used
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23666
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 8 Oct 2005 00:29:44 +0000 (00:29 +0000)]
Lo and behold, the last bits of SelectionDAG.cpp have been moved over.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23665
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 22:10:27 +0000 (22:10 +0000)]
When preselecting, favor things that have low depth to select first. This
is faster and uses less stack space. This reduces our stack requirement
enough to compile sixtrack, and though it's a hack, should be enough until
we switch to iterative isel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23664
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 15:31:26 +0000 (15:31 +0000)]
remove debugging code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23663
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 15:30:32 +0000 (15:30 +0000)]
implement CodeGen/PowerPC/div-2.ll:test2-4 by propagating zero bits through
C-X's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23662
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 15:27:12 +0000 (15:27 +0000)]
These don't need to be sdivs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23661
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 06:37:02 +0000 (06:37 +0000)]
fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23660
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 06:10:46 +0000 (06:10 +0000)]
Turn sdivs into udivs when we can prove the sign bits are clear. This
implements CodeGen/PowerPC/div-2.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23659
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 06:10:03 +0000 (06:10 +0000)]
New testcase, should turn into a ushr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23658
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 7 Oct 2005 05:29:25 +0000 (05:29 +0000)]
Remove prolific source of VC++ truncation warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23657
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 7 Oct 2005 05:28:29 +0000 (05:28 +0000)]
Remove useless variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23656
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 05:23:36 +0000 (05:23 +0000)]
add a hack to work around broken VC++ scoping rules. Thx to JeffC for pointing
this out to me
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23655
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 05:00:52 +0000 (05:00 +0000)]
Fix a CQ regression from my patch to split F32/F64 into seperate register
classes on PPC. We were emitting fmr instructions to do fp extensions, which
weren't getting coallesced. This fixes Regression/CodeGen/PowerPC/fpcopy.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23654
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 04:59:41 +0000 (04:59 +0000)]
double to float casts should nto result in an fmr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23653
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 04:50:48 +0000 (04:50 +0000)]
Fix CodeGen/Generic/bool-to-double.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23652
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Oct 2005 04:49:00 +0000 (04:49 +0000)]
test broken in the IA64 backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23651
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 Oct 2005 19:07:45 +0000 (19:07 +0000)]
Pull out Call, reducing stack frame size from 6032 bytes to 5184 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23650
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 Oct 2005 19:03:35 +0000 (19:03 +0000)]
Pull out setcc, this reduces stack frame size from 7520 to 6032 bytes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23649
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 Oct 2005 18:56:10 +0000 (18:56 +0000)]
Pull two more methods out, reducing stack frame size from 8224 -> 7520 bytes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23648
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 Oct 2005 18:45:51 +0000 (18:45 +0000)]
Add a recursive-iterative hybrid stage to attempt to reduce stack space, this
helps but not enough.
Start pulling cases out of PPC32DAGToDAGISel::Select. With GCC 4, this function
required 8512 bytes of stack space for each invocation (GCC 3 required less
than 700 bytes). Pulling this first function out gets us down to 8224. More
to come :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23647
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 Oct 2005 17:39:10 +0000 (17:39 +0000)]
silence a bogus GCC warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23646
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 Oct 2005 17:19:06 +0000 (17:19 +0000)]
Fix the LLC regressions on X86 last night. In particular, when undoing
previous copy elisions and we discover we need to reload a register, make
sure to use the regclass of the original register for the reload, not the
class of the current register. This avoid using 16-bit loads to reload 32-bit
values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23645
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 6 Oct 2005 16:54:29 +0000 (16:54 +0000)]
This is suppose to work now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23644
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 6 Oct 2005 16:53:32 +0000 (16:53 +0000)]
remove VAX compatibility instruction, we will never use this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23643
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 Oct 2005 01:20:27 +0000 (01:20 +0000)]
Make the legalizer completely non-recursive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23642
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 5 Oct 2005 21:44:43 +0000 (21:44 +0000)]
Let the combiner handle more cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23641
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 5 Oct 2005 21:44:10 +0000 (21:44 +0000)]
Remove some bad code from Legalize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23640
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 5 Oct 2005 21:43:42 +0000 (21:43 +0000)]
Check in some more DAGCombiner pieces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23639
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Oct 2005 18:30:19 +0000 (18:30 +0000)]
Fix a bug in the local spiller, where we could take code like this:
store r12 -> [ss#2]
R3 = load [ss#1]
use R3
R3 = load [ss#2]
R4 = load [ss#1]
and turn it into this code:
store R12 -> [ss#2]
R3 = load [ss#1]
use R3
R3 = R12
R4 = R3 <- oops!
The problem was that promoting R3 = load[ss#2] to a copy missed the fact that
the instruction invalidated R3 at that point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23638
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Oct 2005 17:15:09 +0000 (17:15 +0000)]
silence some warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23637
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Oct 2005 06:47:48 +0000 (06:47 +0000)]
implement visitBR_CC so that PowerPC/inverted-bool-compares.ll passes
with the dag combiner. This speeds up espresso by 8%, reaching performance
parity with the dag-combiner-disabled llc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23636
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Oct 2005 06:37:22 +0000 (06:37 +0000)]
fix some pastos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23635
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Oct 2005 06:35:28 +0000 (06:35 +0000)]
Add a new HandleNode class, which is used to handle (haha) cases in the
dead node elim and dag combiner passes where the root is potentially updated.
This fixes a fixme in the dag combiner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23634
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Oct 2005 06:34:34 +0000 (06:34 +0000)]
add a helper class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23633
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Oct 2005 06:11:08 +0000 (06:11 +0000)]
Implement the code for PowerPC/inverted-bool-compares.ll, even though it
that testcase still does not pass with the dag combiner. This is because
not all forms of br* are folded yet.
Also, when we combine a node into another one, delete the node immediately
instead of waiting for the node to potentially come up in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23632
91177308-0d34-0410-b5e6-
96231b3b80d8