oota-llvm.git
17 years agoNew test case.
Evan Cheng [Tue, 3 Apr 2007 21:38:03 +0000 (21:38 +0000)]
New test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35628 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFixed a bug that causes codegen of noop like add r0, r0, #0.
Evan Cheng [Tue, 3 Apr 2007 21:31:21 +0000 (21:31 +0000)]
Fixed a bug that causes codegen of noop like add r0, r0, #0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35627 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoreinstate the previous two patches, with a bugfix :)
Chris Lattner [Tue, 3 Apr 2007 17:43:25 +0000 (17:43 +0000)]
reinstate the previous two patches, with a bugfix :)

ldecod now passes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35626 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoStarting implementation of the ELF32 ABI specification of varargs handling.
Nicolas Geoffray [Tue, 3 Apr 2007 13:59:52 +0000 (13:59 +0000)]
Starting implementation of the ELF32 ABI specification of varargs handling.
LowerVASTART emits the right code if the subtarget is ELF32, the other intrinsics
(VAARG, VACOPY and VAEND) are not yet implemented.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35625 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThe PPC64 ELF ABI is "intended to use the same structure layout and calling conventio...
Nicolas Geoffray [Tue, 3 Apr 2007 12:35:28 +0000 (12:35 +0000)]
The PPC64 ELF ABI is "intended to use the same structure layout and calling convention rules
as the 64-bit PowerOpen ABI" (Reference http://www.linux-foundation.org/spec/ELF/ppc64/).
Change all ELF tests to ELF32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35624 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAddition to the previous commit for getCalleeSavedRegClasses:
Nicolas Geoffray [Tue, 3 Apr 2007 10:57:49 +0000 (10:57 +0000)]
Addition to the previous commit for getCalleeSavedRegClasses:

"The ELF ABI specifies F1-F8 registers as argument registers for double, not
F1-F10. This affects only ELF, not MachO."

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35623 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThe ELF ABI specifies F1-F8 registers as argument registers for double, not
Nicolas Geoffray [Tue, 3 Apr 2007 10:27:07 +0000 (10:27 +0000)]
The ELF ABI specifies F1-F8 registers as argument registers for double, not
F1-F10. This affects only ELF, not MachO.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35622 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPrepare for Subversion migration by implementing a -usesvn to tell the
Reid Spencer [Tue, 3 Apr 2007 08:28:44 +0000 (08:28 +0000)]
Prepare for Subversion migration by implementing a -usesvn to tell the
script to to check out llvm and llvm-test from Subversion instead of CVS.
Without this option the script will continue to check out from CVS. To
specify the Subversion URL, set the SVNURL environment variable or pass
-svnurl followed by the URL. For now, -svnurl will default to Reid's
temporary (read-only, daily snapshot) SVN server. Try it out if you like!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35621 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoReverting back to 1.723. The last two commits broke JM (and possibily others) on...
Evan Cheng [Tue, 3 Apr 2007 08:11:50 +0000 (08:11 +0000)]
Reverting back to 1.723. The last two commits broke JM (and possibily others) on ARM.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35620 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoInverted logic.
Evan Cheng [Tue, 3 Apr 2007 06:44:25 +0000 (06:44 +0000)]
Inverted logic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35619 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoBad bad bug. findRegisterUseOperand() returns -1 if a use if not found.
Evan Cheng [Tue, 3 Apr 2007 06:43:29 +0000 (06:43 +0000)]
Bad bad bug. findRegisterUseOperand() returns -1 if a use if not found.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35618 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoChanged to new MMX_ recipes.
Bill Wendling [Tue, 3 Apr 2007 06:18:31 +0000 (06:18 +0000)]
Changed to new MMX_ recipes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35617 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd FEMMS and ADDQ. Renamed MMX recipes to prepend the MMX_ to them.
Bill Wendling [Tue, 3 Apr 2007 06:00:37 +0000 (06:00 +0000)]
Add FEMMS and ADDQ. Renamed MMX recipes to prepend the MMX_ to them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35616 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agosplit some code out into a helper function
Chris Lattner [Tue, 3 Apr 2007 05:11:24 +0000 (05:11 +0000)]
split some code out into a helper function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35615 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSplit a whole ton of code out of visitICmpInst into visitICmpInstWithInstAndIntCst.
Chris Lattner [Tue, 3 Apr 2007 04:46:52 +0000 (04:46 +0000)]
Split a whole ton of code out of visitICmpInst into visitICmpInstWithInstAndIntCst.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35614 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd missing operator
Chris Lattner [Tue, 3 Apr 2007 04:25:46 +0000 (04:25 +0000)]
add missing operator

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35613 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix PR1253 and xor2.ll:test[01]
Chris Lattner [Tue, 3 Apr 2007 01:47:41 +0000 (01:47 +0000)]
Fix PR1253 and xor2.ll:test[01]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35612 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew testcase for PR1253
Chris Lattner [Tue, 3 Apr 2007 01:45:32 +0000 (01:45 +0000)]
new testcase for PR1253

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35611 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a helper function to constantint.
Chris Lattner [Tue, 3 Apr 2007 01:41:34 +0000 (01:41 +0000)]
add a helper function to constantint.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35610 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoArm supports negative strides as well, add them. This lets us compile:
Chris Lattner [Tue, 3 Apr 2007 00:13:57 +0000 (00:13 +0000)]
Arm supports negative strides as well, add them.  This lets us compile:
CodeGen/ARM/arm-negative-stride.ll to:

