Oscar Fuentes
10d63be9fe
Updated CMake library dependencies. Removed unnecessary component name
...
from llvm-link/CMakeLists.txt
llvm-svn: 112153
2010-08-26 02:29:53 +00:00
John McCall
33faad67cc
SmallVector's growth policies don't like starting from zero capacity.
...
I think there are good reasons to change this, but in the interests
of short-term stability, make SmallVector<...,0> reserve non-zero
capacity in its constructors. This means that SmallVector<...,0>
uses more memory than SmallVector<...,1> and should really only be
used (unless/until this workaround is removed) by clients that
care about using SmallVector with an incomplete type.
llvm-svn: 112147
2010-08-26 02:11:48 +00:00
Chris Lattner
467be04ce6
remove dead proto
...
llvm-svn: 112131
2010-08-26 01:14:37 +00:00
Chris Lattner
164c35930a
zap dead code.
...
llvm-svn: 112130
2010-08-26 01:13:54 +00:00
Bruno Cardoso Lopes
8bb7c79c1a
Fix PR7748 without using microsoft extensions
...
llvm-svn: 112128
2010-08-26 01:02:53 +00:00
Jim Grosbach
6500a1a2f9
Enable pre-RA virtual frame base register allocation. rdar://8277890
...
llvm-svn: 112127
2010-08-26 00:58:06 +00:00
Dan Gohman
c7605a66b7
Rewrite ExtractGV, removing a bunch of stuff that didn't fully work,
...
and was over-complicated, and replacing it with a simple implementation.
llvm-svn: 112120
2010-08-26 00:22:55 +00:00
Bob Wilson
1df383d9cb
Revert svn 107892 (with changes to work with trunk). It caused a crash if
...
a VLD result was not used (Radar 8355607). It should also fix pr7988, but
I haven't verified that yet.
llvm-svn: 112118
2010-08-26 00:13:36 +00:00
Chris Lattner
7bae652c62
temporarily disable this, which started failing on the llvm-i686-linux
...
builder. I will investigate tonight.
llvm-svn: 112113
2010-08-25 23:43:14 +00:00
Dan Gohman
f33b3bf2d0
Convert llvm-extract to use lazy loading. This makes it substantially
...
faster on large modules.
llvm-svn: 112110
2010-08-25 23:33:07 +00:00
Chris Lattner
eb4c7e43cc
we should pattern match the SSE complex arithmetic ops.
...
llvm-svn: 112109
2010-08-25 23:31:42 +00:00
Bob Wilson
b85b3cf91f
Start converting NEON load/stores to use pseudo instructions, beginning here
...
with the VST4 instructions. Until after register allocation, we want to
represent sets of adjacent registers by a single super-register. These
VST4 pseudo instructions have a single QQ or QQQQ source register operand.
They get expanded to the real VST4 instructions with 4 separate D register
operands. Once this conversion is complete, we'll be able to remove the
NEONPreAllocPass and avoid some fragile and hacky code elsewhere.
llvm-svn: 112108
2010-08-25 23:27:42 +00:00
John McCall
0c3659857d
Provide an explicit specialization of SmallVector at N=0 which does
...
not require its type argument to be complete if no members are
actually used.
llvm-svn: 112106
2010-08-25 23:11:24 +00:00
Chris Lattner
36e90f42f3
add a specialization for the MVT form of getTypeAction, since it is
...
trivial.
llvm-svn: 112105
2010-08-25 23:05:45 +00:00
Chris Lattner
ef3055ca05
remove some llvmcontext arguments that are now dead post-refactoring.
...
llvm-svn: 112104
2010-08-25 23:00:45 +00:00
Chris Lattner
fe7c4ec039
Change handling of illegal vector types to widen when possible instead of
...
expanding: e.g. <2 x float> -> <4 x float> instead of -> 2 floats. This
affects two places in the code: handling cross block values and handling
function return and arguments. Since vectors are already widened by
legalizetypes, this gives us much better code and unblocks x86-64 abi
and SPU abi work.
For example, this (which is a silly example of a cross-block value):
define <4 x float> @test2(<4 x float> %A) nounwind {
%B = shufflevector <4 x float> %A, <4 x float> undef, <2 x i32> <i32 0, i32 1>
%C = fadd <2 x float> %B, %B
br label %BB
BB:
%D = fadd <2 x float> %C, %C
%E = shufflevector <2 x float> %D, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
ret <4 x float> %E
}
Now compiles into:
_test2: ## @test2
## BB#0:
addps %xmm0, %xmm0
addps %xmm0, %xmm0
ret
previously it compiled into:
_test2: ## @test2
## BB#0:
addps %xmm0, %xmm0
pshufd $1, %xmm0, %xmm1
## kill: XMM0<def> XMM0<kill> XMM0<def>
insertps $0, %xmm0, %xmm0
insertps $16, %xmm1, %xmm0
addps %xmm0, %xmm0
ret
This implements rdar://8230384
llvm-svn: 112101
2010-08-25 22:49:25 +00:00
Chris Lattner
56bc3bc1af
tidy up
...
llvm-svn: 112099
2010-08-25 22:45:53 +00:00
Dan Gohman
d19a0a49d1
Remap metadata attached to instructions when remapping individual
...
instructions, not when remapping modules.
llvm-svn: 112091
2010-08-25 21:36:50 +00:00
Bruno Cardoso Lopes
28f3261dbd
Revert this for now, PUNPCKLDQ dont operate on v4f32
...
llvm-svn: 112090
2010-08-25 21:26:37 +00:00
Daniel Dunbar
1a881a3eca
X86: Fix misencode of RI64mi8. This fixes OpenSSL / x86_64-apple-darwin10 / clang -O3.
...
llvm-svn: 112089
2010-08-25 21:11:02 +00:00
Devang Patel
3abb5dbc91
Fix comment.
...
llvm-svn: 112086
2010-08-25 20:41:24 +00:00
Devang Patel
25b17ca1c3
Remove dead argument.
...
llvm-svn: 112085
2010-08-25 20:39:26 +00:00
Jim Grosbach
eab4de864e
Add some statistics for PEI register scavenging
...
llvm-svn: 112084
2010-08-25 20:34:28 +00:00
Dan Gohman
59afcdfc07
Add a FIXME comment.
...
llvm-svn: 112083
2010-08-25 20:23:38 +00:00
Dan Gohman
ff4a68ffa1
Fix the bitcode reader to clear out function-specific state
...
from MDValueList between each function, now that the bitcode
writer is reusing the index space for function-local metadata.
llvm-svn: 112082
2010-08-25 20:22:53 +00:00
Dan Gohman
bd785974b0
Fix a bug found by inspection.
...
llvm-svn: 112081
2010-08-25 20:20:21 +00:00
Dan Gohman
9bb1e88e8f
Add a comment.
...
llvm-svn: 112080
2010-08-25 20:17:19 +00:00
Benjamin Kramer
ebee78319c
MCELF: Use precomputed symbol indices, patch by Roman Divacky.
...
llvm-svn: 112079
2010-08-25 20:09:43 +00:00
Eric Christopher
6263463ccb
Fix header define to reflect the name of the file.
...
Patch by Adam Treat!
llvm-svn: 112077
2010-08-25 19:28:39 +00:00
Michael J. Spencer
052ffacb48
MC: Fix inconsistant naming in COFF object writer. Patch by Cameron Esfahani.
...
llvm-svn: 112076
2010-08-25 19:27:27 +00:00
Jim Grosbach
50dbbda454
Don't override the var from the enclosing scope.
...
When doing copy/paste/modify, it's apparently rather important to remember
the 'modify' bit...
llvm-svn: 112075
2010-08-25 19:11:34 +00:00
Chris Lattner
84423f212d
zap dead code
...
llvm-svn: 112073
2010-08-25 19:00:00 +00:00
Devang Patel
05becf3ac5
DIGlobalVariable can be used to encode debug info for globals that are directly folded into a constant by FE.
...
llvm-svn: 112072
2010-08-25 18:52:02 +00:00
Dan Gohman
6300d80566
lto_codegen_set_gcc_path was removed.
...
llvm-svn: 112069
2010-08-25 18:37:04 +00:00
Dan Gohman
1c0c6f568f
Fix a few missing entries in lto.exports.
...
llvm-svn: 112068
2010-08-25 18:22:12 +00:00
Benjamin Kramer
4eb0e8bb2c
Remove dead recursive function. Yay for clang -Wunused-function.
...
llvm-svn: 112060
2010-08-25 17:27:58 +00:00
Dan Gohman
3052a8bec0
Clear FunctionLocalMDs in purgeFunction along with the rest of the
...
function-specific state.
llvm-svn: 112058
2010-08-25 17:11:16 +00:00
Dan Gohman
7938d90097
Fix whitespace.
...
llvm-svn: 112056
2010-08-25 17:09:50 +00:00
Dan Gohman
c78f53e0af
Eliminate an unnecessary cast.
...
llvm-svn: 112055
2010-08-25 17:09:03 +00:00
Daniel Dunbar
9b7c2ce591
ARM/Thumb2: Fix a misselect in getARMCmp, when attempting to adjust a signed
...
comparison that would overflow.
- The other under/overflow cases can't actually happen because the immediates
which would trigger them are legal (so we don't enter this code), but
adjusted the style to make it clear the transform is always valid.
llvm-svn: 112053
2010-08-25 16:58:05 +00:00
Eric Christopher
d0404930db
Regenerate.
...
llvm-svn: 112042
2010-08-25 08:45:06 +00:00
Eric Christopher
4bbe60e009
Remove getsect checks, the result is unused and is broken anyhow.
...
Fixes PR7967.
Owen: You added these, any reason?
llvm-svn: 112041
2010-08-25 08:44:54 +00:00
Eric Christopher
1bf07e75ac
Do type checks before we bother to do everything else.
...
llvm-svn: 112039
2010-08-25 08:43:57 +00:00
Eric Christopher
f9155e9642
Add another basic test cribbed from the x86 fast-isel tests.
...
llvm-svn: 112036
2010-08-25 07:57:29 +00:00
Eric Christopher
0dddfc66d6
Run this on thumb and arm.
...
llvm-svn: 112035
2010-08-25 07:53:15 +00:00
Anton Korobeynikov
1544f79e36
Fix nasty mingw32 bug, which e.g. prevented llvm-gcc bootstrap there.
...
Mark _alloca call as clobberring EFLAGS, otherwise some DCE might remove
other flags-clobberring stuff (e.g. cmp instructions) occuring after
_alloca call.
llvm-svn: 112034
2010-08-25 07:50:11 +00:00
Eric Christopher
1645ee458a
Make this testcase actually executed with fast-isel on arm.
...
llvm-svn: 112033
2010-08-25 07:47:00 +00:00
Eric Christopher
9e3831d7a9
Reorganize load mechanisms. Handle types in a little less fixed way.
...
Fix some todos. No functional change.
llvm-svn: 112031
2010-08-25 07:23:49 +00:00
Eric Christopher
4a0b108f33
Apparently this is needed for llvm-link to link.
...
Untested.
llvm-svn: 112029
2010-08-25 06:45:22 +00:00
Eric Christopher
7637f43217
Allow strict subclasses of register classes, this way we can handle
...
ARM instructions with:
foo GPR, rGPR
which happens a lot.
llvm-svn: 112025
2010-08-25 04:58:56 +00:00