oota-llvm.git
18 years agoImplemented x86 inline asm b, h, w, k modifiers.
Evan Cheng [Fri, 28 Apr 2006 23:11:40 +0000 (23:11 +0000)]
Implemented x86 inline asm b, h, w, k modifiers.

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

18 years agoFix InstCombine/2006-04-28-ShiftShiftLongLong.ll
Chris Lattner [Fri, 28 Apr 2006 22:21:41 +0000 (22:21 +0000)]
Fix InstCombine/2006-04-28-ShiftShiftLongLong.ll

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

18 years agonew testcase miscompiled by instcombine
Chris Lattner [Fri, 28 Apr 2006 22:17:20 +0000 (22:17 +0000)]
new testcase miscompiled by instcombine

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

18 years agoFix CodeGen/Generic/2006-04-28-Sign-extend-bool.ll
Chris Lattner [Fri, 28 Apr 2006 21:56:10 +0000 (21:56 +0000)]
Fix CodeGen/Generic/2006-04-28-Sign-extend-bool.ll

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

18 years agotestcase that crashes the ppc backend, which can't sextinreg(i1)
Chris Lattner [Fri, 28 Apr 2006 21:52:24 +0000 (21:52 +0000)]
testcase that crashes the ppc backend, which can't sextinreg(i1)

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

18 years agoInitial caller side support (for CCC only, not FastCC) of 128-bit vector
Evan Cheng [Fri, 28 Apr 2006 21:29:37 +0000 (21:29 +0000)]
Initial caller side support (for CCC only, not FastCC) of 128-bit vector
passing by value.

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

18 years agoBare-bone X86 inline asm printer support.
Evan Cheng [Fri, 28 Apr 2006 21:19:05 +0000 (21:19 +0000)]
Bare-bone X86 inline asm printer support.

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

18 years agoUpdate. It should use two shufps, not three!
Evan Cheng [Fri, 28 Apr 2006 18:55:34 +0000 (18:55 +0000)]
Update. It should use two shufps, not three!

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

18 years agoRemove the temporary option: -no-isel-fold-inflight
Evan Cheng [Fri, 28 Apr 2006 18:54:11 +0000 (18:54 +0000)]
Remove the temporary option: -no-isel-fold-inflight

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

18 years agoImplement four-wide shuffle with 2 shufps if no more than two elements come
Evan Cheng [Fri, 28 Apr 2006 07:03:38 +0000 (07:03 +0000)]
Implement four-wide shuffle with 2 shufps if no more than two elements come
from each vector. e.g.
        shuffle(G1, G2, 7, 1, 5, 2)
==>
        movaps _G2, %xmm0
        shufps $151, _G1, %xmm0
        shufps $216, %xmm0, %xmm0

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

18 years agoFix PR743: emit -help output of a tool to cout, not cerr.
Chris Lattner [Fri, 28 Apr 2006 05:36:25 +0000 (05:36 +0000)]
Fix PR743: emit -help output of a tool to cout, not cerr.

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

18 years agoTargetLowering::LowerArguments should return a VBIT_CONVERT of
Evan Cheng [Fri, 28 Apr 2006 05:25:15 +0000 (05:25 +0000)]
TargetLowering::LowerArguments should return a VBIT_CONVERT of
FORMAL_ARGUMENTS SDOperand in the return result vector.

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

18 years agoMapping of physregs can make it so that the designated and input physregs are
Chris Lattner [Fri, 28 Apr 2006 04:43:18 +0000 (04:43 +0000)]
Mapping of physregs can make it so that the designated and input physregs are
the same.  In this case, don't emit a noop copy.

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

18 years agoFix Transforms/Reassociate/2006-04-27-ReassociateVector.ll
Chris Lattner [Fri, 28 Apr 2006 04:14:49 +0000 (04:14 +0000)]
Fix Transforms/Reassociate/2006-04-27-ReassociateVector.ll

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

