- Aug 26, 2010
-
-
Douglas Gregor authored
into the clients", because the C standard library sucks. Where's my stable sort, huh? llvm-svn: 112121
-
Dan Gohman authored
and was over-complicated, and replacing it with a simple implementation. llvm-svn: 112120
-
Fariborz Jahanian authored
llvm-svn: 112119
-
Bob Wilson authored
a VLD result was not used (Radar 8355607). It should also fix pr7988, but I haven't verified that yet. llvm-svn: 112118
-
Fariborz Jahanian authored
llvm-svn: 112117
-
Fariborz Jahanian authored
llvm-svn: 112116
-
Eric Christopher authored
llvm-svn: 112115
-
John McCall authored
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
-
Chris Lattner authored
builder. I will investigate tonight. llvm-svn: 112113
-
Argyrios Kyrtzidis authored
llvm-svn: 112112
-
Chris Lattner authored
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
-
Dan Gohman authored
faster on large modules. llvm-svn: 112110
-
Chris Lattner authored
llvm-svn: 112109
-
Bob Wilson authored
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
-
Argyrios Kyrtzidis authored
Fix miscompilation. The custom new[]/delete[] methods were not getting called for arrays with more than 1 dimension. llvm-svn: 112107
-
John McCall authored
not require its type argument to be complete if no members are actually used. llvm-svn: 112106
-
Chris Lattner authored
trivial. llvm-svn: 112105
-
Chris Lattner authored
llvm-svn: 112104
-
Johnny Chen authored
llvm-svn: 112103
-
Johnny Chen authored
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
-
Chris Lattner authored
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
-
Tom Care authored
llvm-svn: 112100
-
Chris Lattner authored
llvm-svn: 112099
-
Tom Care authored
- 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
-
Ted Kremenek authored
llvm-svn: 112097
-
Ted Kremenek authored
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
-
Douglas Gregor authored
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
-
John McCall authored
Clients of Sema don't need to know (for example) the list of diagnostics we support. llvm-svn: 112093
-
- Aug 25, 2010
-
-
Dan Gohman authored
llvm-svn: 112092
-
Dan Gohman authored
instructions, not when remapping modules. llvm-svn: 112091
-
Bruno Cardoso Lopes authored
llvm-svn: 112090
-
Daniel Dunbar authored
llvm-svn: 112089
-
Devang Patel authored
llvm-svn: 112086
-
Devang Patel authored
llvm-svn: 112085
-
Jim Grosbach authored
llvm-svn: 112084
-
Dan Gohman authored
llvm-svn: 112083
-
Dan Gohman authored
from MDValueList between each function, now that the bitcode writer is reusing the index space for function-local metadata. llvm-svn: 112082
-
Dan Gohman authored
llvm-svn: 112081
-
Dan Gohman authored
llvm-svn: 112080
-
Benjamin Kramer authored
llvm-svn: 112079
-