oota-llvm.git
18 years agonew testcase
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

18 years agoMEMSET / MEMCPY lowering bugs: we can't issue a single WORD / DWORD version of
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

18 years agoKeep Visual Studio happy.
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

18 years agoBe more conservative with our symbolic alias analysis. In particular,
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

18 years agonew testcase
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

18 years agoadd a note
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

18 years agoTypo
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

18 years agoNew testcase, make sure nate doesn't vanish
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

18 years agoSpec change: the size of a memset/memcpy/memmove is not required to be aligned
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

18 years agoAdded support for dwarf block data entries.
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

18 years agoSilence a warning.
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

18 years agoAdd another test case for instruction scheduling.
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

18 years agoUnbreak autouprade of llvm.sqrt, simplify some code.
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

18 years agoAdding basic structure support.
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

18 years agoAdd more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR.
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

18 years agoNumber of NodeTypes now exceeds 128.
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

18 years agoSDOperand::isOperand should not be a forwarding. It must check *this against N's...
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

18 years agoAdded isOperand(N): true if this is an operand of N
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

18 years agoA bit more tweaking
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

18 years agoFix pasteo
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

18 years agoFix VC++ compilation errors.
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

18 years agoremove a bunch of long-dead testing code
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

18 years agoinitial checkin of the intrinsic description file
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

18 years agoinitial implementation of intrinsic parsing
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

18 years agoImplemented -quiet feature for analyze
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

18 years agoMove #include "llvm/CodeGen/AsmPrinter.h" to top since it's the interface.
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

18 years agoremove out of date comment
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

18 years agoupdate comment
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

18 years agoSplit the valuetypes out of Target.td into ValueTypes.td
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

18 years agopass -Illvm/include to tblgen
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

18 years agoSplit this out of Target.td
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

18 years agoAdd support for "-Ifoo" in addition to "-I foo"
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

18 years agoRegenerate
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

18 years agoadd support for multiple include directories
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

18 years agoChange this to work with renamed intrinsics.
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

18 years agoUpgrade this to use the new intrinsic names
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

18 years agoMake this work with renamed intrinsics.
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

18 years agoupdates for recent changes
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

18 years agomention some major changes
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

18 years agoremove the read/write port/io intrinsics.
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

18 years agoRemove these testcases. These intrinsics are going away
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

18 years agoUpdate the llvm.memset/memcpy/memmove intrinsics to reflect the recent split
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

18 years agoSplit memcpy/memset/memmove intrinsics into i32/i64 versions, resolving
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

18 years agoSimplify the autoupgrade interface
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

18 years agoSplit memcpy/memset/memmove intrinsics into i32/i64 versions, resolving
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

18 years agonew testcases
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

18 years agoadd a note
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

18 years agoAdd a regression test for bug 478.
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

18 years ago- Fixed some priority calculation bugs that were causing bug 478. Among them:
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

18 years agoGeneralize the REM folding code to handle another case Nick Lewycky
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

18 years agoadd a couple more cases
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

18 years agoFix a compilation error with GCC 4.1. Thanks to Vladimir Merzliakov for
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

18 years agoSupport for enumerations.
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

18 years agotestcase that crashed the new CFE
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

18 years agoDon't print llvm constant in assmebly file. Assembler won't like comments that
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

18 years agoBack out my last check-in. Wrong place to fix it.
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

18 years agoAsmWriter should not print LLVM constant in comment. Assembler won't like
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

18 years agoFix CodeGen/Generic/2006-03-01-dagcombineinfloop.ll, an infinite loop
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

18 years agonew testcase
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

18 years agoRemove extra comma from enum list.
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

18 years agoRemove comma from enum list.
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

18 years agoSwitch back to using actual dwarf tags. Simplifies code without loss to other
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

18 years agoFix a typo evan noticed
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

18 years agoUse context and not compile unit.
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

18 years agoI guess I can handle large type sizes.
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

18 years agoBasic array support.
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

18 years agoImplement CodeGen/PowerPC/or-addressing-mode.ll, which is also PR668.
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

18 years agoload (x|y) -> load (x+y) iff x and y have no common bits.
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

18 years agoadd a note
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

18 years agoCompile this:
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

18 years agonew testcase. These functions shouldn't touch the stack if stfiwx use
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

18 years agoUse a target-specific dag-combine to implement CodeGen/PowerPC/fp-int-fp.ll.
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

18 years agonew testcase. There should be no accesses to the stack for these functions.
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

18 years agoAdd support for target-specific dag combines
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

18 years agoAdd interfaces for targets to provide target-specific dag combiner optimizations.
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

18 years agoAdd a new AddToWorkList method, start using it
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

18 years agoPull shifts by a constant through multiplies (a form of reassociation),
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

18 years agonew testcase
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

18 years agoVector op lowering.
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

18 years agoNew vector type v2f32.
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

18 years agoVector ops lowering.
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

18 years agoNew type v2f32.
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

18 years agoMissing a cast previously.
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

18 years ago- Added v2f32, not used by any target currently. Only for testing purpose.
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

18 years ago- Added VConstant as an abstract version of ConstantVec.
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

18 years agoAdd a test case for left shift by 1. We should not be using lea for this.
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

18 years agoAnother entry.
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

18 years agoDon't match x << 1 to LEAL. It's better to emit x + x.
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

18 years agoAdd const, volatile, restrict support.
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

18 years agoFix a regression in a patch from a couple of days ago. This fixes
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

18 years agonew testcase
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

18 years ago8 spaces -> tab. Reported by Wink Saville
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

18 years agoevan's recent x86 isel improvements have fixed this, though not in the way
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

18 years agoAdd a subtarget feature for the stfiwx instruction. I know the G5 has it,
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

18 years agonew testcases
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

18 years agoCompile:
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

18 years agoremove implemented item
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

18 years agoFold "and (LOAD P), 255" -> zextload. This allows us to compile:
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

18 years agofold (sra (sra x, c1), c2) -> (sra x, c1+c2)
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

18 years agoImplement rem.ll:test[7-9] and PR712
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