18 years agonew testcase
Chris Lattner [Fri, 28 Apr 2006 04:14:29 +0000 (04:14 +0000)]
new testcase

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

18 years agoUse movaps instead of movapd for spill / restore.
Evan Cheng [Fri, 28 Apr 2006 02:23:35 +0000 (02:23 +0000)]
Use movaps instead of movapd for spill / restore.

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

18 years agoAdded a temporary option -no-isel-fold-inflight to control whether a "inflight"
Evan Cheng [Fri, 28 Apr 2006 02:09:19 +0000 (02:09 +0000)]
Added a temporary option -no-isel-fold-inflight to control whether a "inflight"
node can be folded.

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

18 years agoWhen isel'ing a node, mark its operands "InFlight" before selecting them. These
Evan Cheng [Fri, 28 Apr 2006 02:08:10 +0000 (02:08 +0000)]
When isel'ing a node, mark its operands "InFlight" before selecting them. These
nodes should not be folded into other nodes.
This fixes the miscompilation of PR 749.
Temporarily under flag control.

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

18 years agoWhen we have a two-address instruction where the input cannot be clobbered
Chris Lattner [Fri, 28 Apr 2006 01:46:50 +0000 (01:46 +0000)]
When we have a two-address instruction where the input cannot be clobbered
and is already available, instead of falling back to emitting a load, fall
back to emitting a reg-reg copy.  This generates significantly better code
for some SSE testcases, as SSE has lots of two-address instructions and
none of them are read/modify/write.  As one example, this change does:

        pshufd %XMM5, XMMWORD PTR [%ESP + 84], 255
        xorps %XMM2, %XMM5
        cmpltps %XMM1, %XMM0
-       movaps XMMWORD PTR [%ESP + 52], %XMM0
-       movapd %XMM6, XMMWORD PTR [%ESP + 52]
+       movaps %XMM6, %XMM0
        cmpltps %XMM6, XMMWORD PTR [%ESP + 68]
        movapd XMMWORD PTR [%ESP + 52], %XMM6
        movaps %XMM6, %XMM0
        cmpltps %XMM6, XMMWORD PTR [%ESP + 36]
        cmpltps %XMM3, %XMM0
-       movaps XMMWORD PTR [%ESP + 20], %XMM0
-       movapd %XMM7, XMMWORD PTR [%ESP + 20]
+       movaps %XMM7, %XMM0
        cmpltps %XMM7, XMMWORD PTR [%ESP + 4]
        movapd XMMWORD PTR [%ESP + 20], %XMM7
        cmpltps %XMM4, %XMM0

... which is far better than a store followed by a load!

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

18 years agoTest case for PR748
Evan Cheng [Fri, 28 Apr 2006 01:21:37 +0000 (01:21 +0000)]
Test case for PR748

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

18 years agoAdd a note
Chris Lattner [Fri, 28 Apr 2006 00:04:05 +0000 (00:04 +0000)]
Add a note

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

18 years agoAdd a note
Chris Lattner [Thu, 27 Apr 2006 21:40:57 +0000 (21:40 +0000)]
Add a note

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

18 years agoAdd support for inserting undef into a vector. This implements
Chris Lattner [Thu, 27 Apr 2006 21:14:21 +0000 (21:14 +0000)]
Add support for inserting undef into a vector.  This implements
Transforms/InstCombine/vec_insert_to_shuffle.ll

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

18 years agoThis should turn into one vector shuffle instruction.
Chris Lattner [Thu, 27 Apr 2006 21:13:58 +0000 (21:13 +0000)]
This should turn into one vector shuffle instruction.

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

18 years agoMake x86 isel lowering produce tailcall nodes. They are match to normal calls
Evan Cheng [Thu, 27 Apr 2006 08:40:39 +0000 (08:40 +0000)]
Make x86 isel lowering produce tailcall nodes. They are match to normal calls
for now.

Patch contributed by Alexander Friedman.

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

