Chris Lattner
19e970542d
Add a regtest for cases we now recognize as rotates, thanks to Scott Michel's
...
recent dagcombine patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35606 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 22:08:54 +00:00
Scott Michel
c9dc114578
1. Insert custom lowering hooks for ISD::ROTR and ISD::ROTL.
...
2. Help DAGCombiner recognize zero/sign/any-extended versions of ROTR and ROTL
patterns. This was motivated by the X86/rotate.ll testcase, which should now
generate code for other platforms (and soon-to-come platforms.) Rewrote code
slightly to make it easier to read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35605 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 21:36:32 +00:00
Chris Lattner
7b3b7e1e8e
fix this testcase so it passes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35604 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 20:46:28 +00:00
Chris Lattner
0a266af5ce
fix this testcase on ppc hosts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35603 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 20:39:48 +00:00
Dale Johannesen
d959aa421a
fix off by 1 error in displacement computation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35602 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 20:31:06 +00:00
Chris Lattner
6e0784da77
fix the CodeGen/ARM/2007-03-13-InstrSched.ll regression: allow IV's with scales
...
to be folded into non-store instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35601 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 18:51:18 +00:00
Evan Cheng
bcfd4665b5
Ugh. Copy coalescer does not update register numbers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35600 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 18:49:18 +00:00
Evan Cheng
ff6ad39bfb
New test case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35599 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 18:47:13 +00:00
Chris Lattner
c4e3f8e736
add support for the 'w' inline asm register class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35598 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 17:24:08 +00:00
Devang Patel
0cf10286d5
Update example notes to clarify system linker's role.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 16:54:12 +00:00
Reid Spencer
0b1e466c94
Regenerate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35596 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 15:41:39 +00:00
Reid Spencer
34e0d3254e
Check for .svn directories too to determine if a debug build is appropriate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35595 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 15:40:39 +00:00
Zhou Sheng
4a1822a6d8
1. Make use of APInt operation instead of using ConstantExpr::getXXX.
...
2. Use cheaper APInt methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35594 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 13:45:30 +00:00
Zhou Sheng
4351c649b2
Use uint32_t for bitwidth instead of unsigned.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35593 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 08:20:41 +00:00
Chris Lattner
1ebd89eb6b
Pass the type of the store access, not the type of the store, into the
...
target hook. This allows us to codegen a loop as:
LBB1_1: @cond_next
mov r2, #0
str r2, [r0, +r3, lsl #2 ]
add r3, r3, #1
cmn r3, #1
bne LBB1_1 @cond_next
instead of:
LBB1_1: @cond_next
mov r2, #0
str r2, [r0], #+4
add r3, r3, #1
cmn r3, #1
bne LBB1_1 @cond_next
This looks the same, but has one fewer induction variable (and therefore,
one fewer register) live in the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 06:34:44 +00:00
Chris Lattner
44ad85e0e8
new testcase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35591 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 06:33:10 +00:00
Chris Lattner
aa43e9f73b
Fix a bug which caused us to never be able to use signed comparisons for
...
equality comparisons of a constant. This allows us to codegen the 'sintzero'
loop in PR1288 as:
LBB1_1: ;cond_next
li r4, 0
addi r2, r2, 1
stw r4, 0(r3)
addi r3, r3, 4
cmpwi cr0, r2, -1
bne cr0, LBB1_1 ;cond_next
instead of:
LBB1_1: ;cond_next
addi r2, r2, 1
li r4, 0
xoris r5, r2, 65535
stw r4, 0(r3)
addi r3, r3, 4
cmplwi cr0, r5, 65535
bne cr0, LBB1_1 ;cond_next
This implements CodeGen/PowerPC/compare-simm.ll, and also cuts 74
instructions out of kc++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35590 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:59:42 +00:00
Chris Lattner
465b7157d1
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:57:59 +00:00
Chris Lattner
cd1d6d5b03
Wrap long line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35588 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:48:58 +00:00
Chris Lattner
acf4e074a9
use more obvious function name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35587 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:42:22 +00:00
Chris Lattner
2811f2a670
Treat xor of signbit like an add.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35586 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:41:38 +00:00
Chris Lattner
febabcc02a
add a helper function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35585 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:41:00 +00:00
Chris Lattner
5c6e2db0c4
simplify (x+c)^signbit as (x+c+signbit), pointed out by PR1288. This implements
...
test/Transforms/InstCombine/xor.ll:test28
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35584 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:36:22 +00:00
Chris Lattner
7a32bc9b9b
creative way to add one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35583 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:35:08 +00:00
Chris Lattner
028856dc39
my patch fixed the fixme.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35582 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:08:54 +00:00
Reid Spencer
443af5b65f
Fix illegal assembly syntax.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35581 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 03:24:47 +00:00
Reid Spencer
338ea097f2
bwsap -> bswap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35580 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 02:25:19 +00:00
Reid Spencer
8166a6c61d
Regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35579 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 02:08:35 +00:00
Reid Spencer
8918cb42db
Upgrade the bit count intrinsics to have an i32 result.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35578 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 02:08:05 +00:00
Reid Spencer
f1b18a7bdb
Add a test case to make sure that constant folding of the bit counting
...
intrinsics works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35577 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:45:31 +00:00
Chris Lattner
c995123182
reduce use of std::set
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35576 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:44:59 +00:00
Chris Lattner
d9c3a0d7cc
Various passes before isel split edges and do other CFG-restructuring changes.
...
isel has its own particular features that it wants in the CFG, in order to
reduce the number of times a constant is computed, etc. Make sure that we
clean up the CFG before doing any other things for isel. Doing so can
dramatically reduce the number of split edges and reduce the number of
places that constants get computed. For example, this shrinks
CodeGen/Generic/phi-immediate-factoring.ll from 44 to 37 instructions on X86,
and from 21 to 17 MBB's in the output. This is primarily a code size win,
not a performance win.
This implements CodeGen/Generic/phi-immediate-factoring.ll and PR1296.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35575 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:35:34 +00:00
Chris Lattner
56371694bf
new testcase for PR1296
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35574 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:32:59 +00:00
Lauro Ramos Venancio
9996663fc6
- Divides the comparisons in two types: comparisons that only use N and Z
...
flags (ARMISD::CMPNZ) and comparisons that use all flags (ARMISD::CMP).
- Defines the instructions: TST, TEQ (ARM) and TST (Thumb).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35573 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:30:03 +00:00
Chris Lattner
086f186267
add range version of insert()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:21:19 +00:00
Reid Spencer
41b213e532
Regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35571 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:14:00 +00:00
Reid Spencer
de704f36c6
Don't upgrade functions that look like a bswap intrinsic but aren't.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35570 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:13:36 +00:00
Reid Spencer
9277e3bbd3
Let llvm-upgrade upgrade the bswap intrinsic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35569 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:09:19 +00:00
Reid Spencer
2b35c15487
Let llvm-upgrade upgrade bswap intrinsic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35568 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:08:02 +00:00
Reid Spencer
dc1966e6ba
For PR1297:
...
Make sure that the CTPOP result is casted to i32 as the bit counting
intrinsics all return i32 now (this affects CTLZ and CTTZ as well).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35567 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:01:49 +00:00
Reid Spencer
86189a4460
Revert the name changes for llvm.bswap to allow (and test) llvm-upgrade of
...
this intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35566 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 00:51:15 +00:00
Reid Spencer
1e70bb6660
Handle upgrade of llvm.bswap.iXX to llvm.bswap.iXX.iXX per new naming
...
rules for overloaded intrinsic functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35565 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 00:50:28 +00:00
Reid Spencer
543ab1d784
Fix some bswap typos that Chris noticed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35564 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 00:19:52 +00:00
Chris Lattner
fe35555d09
print the type of an inserted IV in -debug mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35563 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 22:21:39 +00:00
Anton Korobeynikov
779dff1eee
Add testcase for correct sret handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35562 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 22:03:04 +00:00
Chris Lattner
55fc8c4c39
simplify this code, make it work for ap ints
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35561 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 20:57:36 +00:00
Chris Lattner
3e9f1d09c0
fix breakage from last night, simplify code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35560 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 20:49:36 +00:00
Chris Lattner
77c2af6b64
gcc 3.4.4 is known-bad on x86-64
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35559 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 20:14:46 +00:00
Reid Spencer
a13ba7d597
Preview documentation for additional intrinsic functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35558 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 19:00:37 +00:00
Jeff Cohen
03d7ca14bb
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35557 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 18:58:22 +00:00