LBB1_2: @bb
        str r1, [r3, -r0, lsl #2]
        add r0, r0, #1
        cmp r0, r2
        bne LBB1_2      @bb

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35609 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew testcase, where we should use a negative stride
Chris Lattner [Tue, 3 Apr 2007 00:13:16 +0000 (00:13 +0000)]
new testcase, where we should use a negative stride

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35608 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoallow -1 strides to reuse "1" strides.
Chris Lattner [Mon, 2 Apr 2007 22:51:58 +0000 (22:51 +0000)]
allow -1 strides to reuse "1" strides.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35607 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd a regtest for cases we now recognize as rotates, thanks to Scott Michel's
Chris Lattner [Mon, 2 Apr 2007 22:08:54 +0000 (22:08 +0000)]
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

17 years ago1. Insert custom lowering hooks for ISD::ROTR and ISD::ROTL.
Scott Michel [Mon, 2 Apr 2007 21:36:32 +0000 (21:36 +0000)]
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

17 years agofix this testcase so it passes
Chris Lattner [Mon, 2 Apr 2007 20:46:28 +0000 (20:46 +0000)]
fix this testcase so it passes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35604 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix this testcase on ppc hosts
Chris Lattner [Mon, 2 Apr 2007 20:39:48 +0000 (20:39 +0000)]
fix this testcase on ppc hosts

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35603 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix off by 1 error in displacement computation
Dale Johannesen [Mon, 2 Apr 2007 20:31:06 +0000 (20:31 +0000)]
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

17 years agofix the CodeGen/ARM/2007-03-13-InstrSched.ll regression: allow IV's with scales
Chris Lattner [Mon, 2 Apr 2007 18:51:18 +0000 (18:51 +0000)]
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

17 years agoUgh. Copy coalescer does not update register numbers.
Evan Cheng [Mon, 2 Apr 2007 18:49:18 +0000 (18:49 +0000)]
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

17 years agoNew test case.
Evan Cheng [Mon, 2 Apr 2007 18:47:13 +0000 (18:47 +0000)]
New test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35599 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd support for the 'w' inline asm register class.
Chris Lattner [Mon, 2 Apr 2007 17:24:08 +0000 (17:24 +0000)]
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

17 years agoUpdate example notes to clarify system linker's role.
Devang Patel [Mon, 2 Apr 2007 16:54:12 +0000 (16:54 +0000)]
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

17 years agoRegenerate.
Reid Spencer [Mon, 2 Apr 2007 15:41:39 +0000 (15:41 +0000)]
Regenerate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35596 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCheck for .svn directories too to determine if a debug build is appropriate.
Reid Spencer [Mon, 2 Apr 2007 15:40:39 +0000 (15:40 +0000)]
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

17 years ago1. Make use of APInt operation instead of using ConstantExpr::getXXX.
Zhou Sheng [Mon, 2 Apr 2007 13:45:30 +0000 (13:45 +0000)]
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

17 years agoUse uint32_t for bitwidth instead of unsigned.
Zhou Sheng [Mon, 2 Apr 2007 08:20:41 +0000 (08:20 +0000)]
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

17 years agoPass the type of the store access, not the type of the store, into the
Chris Lattner [Mon, 2 Apr 2007 06:34:44 +0000 (06:34 +0000)]
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

17 years agonew testcase.
Chris Lattner [Mon, 2 Apr 2007 06:33:10 +0000 (06:33 +0000)]
new testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35591 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a bug which caused us to never be able to use signed comparisons for
Chris Lattner [Mon, 2 Apr 2007 05:59:42 +0000 (05:59 +0000)]
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

17 years agonew testcase
Chris Lattner [Mon, 2 Apr 2007 05:57:59 +0000 (05:57 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35589 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoWrap long line
Chris Lattner [Mon, 2 Apr 2007 05:48:58 +0000 (05:48 +0000)]
Wrap long line

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35588 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agouse more obvious function name.
Chris Lattner [Mon, 2 Apr 2007 05:42:22 +0000 (05:42 +0000)]
use more obvious function name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35587 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTreat xor of signbit like an add.
Chris Lattner [Mon, 2 Apr 2007 05:41:38 +0000 (05:41 +0000)]
Treat xor of signbit like an add.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35586 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a helper function.
Chris Lattner [Mon, 2 Apr 2007 05:41:00 +0000 (05:41 +0000)]
add a helper function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35585 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agosimplify (x+c)^signbit as (x+c+signbit), pointed out by PR1288. This implements
Chris Lattner [Mon, 2 Apr 2007 05:36:22 +0000 (05:36 +0000)]
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

17 years agocreative way to add one.
Chris Lattner [Mon, 2 Apr 2007 05:35:08 +0000 (05:35 +0000)]
creative way to add one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35583 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomy patch fixed the fixme.
Chris Lattner [Mon, 2 Apr 2007 05:08:54 +0000 (05:08 +0000)]
my patch fixed the fixme.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35582 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix illegal assembly syntax.
Reid Spencer [Mon, 2 Apr 2007 03:24:47 +0000 (03:24 +0000)]
Fix illegal assembly syntax.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35581 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agobwsap -> bswap
Reid Spencer [Mon, 2 Apr 2007 02:25:19 +0000 (02:25 +0000)]
bwsap -> bswap

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35580 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRegenerate
Reid Spencer [Mon, 2 Apr 2007 02:08:35 +0000 (02:08 +0000)]
Regenerate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35579 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUpgrade the bit count intrinsics to have an i32 result.
Reid Spencer [Mon, 2 Apr 2007 02:08:05 +0000 (02:08 +0000)]
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

17 years agoAdd a test case to make sure that constant folding of the bit counting
Reid Spencer [Mon, 2 Apr 2007 01:45:31 +0000 (01:45 +0000)]
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

17 years agoreduce use of std::set
Chris Lattner [Mon, 2 Apr 2007 01:44:59 +0000 (01:44 +0000)]
reduce use of std::set

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35576 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoVarious passes before isel split edges and do other CFG-restructuring changes.
Chris Lattner [Mon, 2 Apr 2007 01:35:34 +0000 (01:35 +0000)]
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

17 years agonew testcase for PR1296
Chris Lattner [Mon, 2 Apr 2007 01:32:59 +0000 (01:32 +0000)]
new testcase for PR1296

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35574 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago- Divides the comparisons in two types: comparisons that only use N and Z
Lauro Ramos Venancio [Mon, 2 Apr 2007 01:30:03 +0000 (01:30 +0000)]
- 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

17 years agoadd range version of insert()
Chris Lattner [Mon, 2 Apr 2007 01:21:19 +0000 (01:21 +0000)]
add range version of insert()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35572 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRegenerate
Reid Spencer [Mon, 2 Apr 2007 01:14:00 +0000 (01:14 +0000)]
Regenerate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35571 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDon't upgrade functions that look like a bswap intrinsic but aren't.
Reid Spencer [Mon, 2 Apr 2007 01:13:36 +0000 (01:13 +0000)]
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

17 years agoLet llvm-upgrade upgrade the bswap intrinsic.
Reid Spencer [Mon, 2 Apr 2007 01:09:19 +0000 (01:09 +0000)]
Let llvm-upgrade upgrade the bswap intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35569 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoLet llvm-upgrade upgrade bswap intrinsic.
Reid Spencer [Mon, 2 Apr 2007 01:08:02 +0000 (01:08 +0000)]
Let llvm-upgrade upgrade bswap intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35568 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Mon, 2 Apr 2007 01:01:49 +0000 (01:01 +0000)]
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

17 years agoRevert the name changes for llvm.bswap to allow (and test) llvm-upgrade of
Reid Spencer [Mon, 2 Apr 2007 00:51:15 +0000 (00:51 +0000)]
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

17 years agoHandle upgrade of llvm.bswap.iXX to llvm.bswap.iXX.iXX per new naming
Reid Spencer [Mon, 2 Apr 2007 00:50:28 +0000 (00:50 +0000)]
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

17 years agoFix some bswap typos that Chris noticed.
Reid Spencer [Mon, 2 Apr 2007 00:19:52 +0000 (00:19 +0000)]
Fix some bswap typos that Chris noticed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35564 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoprint the type of an inserted IV in -debug mode.
Chris Lattner [Sun, 1 Apr 2007 22:21:39 +0000 (22:21 +0000)]
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

17 years agoAdd testcase for correct sret handling.
Anton Korobeynikov [Sun, 1 Apr 2007 22:03:04 +0000 (22:03 +0000)]
Add testcase for correct sret handling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35562 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agosimplify this code, make it work for ap ints
Chris Lattner [Sun, 1 Apr 2007 20:57:36 +0000 (20:57 +0000)]
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

17 years agofix breakage from last night, simplify code.
Chris Lattner [Sun, 1 Apr 2007 20:49:36 +0000 (20:49 +0000)]
fix breakage from last night, simplify code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35560 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agogcc 3.4.4 is known-bad on x86-64
Chris Lattner [Sun, 1 Apr 2007 20:14:46 +0000 (20:14 +0000)]
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

17 years agoPreview documentation for additional intrinsic functions.
Reid Spencer [Sun, 1 Apr 2007 19:00:37 +0000 (19:00 +0000)]
Preview documentation for additional intrinsic functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35558 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUnbreak VC++ build.
Jeff Cohen [Sun, 1 Apr 2007 18:58:22 +0000 (18:58 +0000)]
Unbreak VC++ build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35557 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThe bit counting intrinsics return i32 not the operand type. This fixes
Reid Spencer [Sun, 1 Apr 2007 18:42:20 +0000 (18:42 +0000)]
The bit counting intrinsics return i32 not the operand type. This fixes
last night's regression in SingleSource/UnitTests/2005-05-11-Popcount-ffs-fls

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35556 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAvoid unnecessary APInt construction.
Zhou Sheng [Sun, 1 Apr 2007 17:13:37 +0000 (17:13 +0000)]
Avoid unnecessary APInt construction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35555 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTestcase for the problem worked around in
Duncan Sands [Sun, 1 Apr 2007 15:29:02 +0000 (15:29 +0000)]
Testcase for the problem worked around in
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070319/046204.html

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35554 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRemove unused methods.
Zhou Sheng [Sun, 1 Apr 2007 12:45:33 +0000 (12:45 +0000)]
Remove unused methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35553 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 08:27:01 +0000 (08:27 +0000)]
For PR1297:
Preview documentation for the llvm.bit.concat intrinsic (yet to be
implemented).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35552 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd i16 address mode.
Evan Cheng [Sun, 1 Apr 2007 08:06:46 +0000 (08:06 +0000)]
Add i16 address mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35551 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 08:04:23 +0000 (08:04 +0000)]
For PR1297:
Document changes to bswap and bit counting intrinsics. bswap's name now
requires two types in the suffix per overloaded intrinsic naming rules.
The ctpop, cttz, and ctlz intrinsics were changed to always return i32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35550 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMention how to create overloaded intrinsics.
Reid Spencer [Sun, 1 Apr 2007 07:44:52 +0000 (07:44 +0000)]
Mention how to create overloaded intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35549 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:36:28 +0000 (07:36 +0000)]
For PR1297:
Update these test cases to use proper signatures for bswap which is now
and overloaded intrinsic. Its name must be of the form llvm.bswap.i32.i32
since both the parameter and the result or of type "iAny". Also, the
bit counting intrinsics changed to always return i32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35548 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:35:23 +0000 (07:35 +0000)]
For PR1297:
Support overloaded intrinsics bswap, ctpop, cttz, ctlz.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35547 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:34:11 +0000 (07:34 +0000)]
For PR1297:
Adjust for changes in the bit counting intrinsics. They all return i32
now so we have to trunc/zext the DAG node accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35546 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:32:19 +0000 (07:32 +0000)]
For PR1297:
Change getOperationName to return std::string instead of const char*

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35545 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:30:57 +0000 (07:30 +0000)]
For PR1297:
Implement bswap, ctpop, ctlz, and cttz utilizing the new overloaded
intrinsic feature of tblgen. By defining llvm_int_ty to have an ValueType
of iAny, any intrinsic using that type becomes an overloaded intrinsic.
This signals that a) any integer type could be used for that argument and
b) the intrinsic needs a suffix to match each such argument for the
actual intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35544 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:28:37 +0000 (07:28 +0000)]
For PR1297:
Intrinsic functions might need to be generated (if they are overloaded) so
returning a const char* is no longer possible. Change getOperationName to
return a std::string instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35543 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:26:35 +0000 (07:26 +0000)]
For PR1297:
Change the interface to the getName, getType, getDeclaration methods to
include the "actual" types of the result/arguments. This is necessary to
support overloaded intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35542 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:25:33 +0000 (07:25 +0000)]
For PR1297:
Implement "actual" argument types for the Intrinsic member functions. This
involves changing the getName, getType, and getDeclaration methods to have
optional parameters for the actual types. These are necessary in order for
the type/name to be constructed properly for overloaded intrinsics. Only
the caller knows the actual argument types desired.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35541 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:22:57 +0000 (07:22 +0000)]
For PR1297:
1. Clear up confusion between "GotBits" and "ExpectBits". GotBits is the
   type actually provided. ExpectedBits is the type expected for the
   intrinsics. Before this patch, it was reversed!
