oota-llvm.git
15 years agoAdd the function attributes pass during LTO time.
Nick Lewycky [Thu, 26 Feb 2009 06:56:16 +0000 (06:56 +0000)]
Add the function attributes pass during LTO time.

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

15 years agomore notes.
Chris Lattner [Thu, 26 Feb 2009 06:47:09 +0000 (06:47 +0000)]
more notes.

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

15 years agoadd some notes from Nicolas G.
Chris Lattner [Thu, 26 Feb 2009 05:20:36 +0000 (05:20 +0000)]
add some notes from Nicolas G.

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

15 years agoEnable stack slot coloring DCE. Evan's spiller fixes were needed before this could...
Owen Anderson [Thu, 26 Feb 2009 04:47:57 +0000 (04:47 +0000)]
Enable stack slot coloring DCE.  Evan's spiller fixes were needed before this could happen.

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

15 years agoADDS{D|S}rr_Int and MULS{D|S}rr_Int are not commutable. The users of these intrinsics...
Evan Cheng [Thu, 26 Feb 2009 03:12:02 +0000 (03:12 +0000)]
ADDS{D|S}rr_Int and MULS{D|S}rr_Int are not commutable. The users of these intrinsics expect the high bits will not be modified.

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

15 years agoThe last commit was overly conservative. It's ok to reuse value that's already marked...
Evan Cheng [Thu, 26 Feb 2009 03:02:21 +0000 (03:02 +0000)]
The last commit was overly conservative. It's ok to reuse value that's already marked livein.

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

15 years agoIf an available register falls through to a succ block, unset the last kill. Sorry...
Evan Cheng [Thu, 26 Feb 2009 02:30:42 +0000 (02:30 +0000)]
If an available register falls through to a succ block, unset the last kill. Sorry, it's impossible to reduce a sensible test case. It basically requires the moon and stars to align in order to cause a failure.

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

15 years agoFix a duplicated word in a comment.
Bob Wilson [Thu, 26 Feb 2009 00:58:09 +0000 (00:58 +0000)]
Fix a duplicated word in a comment.

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

15 years agoFix a typo that prevents hello.mm from running (and runs hello.m twice).
Julien Lerouge [Thu, 26 Feb 2009 00:16:33 +0000 (00:16 +0000)]
Fix a typo that prevents hello.mm from running (and runs hello.m twice).

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

15 years agoRevert BuildVectorSDNode related patches: 65426, 65427, and 65296.
Evan Cheng [Wed, 25 Feb 2009 22:49:59 +0000 (22:49 +0000)]
Revert BuildVectorSDNode related patches: 65426, 65427, and 65296.

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

15 years agoFix big-endian codegen bug. We're splitting up
Dale Johannesen [Wed, 25 Feb 2009 22:39:13 +0000 (22:39 +0000)]
Fix big-endian codegen bug.  We're splitting up
overly long ints, e.g. i96, into pieces at PHIs
and the nodes that feed into them; however big-endian
reverses the order of the pieces (for some reason), and
wasn't doing it the same way on both sides, so
the pieces didn't match and runtime failures ensued.
Fixes 188.ammp and sqlite3 on ppc32.

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

15 years agoPrint variable's display name in dwarf DIE.
Devang Patel [Wed, 25 Feb 2009 19:41:35 +0000 (19:41 +0000)]
Print variable's display name in dwarf DIE.

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

15 years agoFix PR3667
Chris Lattner [Wed, 25 Feb 2009 18:20:01 +0000 (18:20 +0000)]
Fix PR3667

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

15 years agoCheck that records with a known constant size are not
Duncan Sands [Wed, 25 Feb 2009 18:10:49 +0000 (18:10 +0000)]
Check that records with a known constant size are not
copied field by LLVM field if the record has a variable
sized field in it.  The problem is that the LLVM field
will not completely cover the variable sized gcc field.

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

15 years agoDon't block basic block with only SwitchInst to fold into predecessors.
Zhou Sheng [Wed, 25 Feb 2009 15:34:27 +0000 (15:34 +0000)]
Don't block basic block with only SwitchInst to fold into predecessors.

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

