Chris Lattner [Thu, 26 Feb 2009 19:08:30 +0000 (19:08 +0000)]
Fix universal builds to not use -XCClinker (a libtool thing) now that
libtool doesn't exist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65561
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 19:02:23 +0000 (19:02 +0000)]
these utils don't need exports.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65559
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 19:01:11 +0000 (19:01 +0000)]
disable exports from a bunch more tools, those without plugins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65558
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 18:38:40 +0000 (18:38 +0000)]
no really, use the right path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65554
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 18:37:59 +0000 (18:37 +0000)]
Search for the export map in a place that it can be found.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65552
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 18:29:42 +0000 (18:29 +0000)]
use TOOL_NO_EXPORTS, this shrinks the llvm-as binary from
1825296 to
1662184 bytes (~10%)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65551
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 17:47:49 +0000 (17:47 +0000)]
strip exported symbols from tools that build with TOOL_NO_EXPORTS=1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65543
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 17:44:38 +0000 (17:44 +0000)]
pass -mmacosx-version-min to the compiler and linker, which makes the build
substantially happier on some versions of Mac OS/X.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65542
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 26 Feb 2009 15:17:13 +0000 (15:17 +0000)]
Another great year for LLVM!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65530
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 26 Feb 2009 09:08:43 +0000 (09:08 +0000)]
Tabs to spaces presto chango! Pointed out by Duncan Sands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65523
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 26 Feb 2009 08:48:14 +0000 (08:48 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65521
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 26 Feb 2009 08:03:36 +0000 (08:03 +0000)]
Fix typo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65520
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 26 Feb 2009 07:56:49 +0000 (07:56 +0000)]
Force 'llvm-config' to go first, optionally followed by lto and gold mixed in
with the rest of the parallel directories.
Build lto when possible on all platforms. Make gold to explicitly depend on
libLTO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65518
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 26 Feb 2009 07:44:16 +0000 (07:44 +0000)]
Remove libtool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65517
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 07:32:11 +0000 (07:32 +0000)]
pic16 notes from Sanjiv. Just dumped in for now, will rearrange later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65512
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Feb 2009 07:29:17 +0000 (07:29 +0000)]
final random and incoherent notes after making it through all the commits.
Next step: making them more coherent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65511
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 26 Feb 2009 06:56:37 +0000 (06:56 +0000)]
Ignore dbg info intrinsics when folding conditional branch to
conditional branch predecessors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65509
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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