18 years agoA couple of new entries.
Evan Cheng [Thu, 27 Apr 2006 08:31:33 +0000 (08:31 +0000)]
A couple of new entries.

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

18 years agoSupport for passing 128-bit vector arguments via XMM registers.
Evan Cheng [Thu, 27 Apr 2006 08:31:10 +0000 (08:31 +0000)]
Support for passing 128-bit vector arguments via XMM registers.

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

18 years agoInsert a VBIT_CONVERT between a FORMAL_ARGUMENT node and its vector uses
Evan Cheng [Thu, 27 Apr 2006 08:29:42 +0000 (08:29 +0000)]
Insert a VBIT_CONVERT between a FORMAL_ARGUMENT node and its vector uses
(VAND, VADD, etc.). Legalizer will assert otherwise.

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

18 years agoFor PR747:
Reid Spencer [Thu, 27 Apr 2006 07:49:24 +0000 (07:49 +0000)]
For PR747:
If we fail to find a required program, simply set that program to echo
out something that tells the user the situation. That is, instead of just
"true runtest" we now get "echo 'Skipped: runtest not found'".

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

18 years agoOops
Evan Cheng [Thu, 27 Apr 2006 05:44:50 +0000 (05:44 +0000)]
Oops

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

18 years agoBug fix: not updating NumIntRegs.
Evan Cheng [Thu, 27 Apr 2006 05:35:28 +0000 (05:35 +0000)]
Bug fix: not updating NumIntRegs.

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

18 years agoFix Regression/CodeGen/Generic/2006-04-26-SetCCAnd.ll and
Chris Lattner [Thu, 27 Apr 2006 05:01:07 +0000 (05:01 +0000)]
Fix Regression/CodeGen/Generic/2006-04-26-SetCCAnd.ll and
PR748.

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

18 years agonew testcase
Chris Lattner [Thu, 27 Apr 2006 05:00:43 +0000 (05:00 +0000)]
new testcase

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

18 years ago- Clean up formal argument lowering code. Prepare for vector pass by value work.
Evan Cheng [Thu, 27 Apr 2006 01:32:22 +0000 (01:32 +0000)]
- Clean up formal argument lowering code. Prepare for vector pass by value work.
- Fixed vararg support.

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

18 years agoFix some nondeterminstic behavior in the mem2reg pass that (in addition to
Chris Lattner [Thu, 27 Apr 2006 01:14:43 +0000 (01:14 +0000)]
Fix some nondeterminstic behavior in the mem2reg pass that (in addition to
nondeterminism being bad) could cause some trivial missed optimizations (dead
phi nodes being left around for later passes to clean up).

With this, llvm-gcc4 now bootstraps and correctly compares.  I don't know
why I never tried to do it before... :)

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

18 years agoActually, semantical doesn't appear to be a word.
Jeff Cohen [Wed, 26 Apr 2006 21:03:17 +0000 (21:03 +0000)]
Actually, semantical doesn't appear to be a word.

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

18 years agoImplement Transforms/IndVarsSimplify/complex-scev.ll, a case where we didn't
Chris Lattner [Wed, 26 Apr 2006 18:34:07 +0000 (18:34 +0000)]
Implement Transforms/IndVarsSimplify/complex-scev.ll, a case where we didn't
recognize some simple affine IV's.

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

18 years agonew testcase
Chris Lattner [Wed, 26 Apr 2006 18:32:59 +0000 (18:32 +0000)]
new testcase

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

18 years agoFix fastcc failures.
Evan Cheng [Wed, 26 Apr 2006 18:21:31 +0000 (18:21 +0000)]
Fix fastcc failures.

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

18 years agoUnfortunately this really isn't the place for advertisement.
Chris Lattner [Wed, 26 Apr 2006 18:10:59 +0000 (18:10 +0000)]
Unfortunately this really isn't the place for advertisement.

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

18 years agoFix typo.
Jeff Cohen [Wed, 26 Apr 2006 18:05:25 +0000 (18:05 +0000)]
Fix typo.

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

