Bill Wendling [Wed, 9 Jun 2010 20:30:22 +0000 (20:30 +0000)]
Testcase for r105741.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105750
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 9 Jun 2010 20:05:00 +0000 (20:05 +0000)]
Mark physregs defined by inline asm as implicit.
This is a bit of a hack to make inline asm look more like call instructions.
It would be better to produce correct dead flags during isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105749
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Jun 2010 19:26:01 +0000 (19:26 +0000)]
Allow target to place 2-address pass inserted copies in better spots. Thumb2 will use this to try to avoid breaking up IT blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105745
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 9 Jun 2010 19:00:55 +0000 (19:00 +0000)]
It's an error to translate this:
%reg1025 = <sext> %reg1024
...
%reg1026 = SUBREG_TO_REG 0, %reg1024, 4
into this:
%reg1025 = <sext> %reg1024
...
%reg1027 = EXTRACT_SUBREG %reg1025, 4
%reg1026 = SUBREG_TO_REG 0, %reg1027, 4
The problem here is that SUBREG_TO_REG is there to assert that an implicit zext
occurs. It doesn't insert a zext instruction. If we allow the EXTRACT_SUBREG
here, it will give us the value after the <sext>, not the original value of
%reg1024 before <sext>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105741
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Jun 2010 18:59:43 +0000 (18:59 +0000)]
Revert 105540, 105542, 105544, 105546, and 105548 to unbreak bootstrapping.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105740
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 9 Jun 2010 18:15:36 +0000 (18:15 +0000)]
- Fix description of SUBREG_TO_REG. It's not going to generate a zext. But it
is used to assert that an *implicit* zext is performed.
- Fix grammar-o in INSERT_SUBREG. (required reformatting)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105735
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 9 Jun 2010 18:02:26 +0000 (18:02 +0000)]
Further refine types for operations which take scalars.
This will be used primarily by NEON shift intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105733
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 9 Jun 2010 17:54:40 +0000 (17:54 +0000)]
Workaround SCEV non-determinism on this test, for now, to get buildbots back to
green. Dan, please revert this once the real problem is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105732
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jun 2010 17:39:05 +0000 (17:39 +0000)]
Change another reference to the "indirect callgraph node" to
refer to the "external node" instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105731
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jun 2010 17:35:00 +0000 (17:35 +0000)]
Output "external node" rather than "Indirect CallGraph node" when printing
callgraph SCC's. This makes it match what the node itself would print. Also,
"indirect callgraph node" doesn't make sense - it has nothing particularly to
do with indirect calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105730
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 9 Jun 2010 16:16:48 +0000 (16:16 +0000)]
How about ULL...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105726
91177308-0d34-0410-b5e6-
96231b3b80d8
Kenneth Uildriks [Wed, 9 Jun 2010 15:11:37 +0000 (15:11 +0000)]
Pulled CodeMetrics out of InlineCost.h and made it a bit more general, so it can be reused from PartialSpecializationCost
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105725
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Wed, 9 Jun 2010 09:58:17 +0000 (09:58 +0000)]
Fix SPU to cope with vector insertelement to an undef position.
We default to inserting to lane 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105722
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Wed, 9 Jun 2010 08:29:41 +0000 (08:29 +0000)]
Handle loading from/storing to undef pointers on SPU by inserting a
random load/store, rather than crashing llc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105710
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 9 Jun 2010 05:11:55 +0000 (05:11 +0000)]
Specialize I-Class instructions better so that we have less work to do in codegen.
Parenthesize macro args
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105682
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Jun 2010 03:49:12 +0000 (03:49 +0000)]
Typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105677
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 9 Jun 2010 03:00:05 +0000 (03:00 +0000)]
Fix a gcc warning:
'class llvm::DAGDeltaAlgorithm' has virtual functions and accessible non-virtual destructor
Not sure if this is the best solution, but this class has state and some of the
classes that inherit from it also do, so it looks appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105675
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 9 Jun 2010 02:43:17 +0000 (02:43 +0000)]
A few new x86-64 specific README entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105674
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Jun 2010 01:46:50 +0000 (01:46 +0000)]
Thumb2 IT blocks are fairly expensive. When there are multiple selects using
the same condition, it's important to make sure they are scheduled together
to avoid forming multiple IT blocks. I'm adding a pre-regalloc pass that forms
IT blocks early (by re-scheduling instructions and split basic blocks) to
attempt to fix this. This is not turned on by default since I am not sure this
is the right fix.
Another issue is llvm selects are modeled as two-address conditional moves.
This can be very bad when the copies before the conditional moves are not
coalesced away. Teach IT formation pass to move the copies above the IT block
(when legal) to avoid breaking the IT block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105669
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 9 Jun 2010 01:09:00 +0000 (01:09 +0000)]
Handle instructions which need to be #defines for the purpose of capturing constant arguments
Handle extract hi/lo with common code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105666
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 9 Jun 2010 00:40:31 +0000 (00:40 +0000)]
Add argument name comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105665
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Tue, 8 Jun 2010 23:48:44 +0000 (23:48 +0000)]
Incremental improvement to the handling of the x86 "Jump if rCX Zero"
instruction. Added the 64-bit version "jrcxz" so it is recognized and also
added the checks for incorrect uses of "jcxz" in 64-bit mode and "jrcxz" in
32-bit mode. Still to do is to correctly handle the encoding of the
instruction adding the Address-size override prefix byte, 0x67, when the width
of the count register is not the same as the mode the machine is running in.
Which for example means the encoding of "jecxz" depends if you are assembling
as a 32-bit target or a 64-bit target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105661
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 8 Jun 2010 22:57:33 +0000 (22:57 +0000)]
Split out these asserts so it's more apparent why we're not assembling
that rip-relative address when executing in 32-bit mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105656
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 8 Jun 2010 22:53:32 +0000 (22:53 +0000)]
fix copy/paste/modify think-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105653
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 8 Jun 2010 22:51:23 +0000 (22:51 +0000)]
Reapply r105521, this time appending "LLU" to 64 bit
immediates to avoid breaking the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105652
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 8 Jun 2010 22:04:25 +0000 (22:04 +0000)]
Ensure that mov and not lea are used to stick the address into
the register. While we're at it, make sure it's in the right one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105645
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Jun 2010 20:10:13 +0000 (20:10 +0000)]
Makefiles: Teach LLVM's recursive makefile descent to update objdir Makefiles if
they are out of date, instead of only testing if they exist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105636
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 8 Jun 2010 20:06:55 +0000 (20:06 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105634
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Jun 2010 17:21:57 +0000 (17:21 +0000)]
Use const_iterator where appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105620
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Jun 2010 16:21:26 +0000 (16:21 +0000)]
DeltaAlgorithm: Tweak split to split by first/second half instead of even/odd, since adjacent changes are more likely to be related.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105613
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 8 Jun 2010 16:21:22 +0000 (16:21 +0000)]
ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm.
- This can give substantial speedups in the delta process for inputs we can construct dependency information for.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105612
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 8 Jun 2010 16:17:58 +0000 (16:17 +0000)]
Add more virtual memory to lit. The python in x86-64 fedora 13 needs it to run
the llvm tests :-(
It was failing with
-- Testing: 5324 tests, 8 threads --
Fatal Python error: PyEval_AcquireThread: NULL new thread state
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105610
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Jun 2010 11:44:30 +0000 (11:44 +0000)]
Use realloc instead of malloc+memcpy when growing a POD SmallVector. A smart
realloc implementation can try to expand the allocated memory block in-place,
avoiding the copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105605
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Tue, 8 Jun 2010 07:55:16 +0000 (07:55 +0000)]
Flag SPU's function call sequence together.
Discussed here:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-June/032107.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105601
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 8 Jun 2010 07:11:17 +0000 (07:11 +0000)]
Fix a valgrind error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105600
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 8 Jun 2010 06:01:16 +0000 (06:01 +0000)]
Refine BuiltinsARM.def types a bit, we should do a better job of this to save some c++ code in CGBuiltins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105598
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 8 Jun 2010 00:42:08 +0000 (00:42 +0000)]
Fix up a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105591
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 8 Jun 2010 00:14:42 +0000 (00:14 +0000)]
ARM NEON:
fix vcvt naming
handle vdup, vcombine with generic vector code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105588
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 7 Jun 2010 23:53:38 +0000 (23:53 +0000)]
Further changes for Neon vector shuffles:
- change isShuffleMaskLegal to show that all shuffles with 32-bit and 64-bit
elements are legal
- the Neon shuffle instructions do not support 64-bit elements, but we were
not checking for that before lowering shuffles to use them
- remove some 64-bit element vduplane patterns that are no longer needed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105586
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 7 Jun 2010 23:48:46 +0000 (23:48 +0000)]
Fix a mistake in my previous change r105437: don't access operand 2 and assume
that it is an immediate before checking that the instruction is an
EXTRACT_SUBREG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105585
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 23:15:15 +0000 (23:15 +0000)]
Add an svn:ignore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105573
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 22:32:10 +0000 (22:32 +0000)]
Add some basic debug output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105561
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Mon, 7 Jun 2010 21:50:54 +0000 (21:50 +0000)]
Tweak test for debug/metadata change, update to FileCheck. Radar
7424645.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105559
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 7 Jun 2010 21:48:47 +0000 (21:48 +0000)]
Handle dbg_value instructions (i.e., skip them) when generating IT blocks.
rdar://
7797940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105557
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 7 Jun 2010 21:42:19 +0000 (21:42 +0000)]
Plug a leak in the non-error case by removing one level of indirection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105556
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 7 Jun 2010 21:28:55 +0000 (21:28 +0000)]
Cleanup. Process the dbg_values separately
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105554
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 20:58:11 +0000 (20:58 +0000)]
Fix this test to work under lit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105553
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 20:28:37 +0000 (20:28 +0000)]
Run dead type elimination after dead argument elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105552
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 20:20:33 +0000 (20:20 +0000)]
Make bugpoint dead-argument-hacking actually work, and actually test it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105551
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 20:19:26 +0000 (20:19 +0000)]
Use ->isVoidTy().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105550
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 19:36:14 +0000 (19:36 +0000)]
The FoldingSet hash data includes pointer values, so it isn't
determinstic. Instead, give SCEV objects an arbitrary sequence
number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105548
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 19:20:57 +0000 (19:20 +0000)]
Optimize this code somewhat by taking advantage of the fact
that the operands are sorted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105546
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 7 Jun 2010 19:18:58 +0000 (19:18 +0000)]
Another place where the code wanted to access the argument list and not all of
the operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105545
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 19:16:37 +0000 (19:16 +0000)]
Micro-optimize this, to speed up this hotspot in debug builds a little.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105544
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 19:12:54 +0000 (19:12 +0000)]
Micro-optimize this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105542
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 7 Jun 2010 19:12:21 +0000 (19:12 +0000)]
Move exit check where it really belongs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105541
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jun 2010 19:06:13 +0000 (19:06 +0000)]
Optimize ScalarEvolution's SCEVComplexityCompare predicate: don't go
scrounging through SCEVUnknown contents and SCEVNAryExpr operands;
instead just do a simple deterministic comparison of the precomputed
hash data.
Also, since this is more precise, it eliminates the need for the slow
N^2 duplicate detection code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105540
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 7 Jun 2010 19:05:06 +0000 (19:05 +0000)]
Create new accessors to get arguments for call/invoke instructions. It breaks
encapsulation to force the users of these classes to know about the internal
data structure of the Operands structure. It also can lead to errors, like in
the MSIL writer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105539
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 7 Jun 2010 16:45:22 +0000 (16:45 +0000)]
Misc cleanups to the gold plugin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105534
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 7 Jun 2010 16:00:37 +0000 (16:00 +0000)]
clang codegen support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105531
91177308-0d34-0410-b5e6-
96231b3b80d8
Kenneth Uildriks [Sat, 5 Jun 2010 14:50:21 +0000 (14:50 +0000)]
Partial specialization was not checking the callsite to make sure it was using the same constants as the specialization, leading to calls to the wrong specialization. Patch by Takumi Nakamura\!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105528
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sat, 5 Jun 2010 12:40:43 +0000 (12:40 +0000)]
This bug is also present in MSVC10. Requested by Elrood on IRC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105527
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Jun 2010 04:17:30 +0000 (04:17 +0000)]
revert r105521, which is breaking the buildbots with stuff like this:
In file included from X86InstrInfo.cpp:16:
X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105524
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 5 Jun 2010 03:53:24 +0000 (03:53 +0000)]
Initial AVX support for some instructions. No patterns matched
yet, only assembly encoding support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105521
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 5 Jun 2010 02:11:52 +0000 (02:11 +0000)]
Teach tablegen to support 'defm' inside multiclasses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105519
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Jun 2010 01:19:12 +0000 (01:19 +0000)]
Make MachineFunctionPass::createPrinterPass private, as no subclasses
should be calling it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105517
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sat, 5 Jun 2010 00:51:39 +0000 (00:51 +0000)]
Improvements to tail call code. No functional effect
unless using -arm-tail-calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105515
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Jun 2010 00:47:34 +0000 (00:47 +0000)]
getFoldedOffsetOf no longer does anything special with vector types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105514
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Jun 2010 00:42:29 +0000 (00:42 +0000)]
No need to special-case structs here; structs are first-class now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105513
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Sat, 5 Jun 2010 00:39:29 +0000 (00:39 +0000)]
Revert 105492 & 105493 due to a testcase regression. Radar
7424645.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105511
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Jun 2010 00:33:07 +0000 (00:33 +0000)]
LSR needs to remember inserted instructions even in postinc mode, because
there could be multiple subexpressions within a single expansion which
require insert point adjustment. This fixes PR7306.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105510
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sat, 5 Jun 2010 00:30:45 +0000 (00:30 +0000)]
Fix some liveout handling related to tail calls, see comments.
I don't think this ever resulted in problems on x86, but it
would on ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105509
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 5 Jun 2010 00:26:02 +0000 (00:26 +0000)]
Implement operator== and operator!= for SetVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105508
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 4 Jun 2010 23:47:41 +0000 (23:47 +0000)]
test case for r105504.
Radar
8055687.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105505
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 4 Jun 2010 23:28:13 +0000 (23:28 +0000)]
Re-apply 105308 with fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105502
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 4 Jun 2010 23:16:05 +0000 (23:16 +0000)]
Don't track users of undef values; they aren't interesting for
register pressure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105501
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 4 Jun 2010 23:01:26 +0000 (23:01 +0000)]
Make if-conversion ignore dbg_value instructions in its analysis. rdar://
7797940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105498
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 4 Jun 2010 22:53:30 +0000 (22:53 +0000)]
Handle multi-vector returns and args.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105496
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 4 Jun 2010 22:49:55 +0000 (22:49 +0000)]
Update docs to reflect new DISubprogram elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105495
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Fri, 4 Jun 2010 22:36:03 +0000 (22:36 +0000)]
Support for nested functions/classes in debug output. Radar
7424645.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105492
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 4 Jun 2010 22:27:30 +0000 (22:27 +0000)]
Copy location info for current function argument from dbg.declare if respective store instruction does not have any location info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105490
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 4 Jun 2010 21:36:00 +0000 (21:36 +0000)]
Additional fixes to BuiltinsARM.def generator, on to clang codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105488
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 4 Jun 2010 21:14:24 +0000 (21:14 +0000)]
More tail call removal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105485
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 4 Jun 2010 20:18:30 +0000 (20:18 +0000)]
Skip dbg_value instructions when scanning instructions in register scavenging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105481
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 4 Jun 2010 19:16:34 +0000 (19:16 +0000)]
Fix normalization and de-normalization of non-affine SCEVs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105480
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 4 Jun 2010 18:08:29 +0000 (18:08 +0000)]
Keep track of the call instructions whose clobber lists were skipped during fast
register allocation.
Process all of the clobber lists at the end of the function, marking the
registers as used in MachineRegisterInfo.
This is necessary in case the calls clobber callee-saved registers (sic).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105473
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 4 Jun 2010 18:04:24 +0000 (18:04 +0000)]
More thoroughly disable tails calls by default.
8060143, although this doesn't fix the real problem with tail call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105472
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 4 Jun 2010 17:57:34 +0000 (17:57 +0000)]
Another fix to prevent debug info from affecting codegen. rdar://
7797940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105470
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 4 Jun 2010 07:11:25 +0000 (07:11 +0000)]
Progress on generating BuiltinsARM.def, still some duplicates to work out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105461
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 4 Jun 2010 01:26:15 +0000 (01:26 +0000)]
BuiltinsARM.def emitter, still needs a substantial bit of tweaking to lighten the load on clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105456
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 4 Jun 2010 01:23:30 +0000 (01:23 +0000)]
more dbg_value adjustments so debug info doesn't affect codegen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105454
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Fri, 4 Jun 2010 01:20:10 +0000 (01:20 +0000)]
Fixed a bug during widening where we would avoid legalizing a node. When we
replace an OpA with a widened OpB, it is possible to get new uses of OpA due to CSE
when recursively updating nodes. Since OpA has been processed, the new uses are
not examined again. The patch checks if this occurred and it it did, updates the
new uses of OpA to use OpB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105453
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 4 Jun 2010 01:01:24 +0000 (01:01 +0000)]
Remove more tail calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105450
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 4 Jun 2010 01:01:04 +0000 (01:01 +0000)]
Remove a tail call, and move some CHECKs to the
functions where they belong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105449
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 4 Jun 2010 00:21:41 +0000 (00:21 +0000)]
Mangle __builtin_neon_* names appropriately.
Add skeleton of support for emitting the list of prototypes for BuiltinsARM.def
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105443
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 4 Jun 2010 00:18:06 +0000 (00:18 +0000)]
No need to special-case structs here; structs are first-class now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105442
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 4 Jun 2010 00:15:00 +0000 (00:15 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105441
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 4 Jun 2010 00:14:48 +0000 (00:14 +0000)]
This test doesn't need the ssp attribute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105440
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 4 Jun 2010 00:04:02 +0000 (00:04 +0000)]
For NEON vectors with 32- or 64-bit elements, select BUILD_VECTORs and
VECTOR_SHUFFLEs to REG_SEQUENCE instructions. The standard ISD::BUILD_VECTOR
node corresponds closely to REG_SEQUENCE but I couldn't use it here because
its operands do not get legalized. That is pretty awful, but I guess it
makes sense for other targets. Instead, I have added an ARM-specific version
of BUILD_VECTOR that will have its operands properly legalized.
This fixes the rest of Radar
7872877.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105439
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 4 Jun 2010 00:03:37 +0000 (00:03 +0000)]
Remove tail call. A tail call version will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105438
91177308-0d34-0410-b5e6-
96231b3b80d8