15 years agoFlesh out the Ada section a little.
Duncan Sands [Wed, 25 Feb 2009 11:59:06 +0000 (11:59 +0000)]
Flesh out the Ada section a little.

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

15 years agoThe C backend does not support arbitrary precision integers.
Duncan Sands [Wed, 25 Feb 2009 11:51:54 +0000 (11:51 +0000)]
The C backend does not support arbitrary precision integers.

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

15 years agoNote on new type legalizer.
Duncan Sands [Wed, 25 Feb 2009 11:50:08 +0000 (11:50 +0000)]
Note on new type legalizer.

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

15 years agoAdd note on support for arbitrary precision integers.
Duncan Sands [Wed, 25 Feb 2009 11:37:39 +0000 (11:37 +0000)]
Add note on support for arbitrary precision integers.

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

15 years agomore notes.
Chris Lattner [Wed, 25 Feb 2009 07:32:53 +0000 (07:32 +0000)]
more notes.

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

15 years agoClean up dwarf writer, part 1. This eliminated the horrible recursive getGlobalVariab...
Evan Cheng [Wed, 25 Feb 2009 07:04:34 +0000 (07:04 +0000)]
Clean up dwarf writer, part 1. This eliminated the horrible recursive getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior.

This is a very minor compile time win.

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

15 years agoAdd a totally synthetic situation I came up with while looking at a bug in
Nick Lewycky [Wed, 25 Feb 2009 06:52:48 +0000 (06:52 +0000)]
Add a totally synthetic situation I came up with while looking at a bug in
related code.

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

15 years agorandom notes
Chris Lattner [Wed, 25 Feb 2009 06:34:50 +0000 (06:34 +0000)]
random notes

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

15 years agoRecommend against using Gold to build LLVM.
Nick Lewycky [Wed, 25 Feb 2009 06:29:47 +0000 (06:29 +0000)]
Recommend against using Gold to build LLVM.

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

15 years agodon't know if there is a vmkit release to match 2.5
Chris Lattner [Wed, 25 Feb 2009 05:45:05 +0000 (05:45 +0000)]
don't know if there is a vmkit release to match 2.5

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

15 years agoupdate clang section
Chris Lattner [Wed, 25 Feb 2009 05:09:54 +0000 (05:09 +0000)]
update clang section

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

15 years agorip out llvm 2.4 details to make room for 2.5
Chris Lattner [Wed, 25 Feb 2009 04:41:31 +0000 (04:41 +0000)]
rip out llvm 2.4 details to make room for 2.5

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

15 years agoExpand tabs to spaces (overlooked in previous commit)
Scott Michel [Wed, 25 Feb 2009 03:57:49 +0000 (03:57 +0000)]
Expand tabs to spaces (overlooked in previous commit)

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

15 years agoRemove all "cached" data from BuildVectorSDNode, preferring to retrieve
Scott Michel [Wed, 25 Feb 2009 03:12:50 +0000 (03:12 +0000)]
Remove all "cached" data from BuildVectorSDNode, preferring to retrieve
results via reference parameters.

This patch also appears to fix Evan's reported problem supplied as a
reduced bugpoint test case.

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

