Chris Lattner [Sat, 4 Mar 2006 06:02:36 +0000 (06:02 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26518
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 4 Mar 2006 02:48:56 +0000 (02:48 +0000)]
MEMSET / MEMCPY lowering bugs: we can't issue a single WORD / DWORD version of
rep/stos and rep/mov if the count is not a constant. We could do
rep/stosl; and $count, 3; rep/stosb
For now, I will lower them to memset / memcpy calls. We will revisit this after
a little bit experiment.
Also need to take care of the trailing bytes even if the count is a constant.
Since the max. number of trailing bytes are 3, we will simply issue loads /
stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26517
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 4 Mar 2006 02:19:46 +0000 (02:19 +0000)]
Keep Visual Studio happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26516
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Mar 2006 02:06:34 +0000 (02:06 +0000)]
Be more conservative with our symbolic alias analysis. In particular,
don't assume that A[1][0] and A[0][i] can't alias. "i" might be out of
range, or even negative. This fixes a miscompilation of 188.ammp (which
does bad pointer tricks) with the new CFE.
Testcase here: Analysis/BasicAA/2006-03-03-BadArraySubscript.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26515
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Mar 2006 02:05:07 +0000 (02:05 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26514
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Mar 2006 01:19:34 +0000 (01:19 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26513
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 4 Mar 2006 01:12:00 +0000 (01:12 +0000)]
Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26512
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Mar 2006 00:47:12 +0000 (00:47 +0000)]
New testcase, make sure nate doesn't vanish
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26511
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Mar 2006 00:02:10 +0000 (00:02 +0000)]
Spec change: the size of a memset/memcpy/memmove is not required to be aligned
to the alignment argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26510
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 3 Mar 2006 21:00:14 +0000 (21:00 +0000)]
Added support for dwarf block data entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26509
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 19:34:28 +0000 (19:34 +0000)]
Silence a warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26508
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Mar 2006 18:58:09 +0000 (18:58 +0000)]
Add another test case for instruction scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26507
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 16:31:22 +0000 (16:31 +0000)]
Unbreak autouprade of llvm.sqrt, simplify some code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26506
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 3 Mar 2006 15:06:57 +0000 (15:06 +0000)]
Adding basic structure support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26505
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Mar 2006 07:01:07 +0000 (07:01 +0000)]
Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26504
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Mar 2006 06:58:59 +0000 (06:58 +0000)]
Number of NodeTypes now exceeds 128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26503
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Mar 2006 06:42:32 +0000 (06:42 +0000)]
SDOperand::isOperand should not be a forwarding. It must check *this against N's operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26502
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Mar 2006 06:24:54 +0000 (06:24 +0000)]
Added isOperand(N): true if this is an operand of N
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26501
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Mar 2006 06:23:43 +0000 (06:23 +0000)]
A bit more tweaking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26500
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 06:13:41 +0000 (06:13 +0000)]
Fix pasteo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26499
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 3 Mar 2006 03:25:07 +0000 (03:25 +0000)]
Fix VC++ compilation errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26498
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 02:34:28 +0000 (02:34 +0000)]
remove a bunch of long-dead testing code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26497
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 02:33:15 +0000 (02:33 +0000)]
initial checkin of the intrinsic description file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26496
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 02:32:46 +0000 (02:32 +0000)]
initial implementation of intrinsic parsing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26495
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Bocchino [Fri, 3 Mar 2006 02:12:04 +0000 (02:12 +0000)]
Implemented -quiet feature for analyze
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26494
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Mar 2006 02:04:29 +0000 (02:04 +0000)]
Move #include "llvm/CodeGen/AsmPrinter.h" to top since it's the interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26493
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 02:04:07 +0000 (02:04 +0000)]
remove out of date comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26492
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:55:49 +0000 (01:55 +0000)]
update comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26491
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:55:26 +0000 (01:55 +0000)]
Split the valuetypes out of Target.td into ValueTypes.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26490
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:54:54 +0000 (01:54 +0000)]
pass -Illvm/include to tblgen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26489
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:54:11 +0000 (01:54 +0000)]
Split this out of Target.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26488
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:53:40 +0000 (01:53 +0000)]
Add support for "-Ifoo" in addition to "-I foo"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26487
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:47:37 +0000 (01:47 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26486
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:47:14 +0000 (01:47 +0000)]
add support for multiple include directories
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26485
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:34:17 +0000 (01:34 +0000)]
Change this to work with renamed intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26484
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:31:12 +0000 (01:31 +0000)]
Upgrade this to use the new intrinsic names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26483
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:30:23 +0000 (01:30 +0000)]
Make this work with renamed intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26482
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 01:21:36 +0000 (01:21 +0000)]
updates for recent changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26481
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 00:34:26 +0000 (00:34 +0000)]
mention some major changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26480
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 00:19:58 +0000 (00:19 +0000)]
remove the read/write port/io intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26479
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 00:16:23 +0000 (00:16 +0000)]
Remove these testcases. These intrinsics are going away
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26478
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 00:07:20 +0000 (00:07 +0000)]
Update the llvm.memset/memcpy/memmove intrinsics to reflect the recent split
into types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26477
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Mar 2006 00:00:25 +0000 (00:00 +0000)]
Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving
PR709, and paving the way for future progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26476
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Mar 2006 23:59:12 +0000 (23:59 +0000)]
Simplify the autoupgrade interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26475
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Mar 2006 23:58:40 +0000 (23:58 +0000)]
Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving
PR709, and paving the way for future progress.
Significantly refactor autoupgrading code, to handle the more complex case
(where we upgrade one argument in a function), and fix some bugs in it.
Testcase here: llvm/test/Regression/Bytecode/memcpy.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26474
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Mar 2006 23:56:23 +0000 (23:56 +0000)]
new testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26473
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Mar 2006 22:34:38 +0000 (22:34 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26472
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Mar 2006 21:48:34 +0000 (21:48 +0000)]
Add a regression test for bug 478.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26471
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Mar 2006 21:38:29 +0000 (21:38 +0000)]
- Fixed some priority calculation bugs that were causing bug 478. Among them:
a predecessor appearing more than once in the operand list was counted as
multiple predecessor; priority1 should be updated during scheduling;
CycleBound was updated after the node is inserted into priority queue; one
of the tie breaking condition was flipped.
- Take into consideration of two address opcodes. If a predecessor is a def&use
operand, it should have a higher priority.
- Scheduler should also favor floaters, i.e. nodes that do not have real
predecessors such as MOV32ri.
- The scheduling fixes / tweaks fixed bug 478:
.text
.align 4
.globl _f
_f:
movl 4(%esp), %eax
movl 8(%esp), %ecx
movl %eax, %edx
imull %ecx, %edx
imull %eax, %eax
imull %ecx, %ecx
addl %eax, %ecx
leal (%ecx,%edx,2), %eax
ret
It is also a slight performance win (1% - 3%) for most tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26470
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Mar 2006 06:50:58 +0000 (06:50 +0000)]
Generalize the REM folding code to handle another case Nick Lewycky
pointed out: realize the AND can provide factors and look through Casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26469
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Mar 2006 06:50:04 +0000 (06:50 +0000)]
add a couple more cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26468
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Mar 2006 00:21:41 +0000 (00:21 +0000)]
Fix a compilation error with GCC 4.1. Thanks to Vladimir Merzliakov for
pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26467
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 1 Mar 2006 23:52:37 +0000 (23:52 +0000)]
Support for enumerations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26466
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 22:45:12 +0000 (22:45 +0000)]
testcase that crashed the new CFE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26465
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 22:18:09 +0000 (22:18 +0000)]
Don't print llvm constant in assmebly file. Assembler won't like comments that
span multiple lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26463
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 22:17:00 +0000 (22:17 +0000)]
Back out my last check-in. Wrong place to fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26462
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 22:00:59 +0000 (22:00 +0000)]
AsmWriter should not print LLVM constant in comment. Assembler won't like
multi-line comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26461
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 21:47:21 +0000 (21:47 +0000)]
Fix CodeGen/Generic/2006-03-01-dagcombineinfloop.ll, an infinite loop
in the dag combiner on 176.gcc on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26459
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 21:46:53 +0000 (21:46 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26458
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 1 Mar 2006 20:49:44 +0000 (20:49 +0000)]
Remove extra comma from enum list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26457
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 1 Mar 2006 20:48:20 +0000 (20:48 +0000)]
Remove comma from enum list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26456
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 1 Mar 2006 20:39:36 +0000 (20:39 +0000)]
Switch back to using actual dwarf tags. Simplifies code without loss to other
debug forms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26455
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 19:55:35 +0000 (19:55 +0000)]
Fix a typo evan noticed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26454
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 1 Mar 2006 18:20:30 +0000 (18:20 +0000)]
Use context and not compile unit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26453
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 1 Mar 2006 18:13:05 +0000 (18:13 +0000)]
I guess I can handle large type sizes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26452
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 1 Mar 2006 17:53:02 +0000 (17:53 +0000)]
Basic array support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26451
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 07:14:48 +0000 (07:14 +0000)]
Implement CodeGen/PowerPC/or-addressing-mode.ll, which is also PR668.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26450
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 07:13:56 +0000 (07:13 +0000)]
load (x|y) -> load (x+y) iff x and y have no common bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26449
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 06:36:20 +0000 (06:36 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26448
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 05:50:56 +0000 (05:50 +0000)]
Compile this:
void foo(float a, int *b) { *b = a; }
to this:
_foo:
fctiwz f0, f1
stfiwx f0, 0, r4
blr
instead of this:
_foo:
fctiwz f0, f1
stfd f0, -8(r1)
lwz r2, -4(r1)
stw r2, 0(r4)
blr
This implements CodeGen/PowerPC/stfiwx.ll, and also incidentally does the
right thing for GCC bugzilla 26505.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26447
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 05:49:05 +0000 (05:49 +0000)]
new testcase. These functions shouldn't touch the stack if stfiwx use
is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26446
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 04:57:39 +0000 (04:57 +0000)]
Use a target-specific dag-combine to implement CodeGen/PowerPC/fp-int-fp.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26445
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 04:56:33 +0000 (04:56 +0000)]
new testcase. There should be no accesses to the stack for these functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26444
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 04:53:38 +0000 (04:53 +0000)]
Add support for target-specific dag combines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26443
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 04:52:55 +0000 (04:52 +0000)]
Add interfaces for targets to provide target-specific dag combiner optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26442
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 04:03:14 +0000 (04:03 +0000)]
Add a new AddToWorkList method, start using it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26441
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 03:44:24 +0000 (03:44 +0000)]
Pull shifts by a constant through multiplies (a form of reassociation),
implementing Regression/CodeGen/X86/mul-shift-reassoc.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26440
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Mar 2006 03:43:38 +0000 (03:43 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26439
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 01:11:20 +0000 (01:11 +0000)]
Vector op lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26438
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 01:10:52 +0000 (01:10 +0000)]
New vector type v2f32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26437
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 01:09:54 +0000 (01:09 +0000)]
Vector ops lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26436
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 01:06:22 +0000 (01:06 +0000)]
New type v2f32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26435
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 00:58:54 +0000 (00:58 +0000)]
Missing a cast previously.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26434
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 00:55:26 +0000 (00:55 +0000)]
- Added v2f32, not used by any target currently. Only for testing purpose.
- Minor bug fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26433
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Mar 2006 00:51:13 +0000 (00:51 +0000)]
- Added VConstant as an abstract version of ConstantVec.
- All abstrct vector nodes must have # of elements and element type as their
first two operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26432
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 28 Feb 2006 23:57:45 +0000 (23:57 +0000)]
Add a test case for left shift by 1. We should not be using lea for this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26431
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 28 Feb 2006 23:38:49 +0000 (23:38 +0000)]
Another entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26430
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 28 Feb 2006 21:13:57 +0000 (21:13 +0000)]
Don't match x << 1 to LEAL. It's better to emit x + x.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26429
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 28 Feb 2006 20:15:07 +0000 (20:15 +0000)]
Add const, volatile, restrict support.
Add array of debug descriptor support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26428
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 19:47:20 +0000 (19:47 +0000)]
Fix a regression in a patch from a couple of days ago. This fixes
Transforms/InstCombine/2006-02-28-Crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26427
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 19:46:56 +0000 (19:46 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26426
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 19:12:58 +0000 (19:12 +0000)]
8 spaces -> tab. Reported by Wink Saville
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26425
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 16:39:56 +0000 (16:39 +0000)]
evan's recent x86 isel improvements have fixed this, though not in the way
originally envisioned :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26422
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 07:08:22 +0000 (07:08 +0000)]
Add a subtarget feature for the stfiwx instruction. I know the G5 has it,
but I don't know what other PPC impls do. If someone could update the proc
table, I would appreciate it :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26421
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 06:54:19 +0000 (06:54 +0000)]
new testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26420
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 06:49:37 +0000 (06:49 +0000)]
Compile:
unsigned foo4(unsigned short *P) { return *P & 255; }
unsigned foo5(short *P) { return *P & 255; }
to:
_foo4:
lbz r3,1(r3)
blr
_foo5:
lbz r3,1(r3)
blr
not:
_foo4:
lhz r2, 0(r3)
rlwinm r3, r2, 0, 24, 31
blr
_foo5:
lhz r2, 0(r3)
rlwinm r3, r2, 0, 24, 31
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26419
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 06:36:04 +0000 (06:36 +0000)]
remove implemented item
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26418
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 06:35:35 +0000 (06:35 +0000)]
Fold "and (LOAD P), 255" -> zextload. This allows us to compile:
unsigned foo3(unsigned *P) { return *P & 255; }
as:
_foo3:
lbz r3, 3(r3)
blr
instead of:
_foo3:
lwz r2, 0(r3)
rlwinm r3, r2, 0, 24, 31
blr
and:
unsigned short foo2(float a) { return a; }
as:
_foo2:
fctiwz f0, f1
stfd f0, -8(r1)
lhz r3, -2(r1)
blr
instead of:
_foo2:
fctiwz f0, f1
stfd f0, -8(r1)
lwz r2, -4(r1)
rlwinm r3, r2, 0, 16, 31
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26417
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 06:23:04 +0000 (06:23 +0000)]
fold (sra (sra x, c1), c2) -> (sra x, c1+c2)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26416
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Feb 2006 05:49:21 +0000 (05:49 +0000)]
Implement rem.ll:test[7-9] and PR712
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26415
91177308-0d34-0410-b5e6-
96231b3b80d8