Daniel Dunbar
e3d87d21f3
IRgen/NEON: Fix codegen of vzip and vzipq.
...
- Will be adding an executable test case to test-suite repo.
llvm-svn: 112126
2010-08-26 00:55:57 +00:00
Daniel Dunbar
b8f7a14575
Driver: Fix thinko where I switched to always using the old toolchain, instead
...
of always using the new toolchain.
llvm-svn: 112125
2010-08-26 00:55:55 +00:00
Daniel Dunbar
e9f7151485
Driver/Darwin: Pass the right arch specific dir for ARM, when linking.
...
llvm-svn: 112124
2010-08-26 00:55:52 +00:00
Daniel Dunbar
b6ceacf623
Revert r112114, "Pull DelayedDiagnostic and AccessedEntity out into their own
...
header.", it is teh broken.
llvm-svn: 112123
2010-08-26 00:52:50 +00:00
Eric Christopher
a613f56559
With lax vector conversions (the default) make sure we convert between two
...
vectors that are the same size. Fix up testcases accordingly and add a new one
to make sure we still error if lax vector conversions are disabled.
Fixes rdar://8328190
llvm-svn: 112122
2010-08-26 00:42:16 +00:00
Douglas Gregor
1099865124
Revert "Move the sorting of code-completion results out of the main path and
...
into the clients", because the C standard library sucks. Where's my
stable sort, huh?
llvm-svn: 112121
2010-08-26 00:30:24 +00:00
Dan Gohman
8f292e7a6d
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
Fariborz Jahanian
348dcffb14
Add DelayedDiagnostic.h to xcode project file.
...
llvm-svn: 112119
2010-08-26 00:17:38 +00:00
Bob Wilson
4629f423f8
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
Fariborz Jahanian
40f9798d06
More update of clang.xcodeproj for recent changes.
...
llvm-svn: 112117
2010-08-26 00:13:24 +00:00
Fariborz Jahanian
3ee8bcebd0
Update clang.xcodeproj for recent refactorings.
...
llvm-svn: 112116
2010-08-26 00:06:40 +00:00
Eric Christopher
52d5ec11cc
Fix typo in error message and testcase.
...
llvm-svn: 112115
2010-08-25 23:45:44 +00:00
John McCall
6b48873d50
Pull DelayedDiagnostic and AccessedEntity out into their own header.
...
This works courtesy of the new SmallVector<..., 0> specialization that
doesn't require a complete type. Note that you'll need to pull at least
SmallVector.h from LLVM to compile successfully.
llvm-svn: 112114
2010-08-25 23:44:00 +00:00
Chris Lattner
c7fb446a9d
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
Argyrios Kyrtzidis
1f5cfb6446
Revert r112043, static volatiles are removed by the optimizer. Thanks Chris!
...
llvm-svn: 112112
2010-08-25 23:42:51 +00:00
Chris Lattner
9f8b451876
Finally pass "two floats in a 64-bit unit" as a <2 x float> instead of
...
as a double in the x86-64 ABI. This allows us to generate much better
code for certain things, e.g.:
_Complex float f32(_Complex float A, _Complex float B) {
return A+B;
}
Used to compile into (look at the integer silliness!):
_f32: ## @f32
## BB#0: ## %entry
movd %xmm1, %rax
movd %eax, %xmm1
movd %xmm0, %rcx
movd %ecx, %xmm0
addss %xmm1, %xmm0
movd %xmm0, %edx
shrq $32, %rax
movd %eax, %xmm0
shrq $32, %rcx
movd %ecx, %xmm1
addss %xmm0, %xmm1
movd %xmm1, %eax
shlq $32, %rax
addq %rdx, %rax
movd %rax, %xmm0
ret
Now we get:
_f32: ## @f32
movdqa %xmm0, %xmm2
addss %xmm1, %xmm2
pshufd $16, %xmm2, %xmm2
pshufd $1, %xmm1, %xmm1
pshufd $1, %xmm0, %xmm0
addss %xmm1, %xmm0
pshufd $16, %xmm0, %xmm1
movdqa %xmm2, %xmm0
unpcklps %xmm1, %xmm0
ret
and compile stuff like:
extern float _Complex ccoshf( float _Complex ) ;
float _Complex ccosf ( float _Complex z ) {
float _Complex iz;
(__real__ iz) = -(__imag__ z);
(__imag__ iz) = (__real__ z);
return ccoshf(iz);
}
into:
_ccosf: ## @ccosf
## BB#0: ## %entry
pshufd $1, %xmm0, %xmm1
xorps LCPI4_0(%rip), %xmm1
unpcklps %xmm0, %xmm1
movaps %xmm1, %xmm0
jmp _ccoshf ## TAILCALL
instead of:
_ccosf: ## @ccosf
## BB#0: ## %entry
movd %xmm0, %rax
movq %rax, %rcx
shlq $32, %rcx
shrq $32, %rax
xorl $-2147483648, %eax ## imm = 0xFFFFFFFF80000000
addq %rcx, %rax
movd %rax, %xmm0
jmp _ccoshf ## TAILCALL
There is still "stuff to be done" here for the struct case,
but this resolves rdar://6379669 - [x86-64 ABI] Pass and return
_Complex float / double efficiently
llvm-svn: 112111
2010-08-25 23:39:14 +00:00
Dan Gohman
bf154593f9
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
aecf47a5cb
we should pattern match the SSE complex arithmetic ops.
...
llvm-svn: 112109
2010-08-25 23:31:42 +00:00
Bob Wilson
9392b0e960
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
Argyrios Kyrtzidis
1194d5e3d2
Fix miscompilation. The custom new[]/delete[] methods were not getting called for arrays with more than 1 dimension.
...
llvm-svn: 112107
2010-08-25 23:14:56 +00:00
John McCall
c5e7e703b5
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
2e8466c530
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
8df99b523e
remove some llvmcontext arguments that are now dead post-refactoring.
...
llvm-svn: 112104
2010-08-25 23:00:45 +00:00
Johnny Chen
61703c96f2
Minor doc string modification.
...
llvm-svn: 112103
2010-08-25 22:56:10 +00:00
Johnny Chen
f3c59231b3
Added logic to TestUniversal.py to exercise the python APIs:
...
o SBDebugger.GetCurrentTarget()
o SBTarget.GetProcess()
o SBProcess.GetAddressByteSize()
in order to make sure that, indeed, 64-bit, followed by 32-bit processes have
been launched.
Added invoke() method to TestBase to factor in the tracing logic in one place.
This method allows an object to call a method with no arg reflectively.
llvm-svn: 112102
2010-08-25 22:52:45 +00:00
Chris Lattner
75ff053497
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
Tom Care
9a68bccd0c
Add missing null checks in PseudoConstantAnalysis
...
llvm-svn: 112100
2010-08-25 22:46:03 +00:00
Chris Lattner
dffc384205
tidy up
...
llvm-svn: 112099
2010-08-25 22:45:53 +00:00
Tom Care
82b2a1dada
Improved the handling of blocks and block variables in PseudoConstantAnalysis
...
- Removed the assumption that __block vars are all non-constant
- Simplified some repetitive code in RunAnalysis
- Added block walking support
- Code/comments cleanup
- Separated out test for block pseudoconstants
llvm-svn: 112098
2010-08-25 22:37:26 +00:00
Ted Kremenek
a0d7e434c0
Fix RUN line in test.
...
llvm-svn: 112097
2010-08-25 22:16:06 +00:00
Ted Kremenek
65b2cc061d
When annotating tokens, don't fallback to annotating with a null cursor for cursors that come before a macro instantiation. Fixes <rdar://problem/7974151>.
...
llvm-svn: 112096
2010-08-25 22:16:02 +00:00
Douglas Gregor
ebb7c84891
Move the sorting of code-completion results out of the main path and
...
into the clients, e.g., the printing code-completion consumer and
c-index-test. Clients may want to re-sort the results anyway.
llvm-svn: 112095
2010-08-25 22:15:42 +00:00
John McCall
8302463dc6
Split out a header to hold APIs meant for the Sema implementation from Sema.h.
...
Clients of Sema don't need to know (for example) the list of diagnostics we
support.
llvm-svn: 112093
2010-08-25 22:03:47 +00:00
Dan Gohman
1869693150
Fix a typo.
...
llvm-svn: 112092
2010-08-25 21:59:25 +00:00
Dan Gohman
fd824487a3
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
d4085f6e91
Revert this for now, PUNPCKLDQ dont operate on v4f32
...
llvm-svn: 112090
2010-08-25 21:26:37 +00:00
Daniel Dunbar
3d148ac089
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
32a72ab072
Fix comment.
...
llvm-svn: 112086
2010-08-25 20:41:24 +00:00
Devang Patel
3f53d6e56a
Remove dead argument.
...
llvm-svn: 112085
2010-08-25 20:39:26 +00:00
Jim Grosbach
7c1b421ae6
Add some statistics for PEI register scavenging
...
llvm-svn: 112084
2010-08-25 20:34:28 +00:00
Dan Gohman
9b9ff467db
Add a FIXME comment.
...
llvm-svn: 112083
2010-08-25 20:23:38 +00:00
Dan Gohman
26d837d086
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
950ad65841
Fix a bug found by inspection.
...
llvm-svn: 112081
2010-08-25 20:20:21 +00:00
Dan Gohman
4a68f9b606
Add a comment.
...
llvm-svn: 112080
2010-08-25 20:17:19 +00:00
Benjamin Kramer
37b384cd66
MCELF: Use precomputed symbol indices, patch by Roman Divacky.
...
llvm-svn: 112079
2010-08-25 20:09:43 +00:00
Howard Hinnant
370bbab490
Updated for weekly test results
...
llvm-svn: 112078
2010-08-25 19:45:31 +00:00
Eric Christopher
9e944af2f8
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
237e4ecafb
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
0a84487fa7
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
Johnny Chen
981463d670
Fixed a logic error in the expect() method. If the start string does not match,
...
there's no point matching further sub strings; the expect() already fails.
Also cleaned up the assert message for VARIABLES_DISPLAYED_CORRECTLY.
llvm-svn: 112074
2010-08-25 19:00:04 +00:00