18 years agoFix some anchors.
Reid Spencer [Wed, 26 Apr 2006 15:46:53 +0000 (15:46 +0000)]
Fix some anchors.

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

18 years agoAdd some notes about the current state of source (front end) languages
Reid Spencer [Wed, 26 Apr 2006 14:52:19 +0000 (14:52 +0000)]
Add some notes about the current state of source (front end) languages
so we can point to them on llvm-dev.

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

18 years agoSwitching over FORMAL_ARGUMENTS mechanism to lower call arguments.
Evan Cheng [Wed, 26 Apr 2006 01:20:17 +0000 (01:20 +0000)]
Switching over FORMAL_ARGUMENTS mechanism to lower call arguments.

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

18 years agoDon't forget return void.
Evan Cheng [Tue, 25 Apr 2006 23:03:35 +0000 (23:03 +0000)]
Don't forget return void.

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

18 years agoKeep the stack from on darwin 16-byte aligned. This fixes many JIT
Nate Begeman [Tue, 25 Apr 2006 20:54:26 +0000 (20:54 +0000)]
Keep the stack from on darwin 16-byte aligned.  This fixes many JIT
failres.

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

18 years agoSeparate LowerOperation() into multiple functions, one per opcode.
Evan Cheng [Tue, 25 Apr 2006 20:13:52 +0000 (20:13 +0000)]
Separate LowerOperation() into multiple functions, one per opcode.

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

18 years agoslightly more useful error message
Andrew Lenharth [Tue, 25 Apr 2006 19:33:41 +0000 (19:33 +0000)]
slightly more useful error message

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

18 years agobetter c99 struct handling
Andrew Lenharth [Tue, 25 Apr 2006 19:33:23 +0000 (19:33 +0000)]
better c99 struct handling

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

18 years agoanother c99 style problem
Andrew Lenharth [Tue, 25 Apr 2006 19:27:56 +0000 (19:27 +0000)]
another c99 style problem

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

18 years agoFix a typo.
Evan Cheng [Tue, 25 Apr 2006 17:48:41 +0000 (17:48 +0000)]
Fix a typo.

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

18 years agoFix a warning
Nate Begeman [Tue, 25 Apr 2006 17:46:32 +0000 (17:46 +0000)]
Fix a warning

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

18 years agoNo functionality changes, but cleaner code with correct comments.
Nate Begeman [Tue, 25 Apr 2006 04:45:59 +0000 (04:45 +0000)]
No functionality changes, but cleaner code with correct comments.

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

18 years agoExplicitly specify result type for def : Pat<> patterns (if it produces a vector
Evan Cheng [Tue, 25 Apr 2006 00:50:01 +0000 (00:50 +0000)]
Explicitly specify result type for def : Pat<> patterns (if it produces a vector
result). Otherwise tblgen will pick the default (v16i8 for 128-bit vector).

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

18 years agoAdded X86 SSE2 intrinsics which can be represented as vector_shuffles. This is
Evan Cheng [Mon, 24 Apr 2006 23:34:56 +0000 (23:34 +0000)]
Added X86 SSE2 intrinsics which can be represented as vector_shuffles. This is
a temporary workaround for the 2-wide vector_shuffle problem (i.e. its mask
would have type v2i32 which is not legal).

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

18 years agoAdd a new entry.
Evan Cheng [Mon, 24 Apr 2006 23:30:10 +0000 (23:30 +0000)]
Add a new entry.

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

18 years agoAdded a movq test case.
Evan Cheng [Mon, 24 Apr 2006 23:03:22 +0000 (23:03 +0000)]
Added a movq test case.

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

18 years agoSpecial case handling two wide build_vector(0, x).
Evan Cheng [Mon, 24 Apr 2006 22:58:52 +0000 (22:58 +0000)]
Special case handling two wide build_vector(0, x).

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

18 years agoSome missing movlps, movhps, movlpd, and movhpd patterns.
Evan Cheng [Mon, 24 Apr 2006 21:58:20 +0000 (21:58 +0000)]
Some missing movlps, movhps, movlpd, and movhpd patterns.

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

18 years agoA little bit more build_vector enhancement for v8i16 cases.
Evan Cheng [Mon, 24 Apr 2006 18:01:45 +0000 (18:01 +0000)]
A little bit more build_vector enhancement for v8i16 cases.

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

18 years agoRemove a completed entry.
Evan Cheng [Mon, 24 Apr 2006 17:38:16 +0000 (17:38 +0000)]
Remove a completed entry.

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

18 years agoSuggest looking at the SPARC backend. How weird is that?? :)
Chris Lattner [Mon, 24 Apr 2006 16:34:45 +0000 (16:34 +0000)]
Suggest looking at the SPARC backend.  How weird is that?? :)

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