2. Implement checks for overloaded intrinsics. This involves computing the
   suffix expected and making sure the suffix matches the function name. It
   also includes some intrinsic-specific checks such as ensuring that the
   bswap parameter and result are the same width and an even number of bytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35540 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:20:02 +0000 (07:20 +0000)]
For PR1297:
Implement code generation for overloaded intrinsic functions. The basic
difference is that "actual" argument types must be provided when
constructing intrinsic names and types. Also, for recognition, only the
prefix is examined. If it matches, the suffix is assumed to match. The
suffix is checked by the Verifier, however.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35539 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFor PR1297:
Reid Spencer [Sun, 1 Apr 2007 07:17:45 +0000 (07:17 +0000)]
For PR1297:
Add an "iAny" ValueType as a place holder for an integer type of any
bit width. This is used for intrinsics overloading on integer type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35538 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonot not!
Chris Lattner [Sun, 1 Apr 2007 06:19:41 +0000 (06:19 +0000)]
not not!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35537 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix InstCombine/2007-03-31-InfiniteLoop.ll
Chris Lattner [Sun, 1 Apr 2007 05:36:37 +0000 (05:36 +0000)]
Fix InstCombine/2007-03-31-InfiniteLoop.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35536 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoNew testcase
Chris Lattner [Sun, 1 Apr 2007 05:34:53 +0000 (05:34 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35535 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement union of wrapped sets.
Nick Lewycky [Sun, 1 Apr 2007 03:47:44 +0000 (03:47 +0000)]
Implement union of wrapped sets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35534 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoReadme
Andrew Lenharth [Sat, 31 Mar 2007 15:05:44 +0000 (15:05 +0000)]
Readme

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35533 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoConsistency with native compilers
Anton Korobeynikov [Sat, 31 Mar 2007 13:11:52 +0000 (13:11 +0000)]
Consistency with native compilers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35532 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix comment.
Bill Wendling [Sat, 31 Mar 2007 09:36:12 +0000 (09:36 +0000)]
Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35531 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a note
Chris Lattner [Sat, 31 Mar 2007 07:06:25 +0000 (07:06 +0000)]
add a note

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35530 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomove a bunch of code out of the sdisel pass into its own opt pass "codegenprepare".
Chris Lattner [Sat, 31 Mar 2007 04:18:03 +0000 (04:18 +0000)]
move a bunch of code out of the sdisel pass into its own opt pass "codegenprepare".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35529 91177308-0d34-0410-b5e6-96231b3b80d8