Andrew Lenharth
72b16d820c
A start at a Sparc V8 Pattern ISel. Anyone want to implement the calling
...
convention? ;)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22247 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 16:52:12 +00:00
Chris Lattner
b157f858a2
silence incredibly braindead GCC 4 warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22246 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 13:44:07 +00:00
Chris Lattner
9cb2d6167d
silence a bogus warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22245 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 13:23:32 +00:00
Chris Lattner
e6ad5ea996
silence a huge number of bogus warnings with GCC 4 on Reid's tester.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22244 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 13:20:15 +00:00
Tanya Lattner
60b62aa046
Removed IIIi specific changes. This should be fixed to add floating point deps for the IIi.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22243 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 04:21:09 +00:00
Tanya Lattner
d70cee2d5a
Special dep graph for SMS for superblocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22242 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 04:16:14 +00:00
Tanya Lattner
747e053cba
Special versions of the dep graph and scheduled for SMS for superblocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22241 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 04:15:43 +00:00
Tanya Lattner
8352e23d11
Added statistic to count number of spills.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22240 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 04:01:34 +00:00
Tanya Lattner
d454a973a5
Numerous bug fixes and the completed modschedSB algorithm (minor bugs still exist for course).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22239 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 04:00:57 +00:00
Tanya Lattner
770e991bc4
Added SMS for superblocks as an option (experimental)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22238 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 04:00:22 +00:00
Tanya Lattner
771c5c1819
Added ModuloSchedSB as a friend class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22237 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 03:59:51 +00:00
Chris Lattner
e88b7533be
This is not true: (X != 13 | X < 15) -> X < 15
...
It is actually always true. This fixes PR586 and
Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22236 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 03:59:17 +00:00
Chris Lattner
32545518f2
new testcase for PR586
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22235 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 03:58:30 +00:00
Chris Lattner
5662503afd
Don't crash when dealing with INTMIN. This fixes PR585 and
...
Transforms/InstCombine/2005-06-16-RangeCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22234 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 02:05:55 +00:00
Chris Lattner
98b4d59861
new testcase for PR585
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22233 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 02:04:47 +00:00
Chris Lattner
0289929c62
Don't crash on: X = phi (X, X).
...
This fixes PR584 and Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22232 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 01:45:53 +00:00
Chris Lattner
bff44407e8
new testcase for PR584
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22231 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 01:45:03 +00:00
Chris Lattner
d7e31cfaae
avoid constructing out of range shift amounts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22230 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-17 01:29:28 +00:00
Nate Begeman
41aaf7016e
Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B for
...
integer types. Add a couple checks to not perform these kinds of transform
on floating point values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22228 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-16 07:06:03 +00:00
Chris Lattner
f9c775c22e
Fix PR583 and testcase Transforms/InstCombine/2005-06-15-DivSelectCrash.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22227 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-16 04:55:52 +00:00
Chris Lattner
5adb41a750
new testcase for PR583
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22226 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-16 04:55:29 +00:00
Chris Lattner
8d7089e1d5
Fix PR571, removing code that does just the WRONG thing :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22225 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-16 03:00:08 +00:00
Chris Lattner
aa457ac2e7
Fix a bug in my previous patch. Do not get the shift amount type (which
...
is always ubyte, get the type being shifted). This unbreaks espresso
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22224 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-16 01:52:07 +00:00
Chris Lattner
d286b245be
Fix PR575, patch provided by John Mellor-Crummey. Thanks!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22223 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 22:49:30 +00:00
Chris Lattner
065e4208a9
new testcase for PR580
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22222 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 22:42:53 +00:00
Chris Lattner
4bd09d70cc
Fix PR582. The rewriter can move casts around, which invalidated the
...
BB iterator. This fixes Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22221 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 21:29:31 +00:00
Chris Lattner
73d31b9598
new testcase for PR582
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22220 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 21:28:55 +00:00
Chris Lattner
553ca52623
Do not promote globals only used by main to locals if there are constantexprs
...
or other uses hanging off of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22219 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 21:11:48 +00:00
Chris Lattner
364651395c
new testcase for PR579
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22218 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 21:11:18 +00:00
Chris Lattner
e17a128a55
Fix PR577 and testcase InstCombine/2005-06-15-ShiftSetCCCrash.ll.
...
Do not perform undefined out of range shifts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22217 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 20:53:31 +00:00
Chris Lattner
7833b44f6a
new testcase for PR577
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22216 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 20:52:39 +00:00
Reid Spencer
47d309e1a9
Don't lie to the casual reader about Value subclassing from Annotable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22215 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 18:40:45 +00:00
Nate Begeman
cb647519d3
Add some operators the PowerPC backend needs to efficiently and correctly
...
generate conditional branches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22214 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 18:28:44 +00:00
Reid Spencer
877c3e2b81
Put the hack back in that removes features, causes regressions to fail, but
...
allows test programs to succeed. Actual fix for this is forthcoming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22213 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 18:25:30 +00:00
Nate Begeman
439009c81e
Commit fix for generating conditional branch pseudo instructions that
...
avoids dereferencing the end() iterator when selecting the fallthrough
block. This requires an ilist change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22212 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-15 18:22:43 +00:00
Duraid Madina
0203a31808
nothing funny about building the CFE on Linux/Itanium
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22211 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-14 07:29:50 +00:00
Nate Begeman
a43b176f51
Commit a small improvement that is already in the x86 and ia64 backends to
...
not generate unnecessary register copies. This improves compile time by
2-5% depending on the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22210 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-14 03:55:23 +00:00
Reid Spencer
16b5644f04
Unbreak several InstCombine regression checks introduced by a hack to
...
fix the bzip2 test. A better hack is needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22209 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-13 06:41:26 +00:00
Nate Begeman
244e92eaab
When compiled with GCC 4.0, a latent bug was exposed where both SparcV9
...
and the target independant register allocator were both using a class named
'LiveRange'. This lead to the target independant code calling code in the
SparcV9 backend, which crashed. Fixed by renaming SparcV9's LiveRange to
V9LiveRange.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22208 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-12 23:52:58 +00:00
Nate Begeman
ac609ddf82
Fix a memory smasher caught by Mac OS X's debug malloc library. We were
...
incorrectly using an iterator after it was invalid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22207 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-12 23:50:33 +00:00
Chris Lattner
71fae1022e
Fix a 64-bit problem, passing (int)0 through ... instead of (void*)0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22206 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-09 03:32:54 +00:00
Chris Lattner
5633cd13e2
Fix a problem on 64-bit targets where we passed (int)0 through ... instead of
...
(void*)0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22205 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-09 02:59:00 +00:00
Andrew Lenharth
705b9e55f2
make SparcV8 and V9 seperately configurable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22204 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-08 22:32:51 +00:00
Andrew Lenharth
09552bff8d
fix BranchCC with a setCC with an arg of 0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22203 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-08 18:02:21 +00:00
Reid Spencer
eae435de83
For PR572:
...
Undefine the PPC symbol which is defined by Linux/PPC (erroneously) so it
doesn't pollute the user namespace and clash with our namespace declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22202 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-08 17:44:48 +00:00
Nate Begeman
b2c4bf3ff6
Handle some more real world cases of rlwimi. These don't come up that
...
regularly in "normal" code, but for things like software graphics, they
make a big difference.
For the following code:
unsigned short Trans16Bit(unsigned srcA,unsigned srcB,unsigned alpha)
{
unsigned tmpA,tmpB,mixed;
tmpA = ((srcA & 0x03E0) << 15) | (srcA & 0x7C1F);
tmpB = ((srcB & 0x03E0) << 15) | (srcB & 0x7C1F);
mixed = (tmpA * alpha) + (tmpB * (32 - alpha));
return ((mixed >> 5) & 0x7C1F) | ((mixed >> 20) & 0x03E0);
}
We now generate:
_Trans16Bit:
.LBB_Trans16Bit_0: ; entry
andi. r2, r4, 31775
rlwimi r2, r4, 15, 7, 11
subfic r4, r5, 32
mullw r2, r2, r4
andi. r4, r3, 31775
rlwimi r4, r3, 15, 7, 11
mullw r3, r4, r5
add r2, r2, r3
srwi r3, r2, 5
andi. r3, r3, 31775
rlwimi r3, r2, 12, 22, 26
blr
Instead of:
_Trans16Bit:
.LBB_Trans16Bit_0: ; entry
slwi r2, r4, 15
rlwinm r2, r2, 0, 7, 11
andi. r4, r4, 31775
or r2, r2, r4
subfic r4, r5, 32
mullw r2, r2, r4
slwi r4, r3, 15
rlwinm r4, r4, 0, 7, 11
andi. r3, r3, 31775
or r3, r4, r3
mullw r3, r3, r5
add r2, r2, r3
srwi r3, r2, 5
andi. r3, r3, 31775
srwi r2, r2, 20
rlwimi r3, r2, 0, 22, 26
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22201 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-08 04:14:27 +00:00
Nate Begeman
6dae3308f5
Fix lli linking on Mac OS X 10.4.1 for Intel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22200 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-08 01:02:38 +00:00
Andrew Lenharth
141e488a70
Remove code for conversion from old style va_args. Preparing the way for
...
returning to the old style :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22199 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-08 00:49:08 +00:00
Misha Brukman
6d2e334cce
We also have V8, so do not force every Sparc to be treated like a V9. It is
...
still possible to force V9 (even if configure doesn't think it's one) via
``./configure --target=sparcv9-sun-solaris2.8'' so nothing is lost.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22198 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-06 19:29:36 +00:00
Misha Brukman
4391bb537d
* Add ability to specify the target LLVM will compile for via configure
...
* Minor whitespace cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22197 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-06 19:17:05 +00:00