18 years agoAdded addJumpTableIndex
Evan Cheng [Mon, 24 Apr 2006 06:42:15 +0000 (06:42 +0000)]
Added addJumpTableIndex

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

18 years agoMakeMIInst() should handle jump table index operands.
Evan Cheng [Mon, 24 Apr 2006 05:37:35 +0000 (05:37 +0000)]
MakeMIInst() should handle jump table index operands.

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

18 years agoAdd a note
Chris Lattner [Sun, 23 Apr 2006 19:47:09 +0000 (19:47 +0000)]
Add a note

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

18 years agoMOVL shuffle (i.e. movd or movss / movsd from memory) of undef, V2 == V2
Evan Cheng [Sun, 23 Apr 2006 06:35:19 +0000 (06:35 +0000)]
MOVL shuffle (i.e. movd or movss / movsd from memory) of undef, V2 == V2

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

18 years agoFix the updating of the machine CFG when a PHI node was in a successor of
Nate Begeman [Sun, 23 Apr 2006 06:26:20 +0000 (06:26 +0000)]
Fix the updating of the machine CFG when a PHI node was in a successor of
the jump table's range check block.  This re-enables 100% dense jump tables
by default on PPC & x86

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

18 years agoKeep Visual Studio informed.
Jeff Cohen [Sun, 23 Apr 2006 04:37:08 +0000 (04:37 +0000)]
Keep Visual Studio informed.

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

18 years agoCode cleanup associated with jump tables, thanks to Chris for noticing
Nate Begeman [Sat, 22 Apr 2006 23:52:35 +0000 (23:52 +0000)]
Code cleanup associated with jump tables, thanks to Chris for noticing
these.

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

18 years agoTurn of jump tables for a bit, there are still some issues to work out with
Nate Begeman [Sat, 22 Apr 2006 23:51:56 +0000 (23:51 +0000)]
Turn of jump tables for a bit, there are still some issues to work out with
updating the machine CFG.

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

18 years agoOptimized stores to the constant pool, while cool, are unnecessary.
Nate Begeman [Sat, 22 Apr 2006 22:31:45 +0000 (22:31 +0000)]
Optimized stores to the constant pool, while cool, are unnecessary.

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

18 years agoJumpTable support! What this represents is working asm and jit support for
Nate Begeman [Sat, 22 Apr 2006 18:53:45 +0000 (18:53 +0000)]
JumpTable support!  What this represents is working asm and jit support for
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.

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

18 years agoDon't do all the lowering stuff for 2-wide build_vector's. Also, minor optimization...
Evan Cheng [Sat, 22 Apr 2006 08:34:05 +0000 (08:34 +0000)]
Don't do all the lowering stuff for 2-wide build_vector's. Also, minor optimization for shuffle of undef.

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

18 years agoFix a performance regression. Use {p}shuf* when there are only two distinct elements...
Evan Cheng [Sat, 22 Apr 2006 06:21:46 +0000 (06:21 +0000)]
Fix a performance regression. Use {p}shuf* when there are only two distinct elements in a build_vector.

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

