Chris Lattner [Sat, 5 Nov 2005 22:32:06 +0000 (22:32 +0000)]
enumerate non-standard argument encoding cases, such as alignment info for
allocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 22:20:06 +0000 (22:20 +0000)]
rearrange some info about the instruction encoding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24204
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 22:08:14 +0000 (22:08 +0000)]
Write/read allocation instruction alignment info to .bc files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 22:07:30 +0000 (22:07 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24202
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 21:58:30 +0000 (21:58 +0000)]
add an accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24201
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 21:57:54 +0000 (21:57 +0000)]
verify that alignments are always a power of 2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24200
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 21:54:23 +0000 (21:54 +0000)]
regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24199
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 21:54:03 +0000 (21:54 +0000)]
Verify that alignment amounts are a power of 2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24198
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 21:20:34 +0000 (21:20 +0000)]
fix printing the alignment directive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24197
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 5 Nov 2005 09:21:28 +0000 (09:21 +0000)]
Add support alignment of allocation instructions.
Add support for specifying alignment and size of setjmp jmpbufs.
No targets currently do anything with this information, nor is it presrved
in the bytecode representation. That's coming up next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24196
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 08:57:56 +0000 (08:57 +0000)]
add a case Nate sent me
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24195
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 08:21:11 +0000 (08:21 +0000)]
Implement Transforms/TailCallElim/return-undef.ll, a trivial case
that has been sitting in my inbox since May 18. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24194
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 08:20:28 +0000 (08:20 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24191
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 07:40:31 +0000 (07:40 +0000)]
Turn sdiv into udiv if both operands have a clear sign bit. This occurs
a few times in crafty:
OLD: %tmp.36 = div int %tmp.35, 8 ; <int> [#uses=1]
NEW: %tmp.36 = div uint %tmp.35, 8 ; <uint> [#uses=0]
OLD: %tmp.19 = div int %tmp.18, 8 ; <int> [#uses=1]
NEW: %tmp.19 = div uint %tmp.18, 8 ; <uint> [#uses=0]
OLD: %tmp.117 = div int %tmp.116, 8 ; <int> [#uses=1]
NEW: %tmp.117 = div uint %tmp.116, 8 ; <uint> [#uses=0]
OLD: %tmp.92 = div int %tmp.91, 8 ; <int> [#uses=1]
NEW: %tmp.92 = div uint %tmp.91, 8 ; <uint> [#uses=0]
Which all turn into shrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24190
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Nov 2005 07:28:37 +0000 (07:28 +0000)]
Turn srem -> urem when neither input has their sign bit set. This triggers
8 times in vortex, allowing the srems to be turned into shrs:
OLD: %tmp.104 = rem int %tmp.5.i37, 16 ; <int> [#uses=1]
NEW: %tmp.104 = rem uint %tmp.5.i37, 16 ; <uint> [#uses=0]
OLD: %tmp.98 = rem int %tmp.5.i24, 16 ; <int> [#uses=1]
NEW: %tmp.98 = rem uint %tmp.5.i24, 16 ; <uint> [#uses=0]
OLD: %tmp.91 = rem int %tmp.5.i19, 8 ; <int> [#uses=1]
NEW: %tmp.91 = rem uint %tmp.5.i19, 8 ; <uint> [#uses=0]
OLD: %tmp.88 = rem int %tmp.5.i14, 8 ; <int> [#uses=1]
NEW: %tmp.88 = rem uint %tmp.5.i14, 8 ; <uint> [#uses=0]
OLD: %tmp.85 = rem int %tmp.5.i9, 1024 ; <int> [#uses=2]
NEW: %tmp.85 = rem uint %tmp.5.i9, 1024 ; <uint> [#uses=0]
OLD: %tmp.82 = rem int %tmp.5.i, 512 ; <int> [#uses=2]
NEW: %tmp.82 = rem uint %tmp.5.i1, 512 ; <uint> [#uses=0]
OLD: %tmp.48.i = rem int %tmp.5.i.i161, 4 ; <int> [#uses=1]
NEW: %tmp.48.i = rem uint %tmp.5.i.i161, 4 ; <uint> [#uses=0]
OLD: %tmp.20.i2 = rem int %tmp.5.i.i, 4 ; <int> [#uses=1]
NEW: %tmp.20.i2 = rem uint %tmp.5.i.i, 4 ; <uint> [#uses=0]
it also occurs 9 times in gcc, but with odd constant divisors (1009 and 61)
so the payoff isn't as great.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24189
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 5 Nov 2005 00:01:25 +0000 (00:01 +0000)]
Fix logic bug in finding retry slot in tally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24188
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 4 Nov 2005 18:26:02 +0000 (18:26 +0000)]
Fix a warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24187
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 4 Nov 2005 17:55:53 +0000 (17:55 +0000)]
oops, forgot to load GP for indirect calls, though the old code now commented
out failed (e.g. methcall) - now the code compiles, though it's not quite
right just yet (tm) ;)
would fix this but it's 3am! :O
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24186
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 4 Nov 2005 10:01:10 +0000 (10:01 +0000)]
kill redundant SP/GP/RP save/restores across calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24183
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 4 Nov 2005 09:59:06 +0000 (09:59 +0000)]
add support for loading bools
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24182
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 4 Nov 2005 04:05:35 +0000 (04:05 +0000)]
Scheduling now uses itinerary data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24180
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 4 Nov 2005 02:59:16 +0000 (02:59 +0000)]
<cassert> no longer required to make VC++ happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24177
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 4 Nov 2005 01:45:04 +0000 (01:45 +0000)]
change NULL to 0, unbreaks the ppc target when building on ia64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24176
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 4 Nov 2005 00:57:56 +0000 (00:57 +0000)]
fun with predicates! (add TRUNC i64->i1, AND i1 i1, fix XOR i1 i1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24175
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Thu, 3 Nov 2005 22:47:41 +0000 (22:47 +0000)]
1. Remove ranges from itinerary data.
2. Tidy up the subtarget emittined code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24172
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Nov 2005 22:33:48 +0000 (22:33 +0000)]
Fix mac os spelling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24171
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Nov 2005 18:32:06 +0000 (18:32 +0000)]
Add more bison versions, thanks to Vladimir
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24169
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Nov 2005 18:28:22 +0000 (18:28 +0000)]
Per bug 655, give people more options in case 1.35 doesn't build on their
system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24168
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 3 Nov 2005 10:09:32 +0000 (10:09 +0000)]
add pattern to load constant 0 into a predicate reg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24164
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Nov 2005 07:17:51 +0000 (07:17 +0000)]
add a hack that fixes:
llvm-gcc main.c -Wl,-native -o a.out -g
This is important because it used by many configure scripts.
John, please pull this onto the 1.6 branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24163
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Nov 2005 05:46:11 +0000 (05:46 +0000)]
Reject integer literals that are out of range for their type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24162
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Nov 2005 05:45:34 +0000 (05:45 +0000)]
Fix a bug that prevented this pattern from matching
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24161
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 2 Nov 2005 18:42:59 +0000 (18:42 +0000)]
Fix a crash that Andrew noticed, and add a pair of braces to unfconfuse
XCode's indenting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24159
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 2 Nov 2005 18:35:40 +0000 (18:35 +0000)]
make this 64 bit clean, fixed test30 of /Regression/Transforms/InstCombine/add.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24158
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 2 Nov 2005 18:34:05 +0000 (18:34 +0000)]
This is missed by InstCombine, patch comming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24157
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Nov 2005 17:42:58 +0000 (17:42 +0000)]
Fix a QOI issue noticed by Markus F.X.J. Oberhumer.
This fixes PR641
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24154
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 2 Nov 2005 07:32:59 +0000 (07:32 +0000)]
"fix" support for FP constants (this code asserts in the scheduler,
though)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24152
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 2 Nov 2005 07:30:39 +0000 (07:30 +0000)]
add F0 and F1 to the FP register class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24151
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Nov 2005 06:49:37 +0000 (06:49 +0000)]
This works now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24150
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Nov 2005 06:49:14 +0000 (06:49 +0000)]
Add support for immediates directly in the pattern, this allows itanium to
define:
def : Pat<(i1 1), (CMPEQ r0, r0)>;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24149
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 2 Nov 2005 04:03:16 +0000 (04:03 +0000)]
Keep VC++ happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24148
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 2 Nov 2005 02:37:18 +0000 (02:37 +0000)]
add support for SELECT to TargetSelectionDAG.td, add support for
selecting ints to IA64, and a few other ia64 bits and pieces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24147
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 2 Nov 2005 02:35:04 +0000 (02:35 +0000)]
add support for loading FP constants +0.0 and +1.0 to the dag isel,
stop pretending -0.0 and -1.0 are machine constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24146
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Nov 2005 01:47:04 +0000 (01:47 +0000)]
Fix a source of undefined behavior when dealing with 64-bit types. This
may fix PR652. Thanks to Andrew for tracking down the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24145
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 1 Nov 2005 21:12:49 +0000 (21:12 +0000)]
* Replace ampersands in section titles with more formal ``and''
* Surround C++ template operators with <tt>
* Add <> after templated operators for consistency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24144
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 1 Nov 2005 21:00:49 +0000 (21:00 +0000)]
Re-generated to fix copy-paste typo noticed by Marco Matthies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24143
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 1 Nov 2005 20:58:08 +0000 (20:58 +0000)]
Fixed copy-paste typo, patch by Marco Matthies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24142
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 1 Nov 2005 20:06:59 +0000 (20:06 +0000)]
Allow itineraries to be passed through the Target Machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24139
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 1 Nov 2005 18:04:06 +0000 (18:04 +0000)]
Keep VC++ happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24137
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Nov 2005 17:59:42 +0000 (17:59 +0000)]
Let people who run the nightly tester specify paths to external tests, instead
of having to hack the nightly tester script itself.
as an example, I use the following for my machine:
$HOME/llvm/utils/NightlyTest.pl -parallel -release -enable-llcbeta \
-spec2000path /Volumes/ProjectsDisk/cvs/benchmarks/speccpu2000-llvm/benchspec/ \
-povraypath /Volumes/ProjectsDisk/cvs/benchmarks/povray31 \
-namdpath /Volumes/ProjectsDisk/cvs/benchmarks/namd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24136
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Tue, 1 Nov 2005 05:49:08 +0000 (05:49 +0000)]
heh, scheduling was easy?
need to send chris, jim and sampo a box of fish each
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24135
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Tue, 1 Nov 2005 05:46:16 +0000 (05:46 +0000)]
FORTRAN!!! :( and other similarly unfortunate things mean that on ia64
one sometimes needs to pass FP args in both FP *and* integer registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24134
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Tue, 1 Nov 2005 03:32:15 +0000 (03:32 +0000)]
so tablegen was thinking I might want to convert FPs to predicates.
clever little tablegen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24133
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Tue, 1 Nov 2005 03:07:25 +0000 (03:07 +0000)]
add support for int->FP and FP->int ops, and add ia64 patterns for these
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24132
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Tue, 1 Nov 2005 01:29:55 +0000 (01:29 +0000)]
add zeroextend predicate->integer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24131
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Nov 2005 00:12:36 +0000 (00:12 +0000)]
Add a flag to enable a darwin linker optimization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24130
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 Oct 2005 22:12:06 +0000 (22:12 +0000)]
Make constant pool entries use private labels. This is important when you're
not compiling a whole program at a time :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24129
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 31 Oct 2005 19:07:29 +0000 (19:07 +0000)]
Updated alpha known problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 Oct 2005 19:06:13 +0000 (19:06 +0000)]
Apparently these do pass on some alphas
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24125
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 Oct 2005 18:42:37 +0000 (18:42 +0000)]
Fix an iterator invalidation problem in code used by the -strip pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24124
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 Oct 2005 18:35:52 +0000 (18:35 +0000)]
Limit the search depth of MaskedValueIsZero to 6 instructions, to avoid
bad cases. This fixes Markus's second testcase in PR639, and should
seal it for good.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24123
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 31 Oct 2005 17:16:46 +0000 (17:16 +0000)]
Emit itinerary class in instruction info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24122
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 31 Oct 2005 17:16:01 +0000 (17:16 +0000)]
Generate cpu to itinerary map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24121
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 Oct 2005 16:15:49 +0000 (16:15 +0000)]
these tests fail on alpha for some reason
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24120
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 31 Oct 2005 12:49:09 +0000 (12:49 +0000)]
1. Embed and not inherit vector for NodeGroup.
2. Iterate operands and not uses (performance.)
3. Some long pending comment changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24119
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 31 Oct 2005 01:42:11 +0000 (01:42 +0000)]
add FP compares and implicit register defs to the dag isel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24118
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sun, 30 Oct 2005 21:00:24 +0000 (21:00 +0000)]
Update Getting Started for Visual Studio page.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24117
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 19:42:35 +0000 (19:42 +0000)]
Significantly simplify this code and make it more aggressive. Instead of having
a special case hack for X86, make the hack more general: if an incoming argument
register is not used in any block other than the entry block, don't copy it to
a vreg. This helps us compile code like this:
%struct.foo = type { int, int, [0 x ubyte] }
int %test(%struct.foo* %X) {
%tmp1 = getelementptr %struct.foo* %X, int 0, uint 2, int 100
%tmp = load ubyte* %tmp1 ; <ubyte> [#uses=1]
%tmp2 = cast ubyte %tmp to int ; <int> [#uses=1]
ret int %tmp2
}
to:
_test:
lbz r3, 108(r3)
blr
instead of:
_test:
lbz r2, 108(r3)
or r3, r2, r2
blr
The (dead) copy emitted to copy r3 into a vreg for extra-block uses was
increasing the live range of r3 past the load, preventing the coallescing.
This implements CodeGen/PowerPC/reg-coallesce-simple.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24115
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 19:42:18 +0000 (19:42 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24112
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 18:54:27 +0000 (18:54 +0000)]
Reduce the number of copies emitted as machine instructions by
generating results in vregs that will need them. In the case of something
like this: CopyToReg((add X, Y), reg1024), we no longer emit code like
this:
reg1025 = add X, Y
reg1024 = reg 1025
Instead, we emit:
reg1024 = add X, Y
Whoa! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24111
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 16:44:01 +0000 (16:44 +0000)]
If the module has no t-t and the host is an alpha, default to using the Alpha BE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24110
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sun, 30 Oct 2005 10:14:19 +0000 (10:14 +0000)]
fix some broken comparisons, this affected the Pattern isel too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24109
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 07:22:15 +0000 (07:22 +0000)]
The pass was removed, but the spirit lives on
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24108
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 06:42:12 +0000 (06:42 +0000)]
This is implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24107
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 06:41:49 +0000 (06:41 +0000)]
Codegen mul by negative power of two with a shift and negate.
This implements test/Regression/CodeGen/PowerPC/mul-neg-power-2.ll,
producing:
_foo:
slwi r2, r3, 1
subfic r3, r2, 63
blr
instead of:
_foo:
mulli r2, r3, -2
addi r3, r2, 63
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24106
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 06:37:33 +0000 (06:37 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24103
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 06:24:33 +0000 (06:24 +0000)]
Fix a problem that Nate noticed with LSR:
When inserting code for an addrec expression with a non-unit stride, be
more careful where we insert the multiply. In particular, insert the multiply
in the outermost loop we can, instead of the requested insertion point.
This allows LSR to notice the mul in the right loop, reducing it when it gets
to it. This allows it to reduce the multiply, where before it missed it.
This happens quite a bit in the test suite, for example, eliminating 2
multiplies in art, 3 in ammp, 4 in apsi, reducing from 1050 multiplies to
910 muls in galgel (!), from 877 to 859 in applu, and 36 to 30 in bzip2.
This speeds up galgel from 16.45s to 16.01s, applu from 14.21 to 13.94s and
fourinarow from 66.67s to 63.48s.
This implements Transforms/LoopStrengthReduce/nested-reduce.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24102
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Oct 2005 05:14:02 +0000 (05:14 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24099
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 17:01:41 +0000 (17:01 +0000)]
Revert an accidental commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24098
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 29 Oct 2005 16:51:48 +0000 (16:51 +0000)]
More files deleted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24097
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 16:45:02 +0000 (16:45 +0000)]
Make -time-passes output prettier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24096
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 16:39:40 +0000 (16:39 +0000)]
Make negative immediates in patterns work correctly, silence some warnings
building the itanium backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24095
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 29 Oct 2005 16:08:30 +0000 (16:08 +0000)]
add some FP stuff, some mix.* stuff, and constant pool support to the
DAG instruction selector, which should be destroyed one day (in the pattern
isel also) since ia64 can pack any constant in the instruction stream
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24094
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 07:08:19 +0000 (07:08 +0000)]
Fix <> in html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24093
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 07:07:09 +0000 (07:07 +0000)]
First hack-and-slash on the release notes. Comments and improvements welcome
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24092
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 05:34:40 +0000 (05:34 +0000)]
Remove the lowerconstantexprs pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24091
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 05:33:46 +0000 (05:33 +0000)]
This pass is now obsolete since all targets have moved to the SelectionDAG
infrastructure and the simple isels have been removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24090
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 05:32:20 +0000 (05:32 +0000)]
Remove the LowerConstantExpressionsPass pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24089
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 05:28:34 +0000 (05:28 +0000)]
remove reference to this pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 05:14:01 +0000 (05:14 +0000)]
Basic updates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24087
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 04:55:57 +0000 (04:55 +0000)]
Buh bye Expression.(cpp|h)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24086
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 04:43:38 +0000 (04:43 +0000)]
remove a dead file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24085
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 04:43:10 +0000 (04:43 +0000)]
remove a dead header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24084
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 04:41:30 +0000 (04:41 +0000)]
Remove dead #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 04:40:23 +0000 (04:40 +0000)]
Now that instcombine does this xform, remove it from the -raise pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24082
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 04:36:15 +0000 (04:36 +0000)]
Pull some code out into a function, give it the ability to see through +.
This allows us to turn code like malloc(4*x+4) -> malloc int, (x+1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24081
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 29 Oct 2005 04:13:40 +0000 (04:13 +0000)]
add shladd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24080
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 29 Oct 2005 04:06:49 +0000 (04:06 +0000)]
test for the formation of shladd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24077
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Oct 2005 03:19:53 +0000 (03:19 +0000)]
Remove a special case, allowing the general case to handle it. No functionality
change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24076
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 28 Oct 2005 23:26:57 +0000 (23:26 +0000)]
New case to handle someday
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24075
91177308-0d34-0410-b5e6-
96231b3b80d8