15 years agoAdded support to have TableGen provide information if an intrinsic (core
Mon P Wang [Tue, 24 Feb 2009 23:17:49 +0000 (23:17 +0000)]
Added support to have TableGen provide information if an intrinsic (core
or target) can be overloaded or not.

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

15 years agoIf compile unit's language is not set then don't crash while dump'ing compile unit.
Devang Patel [Tue, 24 Feb 2009 23:15:09 +0000 (23:15 +0000)]
If compile unit's language is not set then don't crash while dump'ing compile unit.

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

15 years agoExtension of GEP in constant folder was broken (apparently this code
Daniel Dunbar [Tue, 24 Feb 2009 19:10:46 +0000 (19:10 +0000)]
Extension of GEP in constant folder was broken (apparently this code
has never been run!).
 - Sorry, don't know how to make an LLVM test case for this.

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

15 years agoRename ScalarEvolution's getIterationCount to getBackedgeTakenCount,
Dan Gohman [Tue, 24 Feb 2009 18:55:53 +0000 (18:55 +0000)]
Rename ScalarEvolution's getIterationCount to getBackedgeTakenCount,
to more accurately describe what it does. Expand its doxygen comment
to describe what the backedge-taken count is and how it differs
from the actual iteration count of the loop. Adjust names and
comments in associated code accordingly.

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

15 years agoOverhaul my earlier submission due to feedback. It's a large patch, but most of
Bill Wendling [Tue, 24 Feb 2009 08:30:20 +0000 (08:30 +0000)]
Overhaul my earlier submission due to feedback. It's a large patch, but most of
them are generic changes.

- Use the "fast" flag that's already being passed into the asm printers instead
  of shoving it into the DwarfWriter.

- Instead of calling "MI->getParent()->getParent()" for every MI, set the
  machine function when calling "runOnMachineFunction" in the asm printers.

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

15 years agoAdd a debugging option for SSC DCE.
Owen Anderson [Tue, 24 Feb 2009 05:44:18 +0000 (05:44 +0000)]
Add a debugging option for SSC DCE.

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

15 years ago- Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emit
Bill Wendling [Tue, 24 Feb 2009 02:35:30 +0000 (02:35 +0000)]
- Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emit
  a DBG_LABEL or not. We want to fall back to the original way of emitting debug
  info when we're in -O0/-fast mode.
- Add plumbing in to pass the "Fast" flag to places that need it.
- XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I
  need to investigate still.

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

15 years agoAdd a testcase for the problem fixed in r65289.
Dan Gohman [Tue, 24 Feb 2009 02:17:42 +0000 (02:17 +0000)]
Add a testcase for the problem fixed in r65289.

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

15 years agoFix a ValueTracking rule: RHS means operand 1, not 0. Add a simple
Dan Gohman [Tue, 24 Feb 2009 02:00:40 +0000 (02:00 +0000)]
Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple
ashr instcombine to help expose this code. And apply the fix to
SelectionDAG's copy of this code too.

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

15 years agoGeneralize the ChangeCompareStride code, in preparation for
Dan Gohman [Tue, 24 Feb 2009 01:58:00 +0000 (01:58 +0000)]
Generalize the ChangeCompareStride code, in preparation for
handling non-constant strides. No functionality change.

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

15 years agoPreserve the DominanceFrontier analysis in the LoopDeletion pass.
Dan Gohman [Tue, 24 Feb 2009 01:21:53 +0000 (01:21 +0000)]
Preserve the DominanceFrontier analysis in the LoopDeletion pass.

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

15 years agogdb uses DW_AT_prototyped to identify K&R style in C based languages.
Devang Patel [Tue, 24 Feb 2009 00:52:19 +0000 (00:52 +0000)]
gdb uses DW_AT_prototyped to identify K&R style in C based languages.
This fixes objc.dg/dwarf-prototypes.m scan-assembler DW_AT_prototyped from llvmgcc42 test suite.

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

15 years agoUn-XFAIL this test.
Bill Wendling [Tue, 24 Feb 2009 00:37:28 +0000 (00:37 +0000)]
Un-XFAIL this test.

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

15 years agoWhile folding unconditional return move DbgRegionEndInst into the predecessor, instea...
Devang Patel [Tue, 24 Feb 2009 00:05:16 +0000 (00:05 +0000)]
While folding unconditional return move DbgRegionEndInst into the predecessor, instead of removing it. This fixes following tests from llvmgcc42 testsuite.

gcc.c-torture/execute/20000605-3.c
gcc.c-torture/execute/20020619-1.c
gcc.c-torture/execute/20030920-1.c
gcc.c-torture/execute/loop-ivopts-1.c

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

15 years agoIf there is not any debug info available for any global variables and any subprograms...
Devang Patel [Tue, 24 Feb 2009 00:02:15 +0000 (00:02 +0000)]
If there is not any debug info available for any global variables and any subprograms then there is not any debug info to emit.

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

15 years agoBack out the change in 64918 that used sign-extensions when promoting
Dan Gohman [Mon, 23 Feb 2009 23:20:35 +0000 (23:20 +0000)]
Back out the change in 64918 that used sign-extensions when promoting
trip counts that use signed comparisons. It's not obviously the best
approach for preserving trip count information, and at any rate there
isn't anything in the tree right now that makes use of that, so for
now always using zero-extensions is preferable.

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

15 years agoFast-isel can't do TLS yet, so it should fall back to SDISel
Dan Gohman [Mon, 23 Feb 2009 22:03:08 +0000 (22:03 +0000)]
Fast-isel can't do TLS yet, so it should fall back to SDISel
if it sees TLS addresses.

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

15 years agoCorrectly implement ImmutableMap::getMaxElement() by getting the actual <key, value...
Ted Kremenek [Mon, 23 Feb 2009 17:28:16 +0000 (17:28 +0000)]
Correctly implement ImmutableMap::getMaxElement() by getting the actual <key, value> pair.

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

15 years agoAdd ImmutableMap::getMaxElement(), a method that returns the <key,value> pair in...
Ted Kremenek [Mon, 23 Feb 2009 17:27:18 +0000 (17:27 +0000)]
Add ImmutableMap::getMaxElement(), a method that returns the <key,value> pair in a ImmutableMap that has the highest ranked key.

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

15 years agoLoopDeletion needs to inform ScalarEvolution when a loop is deleted,
Dan Gohman [Mon, 23 Feb 2009 17:10:29 +0000 (17:10 +0000)]
LoopDeletion needs to inform ScalarEvolution when a loop is deleted,
so that ScalarEvolution doesn't hang onto a dangling Loop*, which
could be a problem if another Loop happens to get allocated at the
same address.

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

15 years agoUse the -stack-alignment option instead of using a target triple
Dan Gohman [Mon, 23 Feb 2009 16:34:46 +0000 (16:34 +0000)]
Use the -stack-alignment option instead of using a target triple
for avoiding dynamic stack realignment.

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

15 years agoIndVarSimplify preserves ScalarEvolution. In the
Dan Gohman [Mon, 23 Feb 2009 16:29:41 +0000 (16:29 +0000)]
IndVarSimplify preserves ScalarEvolution. In the
-std-compile-opts sequence, this avoids the need for ScalarEvolution to
be rerun before LoopDeletion.

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

15 years agoAdd test case for checkin @r65314.
Zhou Sheng [Mon, 23 Feb 2009 10:15:04 +0000 (10:15 +0000)]
Add test case for checkin @r65314.

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

15 years agoShould reset DBI_Prev if DBI_Next == 0.
Zhou Sheng [Mon, 23 Feb 2009 10:14:11 +0000 (10:14 +0000)]
Should reset DBI_Prev if DBI_Next == 0.

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

15 years agoOnly v1i16 (i.e. _m64) is returned via RAX / RDX.
Evan Cheng [Mon, 23 Feb 2009 09:03:22 +0000 (09:03 +0000)]
Only v1i16 (i.e. _m64) is returned via RAX / RDX.

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

15 years agoMake this test use darwin targe triple, to avoid stack traffic on linux.
Nate Begeman [Mon, 23 Feb 2009 09:03:06 +0000 (09:03 +0000)]
Make this test use darwin targe triple, to avoid stack traffic on linux.

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

15 years agoGenerate better code for v8i16 shuffles on SSE2
Nate Begeman [Mon, 23 Feb 2009 08:49:38 +0000 (08:49 +0000)]
Generate better code for v8i16 shuffles on SSE2
Generate better code for v16i8 shuffles on SSE2 (avoids stack)
Generate pshufb for v8i16 and v16i8 shuffles on SSSE3 where it is fewer uops.
Document the shuffle matching logic and add some FIXMEs for later further
  cleanups.
New tests that test the above.

Examples:

New:
_shuf2:
pextrw $7, %xmm0, %eax
punpcklqdq %xmm1, %xmm0
pshuflw $128, %xmm0, %xmm0
pinsrw $2, %eax, %xmm0

Old:
_shuf2:
pextrw $2, %xmm0, %eax
pextrw $7, %xmm0, %ecx
pinsrw $2, %ecx, %xmm0
pinsrw $3, %eax, %xmm0
movd %xmm1, %eax
pinsrw $4, %eax, %xmm0
ret

=========

New:
_shuf4:
punpcklqdq %xmm1, %xmm0
pshufb LCPI1_0, %xmm0

Old:
_shuf4:
pextrw $3, %xmm0, %eax
movsd %xmm1, %xmm0
pextrw $3, %xmm1, %ecx
pinsrw $4, %ecx, %xmm0
pinsrw $5, %eax, %xmm0

========

New:
_shuf1:
pushl %ebx
pushl %edi
pushl %esi
pextrw $1, %xmm0, %eax
rolw $8, %ax
movd %xmm0, %ecx
rolw $8, %cx
pextrw $5, %xmm0, %edx
pextrw $4, %xmm0, %esi
pextrw $3, %xmm0, %edi
pextrw $2, %xmm0, %ebx
movaps %xmm0, %xmm1
pinsrw $0, %ecx, %xmm1
pinsrw $1, %eax, %xmm1
rolw $8, %bx
pinsrw $2, %ebx, %xmm1
rolw $8, %di
pinsrw $3, %edi, %xmm1
rolw $8, %si
pinsrw $4, %esi, %xmm1
rolw $8, %dx
pinsrw $5, %edx, %xmm1
pextrw $7, %xmm0, %eax
rolw $8, %ax
movaps %xmm1, %xmm0
pinsrw $7, %eax, %xmm0
popl %esi
popl %edi
popl %ebx
ret

Old:
_shuf1:
subl $252, %esp
movaps %xmm0, (%esp)
movaps %xmm0, 16(%esp)
movaps %xmm0, 32(%esp)
movaps %xmm0, 48(%esp)
movaps %xmm0, 64(%esp)
movaps %xmm0, 80(%esp)
movaps %xmm0, 96(%esp)
movaps %xmm0, 224(%esp)
movaps %xmm0, 208(%esp)
movaps %xmm0, 192(%esp)
movaps %xmm0, 176(%esp)
movaps %xmm0, 160(%esp)
movaps %xmm0, 144(%esp)
movaps %xmm0, 128(%esp)
movaps %xmm0, 112(%esp)
movzbl 14(%esp), %eax
movd %eax, %xmm1
movzbl 22(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2
movzbl 42(%esp), %eax
movd %eax, %xmm1
movzbl 50(%esp), %eax
movd %eax, %xmm3
punpcklbw %xmm1, %xmm3
punpcklbw %xmm2, %xmm3
movzbl 77(%esp), %eax
movd %eax, %xmm1
movzbl 84(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2
movzbl 104(%esp), %eax
movd %eax, %xmm1
punpcklbw %xmm1, %xmm0
punpcklbw %xmm2, %xmm0
movaps %xmm0, %xmm1
punpcklbw %xmm3, %xmm1
movzbl 127(%esp), %eax
movd %eax, %xmm0
movzbl 135(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm0, %xmm2
movzbl 155(%esp), %eax
movd %eax, %xmm0
movzbl 163(%esp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3
punpcklbw %xmm2, %xmm3
movzbl 188(%esp), %eax
movd %eax, %xmm0
movzbl 197(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm0, %xmm2
movzbl 217(%esp), %eax
movd %eax, %xmm4
movzbl 225(%esp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0
punpcklbw %xmm2, %xmm0
punpcklbw %xmm3, %xmm0
punpcklbw %xmm1, %xmm0
addl $252, %esp
ret

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

15 years agoIf nobody minds, I'm using LTO to produce faster binaries. Switch fast codegen
Nick Lewycky [Mon, 23 Feb 2009 07:41:55 +0000 (07:41 +0000)]
If nobody minds, I'm using LTO to produce faster binaries. Switch fast codegen
off in libLTO.

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

15 years agoChanged option name from inline-threshold to basic-inline-threshold because
Mon P Wang [Mon, 23 Feb 2009 07:07:56 +0000 (07:07 +0000)]
Changed option name from inline-threshold to basic-inline-threshold because
inline-threshold option is used by the inliner.

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

15 years agofix some typos that Duncan noticed
Chris Lattner [Mon, 23 Feb 2009 05:56:17 +0000 (05:56 +0000)]
fix some typos that Duncan noticed

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

15 years agoPropagate debug loc info through prologue/epilogue.
Bill Wendling [Mon, 23 Feb 2009 00:42:30 +0000 (00:42 +0000)]
Propagate debug loc info through prologue/epilogue.

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

15 years agoIntroduce the BuildVectorSDNode class that encapsulates the ISD::BUILD_VECTOR
Scott Michel [Sun, 22 Feb 2009 23:36:09 +0000 (23:36 +0000)]
Introduce the BuildVectorSDNode class that encapsulates the ISD::BUILD_VECTOR
instruction. The class also consolidates the code for detecting constant
splats that's shared across PowerPC and the CellSPU backends (and might be
useful for other backends.) Also introduces SelectionDAG::getBUID_VECTOR() for
generating new BUILD_VECTOR nodes.

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

15 years agoAdd an option to the gold plugin to make it emit a file with the public api
Nick Lewycky [Sun, 22 Feb 2009 22:15:44 +0000 (22:15 +0000)]
Add an option to the gold plugin to make it emit a file with the public api
list that can in turn be passed to -internalize pass through
-internalize-public-api-file.

Pass gold -plugin-opt=generate-api-file to produce "apifile.txt" in the current
directory.

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

15 years agoRevert the part of 64623 that attempted to align the source in a
Dan Gohman [Sun, 22 Feb 2009 18:06:32 +0000 (18:06 +0000)]
Revert the part of 64623 that attempted to align the source in a
memcpy to match the alignment of the destination. It isn't necessary
for making loads and stores handled like the SSE loadu/storeu
intrinsics, and it was causing a performance regression in
MultiSource/Applications/JM/lencod.

The problem appears to have been a memcpy that copies from some
highly aligned array into an alloca; the alloca was then being
assigned a large alignment, which required codegen to perform
dynamic stack-pointer re-alignment, which forced the enclosing
function to have a frame pointer, which led to increased spilling.

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

15 years agoProperly parenthesize this expression, fixing a real bug in the new
Dan Gohman [Sun, 22 Feb 2009 16:40:52 +0000 (16:40 +0000)]
Properly parenthesize this expression, fixing a real bug in the new
-full-lsr code, as well as a GCC warning.

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

15 years agobug 3610: Test case.
Richard Pennington [Sun, 22 Feb 2009 15:54:44 +0000 (15:54 +0000)]
bug 3610: Test case.

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

15 years agoIf a use operand is marked isKill, don't forget to add kill to its live interval...
Evan Cheng [Sun, 22 Feb 2009 08:35:56 +0000 (08:35 +0000)]
If a use operand is marked isKill, don't forget to add kill to its live interval as well.

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

15 years agoAdd a note.
Evan Cheng [Sun, 22 Feb 2009 08:13:45 +0000 (08:13 +0000)]
Add a note.

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

15 years agoBe bug compatible with gcc by returning MMX values in RAX.
Evan Cheng [Sun, 22 Feb 2009 08:05:12 +0000 (08:05 +0000)]
Be bug compatible with gcc by returning MMX values in RAX.

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

15 years agoDo not consider MMX_MOVD64rr a move instructions. The source register is in GR32...
Evan Cheng [Sun, 22 Feb 2009 08:04:23 +0000 (08:04 +0000)]
Do not consider MMX_MOVD64rr a move instructions. The source register is in GR32, the destination is VR64. They are not compatible.

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

15 years agoOnly try to sink immediate when TLI is not null. It needs to check if immediate would...
Evan Cheng [Sun, 22 Feb 2009 07:31:19 +0000 (07:31 +0000)]
Only try to sink immediate when TLI is not null. It needs to check if immediate would fit in target addressing field.

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

15 years agoRegenerate.
Nick Lewycky [Sat, 21 Feb 2009 22:38:49 +0000 (22:38 +0000)]
Regenerate.

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

15 years agoRemove tests for flex/bison which are no longer needed by LLVM.
Nick Lewycky [Sat, 21 Feb 2009 22:36:26 +0000 (22:36 +0000)]
Remove tests for flex/bison which are no longer needed by LLVM.

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

15 years agoDon't sign extend the char when expanding char -> int during
Nick Lewycky [Sat, 21 Feb 2009 20:50:42 +0000 (20:50 +0000)]
Don't sign extend the char when expanding char -> int during
load(bitcast(char[4] to i32*)) evaluation.

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

15 years agoAdd makefile debugging target; use "make print-FOO" to print the
Daniel Dunbar [Sat, 21 Feb 2009 20:42:39 +0000 (20:42 +0000)]
Add makefile debugging target; use "make print-FOO" to print the
value/definition/origin of FOO.

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

15 years agobug 3610: Floating point vaarg not softened.
Richard Pennington [Sat, 21 Feb 2009 19:11:18 +0000 (19:11 +0000)]
bug 3610: Floating point vaarg not softened.

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

15 years agoAdd version of StringsEqualNoCase that takes two null-terminated C-strings and compar...
Ted Kremenek [Sat, 21 Feb 2009 18:25:30 +0000 (18:25 +0000)]
Add version of StringsEqualNoCase that takes two null-terminated C-strings and compares up to 'len' characters.  I tend to screw up string comparison functions, so anyone who is interested please review this\!

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

15 years agoDrop bunch of half-working stuff in the ext_weak linkage support.
Anton Korobeynikov [Sat, 21 Feb 2009 11:53:32 +0000 (11:53 +0000)]
Drop bunch of half-working stuff in the ext_weak linkage support.
Now we're using one gross, but quite robust hack :) (previous ones
did not work, for example, when ext_weak symbol was used deep inside
constant expression in the initializer).

The proper fix of this problem will require some quite huge asmprinter
changes and that's why was postponed. This fixes PR3629 by the way :)

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

15 years agoPass different flags on different platforms when building PIC.
Nick Lewycky [Sat, 21 Feb 2009 08:41:09 +0000 (08:41 +0000)]
Pass different flags on different platforms when building PIC.

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

15 years agoAdd AddrModeMatcher.cpp
Evan Cheng [Sat, 21 Feb 2009 07:05:11 +0000 (07:05 +0000)]
Add AddrModeMatcher.cpp

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

15 years agoIf two-address def is dead and the instruction does not define other registers, and...
Evan Cheng [Sat, 21 Feb 2009 03:14:25 +0000 (03:14 +0000)]
If two-address def is dead and the instruction does not define other registers, and it doesn't produce side effects, just delete the instruction.

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

15 years agoTeach LSR sink to sink the immediate portion of the common expression back into uses...
Evan Cheng [Sat, 21 Feb 2009 02:06:47 +0000 (02:06 +0000)]
Teach LSR sink to sink the immediate portion of the common expression back into uses if they fit in address modes of all the uses.

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

15 years agoMake sure this doesn't access .end() too.
Bill Wendling [Sat, 21 Feb 2009 01:11:36 +0000 (01:11 +0000)]
Make sure this doesn't access .end() too.

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

15 years agofix and clean up a comment
Gabor Greif [Sat, 21 Feb 2009 01:09:07 +0000 (01:09 +0000)]
fix and clean up a comment

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

15 years agoMake sure we don't dereference the .end() of the container.
Bill Wendling [Sat, 21 Feb 2009 01:07:26 +0000 (01:07 +0000)]
Make sure we don't dereference the .end() of the container.

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

15 years agorename a function to indicate that it checks for profitability as well
Chris Lattner [Sat, 21 Feb 2009 00:46:50 +0000 (00:46 +0000)]
rename a function to indicate that it checks for profitability as well
as legality.  Make load sinking and gep sinking more careful: we only
do it when it won't pessimize loads from the stack.  This has the added
benefit of not producing code that is unanalyzable to SROA.

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

15 years agoPropagate more debug loc infos. This also includes some code cleaning.
Bill Wendling [Sat, 21 Feb 2009 00:43:56 +0000 (00:43 +0000)]
Propagate more debug loc infos. This also includes some code cleaning.

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

15 years agoWe need to propagate the debug location information even when dealing with the
Bill Wendling [Sat, 21 Feb 2009 00:32:08 +0000 (00:32 +0000)]
We need to propagate the debug location information even when dealing with the
prologue/epilogue.

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

15 years ago* Fixed spelling
Misha Brukman [Fri, 20 Feb 2009 23:44:54 +0000 (23:44 +0000)]
* Fixed spelling
* Linters now return their information instead of printing it, to
  enable easier unittesting
* Added support for finding tabs in files, added to C++ linter

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

15 years agoFix a bug that David Greene found in the DAGCombiner's logic
Dan Gohman [Fri, 20 Feb 2009 23:29:13 +0000 (23:29 +0000)]
Fix a bug that David Greene found in the DAGCombiner's logic
that checks whether it's safe to transform a store of a bitcast
value into a store of the original value.

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

15 years agoRemoved trailing whitespace.
Misha Brukman [Fri, 20 Feb 2009 23:04:06 +0000 (23:04 +0000)]
Removed trailing whitespace.

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

15 years agoRemoved trailing whitespace.
Misha Brukman [Fri, 20 Feb 2009 22:54:36 +0000 (22:54 +0000)]
Removed trailing whitespace.

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

15 years agoRemoved trailing whitespace.
Misha Brukman [Fri, 20 Feb 2009 22:51:36 +0000 (22:51 +0000)]
Removed trailing whitespace.

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

15 years agoKeep the newline character at the end of the lines whose trailing whitespace we
Misha Brukman [Fri, 20 Feb 2009 22:30:46 +0000 (22:30 +0000)]
Keep the newline character at the end of the lines whose trailing whitespace we
are deleting; otherwise, everything ends up on a single line.

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

15 years agoOnly strip the newline character at the end of the lines that we're considering
Misha Brukman [Fri, 20 Feb 2009 22:28:45 +0000 (22:28 +0000)]
Only strip the newline character at the end of the lines that we're considering
for length and for trailing whitespace; otherwise, the whitespace themselves
will also be removed.

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

15 years agoFixed lint errors:
Misha Brukman [Fri, 20 Feb 2009 22:20:18 +0000 (22:20 +0000)]
Fixed lint errors:
* Alphabetized #includes
* Removed trailing whitespace
* Wrapped or shortened lines over 80 chars

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

15 years agoWe have logic in there to emit a default debugging label at the beginning of a
Bill Wendling [Fri, 20 Feb 2009 22:19:20 +0000 (22:19 +0000)]
We have logic in there to emit a default debugging label at the beginning of a
function. Emitting another label after the prologue messes up the debugging. We
are doing that because the first DebugLoc object it sees is different from the
previous, which was nothing. Check for this situation, and don't emit one if
it's the first.

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

15 years agoFix strange logic in CollectIVUsers used to determine whether all uses are
Evan Cheng [Fri, 20 Feb 2009 22:16:49 +0000 (22:16 +0000)]
Fix strange logic in CollectIVUsers used to determine whether all uses are
addresses, part 1. This fixes an obvious logic bug. Previously if the only
in-loop use is a PHI, it would return AllUsesAreAddresses as true.

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

15 years agoSimplify code and reduce indentation. No functionality change.
Dan Gohman [Fri, 20 Feb 2009 21:27:23 +0000 (21:27 +0000)]
Simplify code and reduce indentation. No functionality change.

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

15 years agoFix 80-column violations.
Dan Gohman [Fri, 20 Feb 2009 21:06:57 +0000 (21:06 +0000)]
Fix 80-column violations.

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

15 years agoIt's not necessary to check if Base is null here.
Dan Gohman [Fri, 20 Feb 2009 21:05:23 +0000 (21:05 +0000)]
It's not necessary to check if Base is null here.

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