18 years agoTwo more build_vector tests.
Evan Cheng [Sat, 22 Apr 2006 06:19:11 +0000 (06:19 +0000)]
Two more build_vector tests.

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

18 years agoTeach the JIT how to relocate LI, this fixes the JIT on Prolangs-C/TimberWolfMC
Chris Lattner [Sat, 22 Apr 2006 06:17:56 +0000 (06:17 +0000)]
Teach the JIT how to relocate LI, this fixes the JIT on Prolangs-C/TimberWolfMC

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

18 years agoThis no longer needs the JIT.
Chris Lattner [Sat, 22 Apr 2006 05:04:23 +0000 (05:04 +0000)]
This no longer needs the JIT.

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

18 years agoFix JIT support for static ctors, which was apparently completely broken!
Chris Lattner [Sat, 22 Apr 2006 05:02:46 +0000 (05:02 +0000)]
Fix JIT support for static ctors, which was apparently completely broken!

This allows Prolangs-C++/city and probably a bunch of other stuff to work
well with the new front-end

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

18 years agoRevamp build_vector lowering to take advantage of movss and movd instructions.
Evan Cheng [Fri, 21 Apr 2006 23:03:30 +0000 (23:03 +0000)]
Revamp build_vector lowering to take advantage of movss and movd instructions.
movd always clear the top 96 bits and movss does so when it's loading the
value from memory.
The net result is codegen for 4-wide shuffles is much improved. It is near
optimal if one or more elements is a zero. e.g.

__m128i test(int a, int b) {
  return _mm_set_epi32(0, 0, b, a);
}

compiles to

_test:
movd 8(%esp), %xmm1
movd 4(%esp), %xmm0
punpckldq %xmm1, %xmm0
ret

compare to gcc:

_test:
subl $12, %esp
movd 20(%esp), %xmm0
movd 16(%esp), %xmm1
punpckldq %xmm0, %xmm1
movq %xmm1, %xmm0
movhps LC0, %xmm0
addl $12, %esp
ret

or icc:

_test:
        movd      4(%esp), %xmm0                                #5.10
        movd      8(%esp), %xmm3                                #5.10
        xorl      %eax, %eax                                    #5.10
        movd      %eax, %xmm1                                   #5.10
        punpckldq %xmm1, %xmm0                                  #5.10
        movd      %eax, %xmm2                                   #5.10
        punpckldq %xmm2, %xmm3                                  #5.10
        punpckldq %xmm3, %xmm0                                  #5.10
        ret                                                     #5.10

There are still room for improvement, for example the FP variant of the above example:

__m128 test(float a, float b) {
  return _mm_set_ps(0.0, 0.0, b, a);
}

_test:
movss 8(%esp), %xmm1
movss 4(%esp), %xmm0
unpcklps %xmm1, %xmm0
xorps %xmm1, %xmm1
movlhps %xmm1, %xmm0
ret

The xorps and movlhps are unnecessary. This will require post legalizer optimization to handle.

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

18 years agoFix the comment
Nate Begeman [Fri, 21 Apr 2006 22:11:27 +0000 (22:11 +0000)]
Fix the comment

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

18 years agoChange the PPC JIT to use a Static relocation model
Nate Begeman [Fri, 21 Apr 2006 22:04:15 +0000 (22:04 +0000)]
Change the PPC JIT to use a Static relocation model

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

18 years agotypo
Chris Lattner [Fri, 21 Apr 2006 21:37:40 +0000 (21:37 +0000)]
typo

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

18 years agofix thinko
Chris Lattner [Fri, 21 Apr 2006 21:05:22 +0000 (21:05 +0000)]
fix thinko

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

18 years agoadd some low-prio notes
Chris Lattner [Fri, 21 Apr 2006 21:03:21 +0000 (21:03 +0000)]
add some low-prio notes

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

18 years agoThe BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap
Chris Lattner [Fri, 21 Apr 2006 17:16:16 +0000 (17:16 +0000)]
The BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap
miscompares).  Switch RISC targets to use the list-td scheduler, which isn't.

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

18 years agomovddup is a SSE3 instruction.
Evan Cheng [Fri, 21 Apr 2006 16:42:47 +0000 (16:42 +0000)]
movddup is a SSE3 instruction.

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

18 years agoRemove a hack required by V9.
Chris Lattner [Fri, 21 Apr 2006 15:33:35 +0000 (15:33 +0000)]
Remove a hack required by V9.

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

18 years agoFix a couple more memory issues
Chris Lattner [Fri, 21 Apr 2006 15:32:26 +0000 (15:32 +0000)]
Fix a couple more memory issues

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

18 years agoRemove the extraneous --defined-only option to nm. This is the default and
Reid Spencer [Fri, 21 Apr 2006 05:29:25 +0000 (05:29 +0000)]
Remove the extraneous --defined-only option to nm. This is the default and
some versions of nm don't recognize it (its a gnu option).

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

18 years agoAdd && to each RUN: line (except the last one).
Evan Cheng [Fri, 21 Apr 2006 04:58:23 +0000 (04:58 +0000)]
Add && to each RUN: line (except the last one).

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

18 years agoMore build_vector tests.
Evan Cheng [Fri, 21 Apr 2006 01:22:41 +0000 (01:22 +0000)]
More build_vector tests.

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

18 years agoCheck for llc crash.
Evan Cheng [Fri, 21 Apr 2006 01:21:23 +0000 (01:21 +0000)]
Check for llc crash.

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

18 years agoTo be replaced with another test.
Evan Cheng [Fri, 21 Apr 2006 01:12:32 +0000 (01:12 +0000)]
To be replaced with another test.

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

18 years agoNow generating perfect (I think) code for "vector set" with a single non-zero
Evan Cheng [Fri, 21 Apr 2006 01:05:10 +0000 (01:05 +0000)]
Now generating perfect (I think) code for "vector set" with a single non-zero
scalar value.

e.g.
        _mm_set_epi32(0, a, 0, 0);
==>
movd 4(%esp), %xmm0
pshufd $69, %xmm0, %xmm0

        _mm_set_epi8(0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
==>
movzbw 4(%esp), %ax
movzwl %ax, %eax
pxor %xmm0, %xmm0
pinsrw $5, %eax, %xmm0

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

18 years agoFix a really subtle and obnoxious memory bug that caused issues with an
Chris Lattner [Thu, 20 Apr 2006 23:55:59 +0000 (23:55 +0000)]
Fix a really subtle and obnoxious memory bug that caused issues with an
llvm-gcc4 boostrap.  Whenever a node is deleted by the dag combiner, it
*must* be returned by the visit function, or the dag combiner will not
know that the node has been processed (and will, e.g., send it to the
target dag combine xforms).

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

18 years agoDon't require the "dot" program if -flat option is given, and don't produce
Reid Spencer [Thu, 20 Apr 2006 23:09:57 +0000 (23:09 +0000)]
Don't require the "dot" program if -flat option is given, and don't produce
any of the fancy graphs or other output. Just produce the flat, makefile
style output on stdout.

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

18 years agoKeep Visual Studio informed.
Jeff Cohen [Thu, 20 Apr 2006 22:19:06 +0000 (22:19 +0000)]
Keep Visual Studio informed.

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

18 years agoConfigure llvm-config in tools, not utils.
Reid Spencer [Thu, 20 Apr 2006 22:15:30 +0000 (22:15 +0000)]
Configure llvm-config in tools, not utils.

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

18 years agoRemove the llvm-config directory. Its now in tools.
Reid Spencer [Thu, 20 Apr 2006 21:16:32 +0000 (21:16 +0000)]
Remove the llvm-config directory. Its now in tools.

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

18 years agollvm-config doesn't live here anymore ==> tools
Reid Spencer [Thu, 20 Apr 2006 21:15:41 +0000 (21:15 +0000)]
llvm-config doesn't live here anymore ==> tools

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