summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* With lax vector conversions (the default) make sure we convert between twoEric Christopher2010-08-264-9/+25
| | | | | | | | | 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
* Revert "Move the sorting of code-completion results out of the main path andDouglas Gregor2010-08-268-116/+24
| | | | | | | into the clients", because the C standard library sucks. Where's my stable sort, huh? llvm-svn: 112121
* Rewrite ExtractGV, removing a bunch of stuff that didn't fully work,Dan Gohman2010-08-263-132/+34
| | | | | | and was over-complicated, and replacing it with a simple implementation. llvm-svn: 112120
* Add DelayedDiagnostic.h to xcode project file.Fariborz Jahanian2010-08-261-0/+2
| | | | llvm-svn: 112119
* Revert svn 107892 (with changes to work with trunk). It caused a crash ifBob Wilson2010-08-262-1/+42
| | | | | | | a VLD result was not used (Radar 8355607). It should also fix pr7988, but I haven't verified that yet. llvm-svn: 112118
* More update of clang.xcodeproj for recent changes.Fariborz Jahanian2010-08-261-0/+28
| | | | llvm-svn: 112117
* Update clang.xcodeproj for recent refactorings.Fariborz Jahanian2010-08-261-42/+146
| | | | llvm-svn: 112116
* Fix typo in error message and testcase.Eric Christopher2010-08-252-7/+7
| | | | llvm-svn: 112115
* Pull DelayedDiagnostic and AccessedEntity out into their own header.John McCall2010-08-256-144/+193
| | | | | | | | 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
* temporarily disable this, which started failing on the llvm-i686-linuxChris Lattner2010-08-251-2/+4
| | | | | | builder. I will investigate tonight. llvm-svn: 112113
* Revert r112043, static volatiles are removed by the optimizer. Thanks Chris!Argyrios Kyrtzidis2010-08-252-10/+1
| | | | llvm-svn: 112112
* Finally pass "two floats in a 64-bit unit" as a <2 x float> instead ofChris Lattner2010-08-252-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Convert llvm-extract to use lazy loading. This makes it substantiallyDan Gohman2010-08-251-1/+14
| | | | | | faster on large modules. llvm-svn: 112110
* we should pattern match the SSE complex arithmetic ops.Chris Lattner2010-08-251-0/+26
| | | | llvm-svn: 112109
* Start converting NEON load/stores to use pseudo instructions, beginning hereBob Wilson2010-08-255-41/+165
| | | | | | | | | | | 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
* Fix miscompilation. The custom new[]/delete[] methods were not getting ↵Argyrios Kyrtzidis2010-08-252-5/+19
| | | | | | called for arrays with more than 1 dimension. llvm-svn: 112107
* Provide an explicit specialization of SmallVector at N=0 which doesJohn McCall2010-08-251-0/+33
| | | | | | | not require its type argument to be complete if no members are actually used. llvm-svn: 112106
* add a specialization for the MVT form of getTypeAction, since it isChris Lattner2010-08-251-2/+4
| | | | | | trivial. llvm-svn: 112105
* remove some llvmcontext arguments that are now dead post-refactoring.Chris Lattner2010-08-255-24/+16
| | | | llvm-svn: 112104
* Minor doc string modification.Johnny Chen2010-08-251-1/+1
| | | | llvm-svn: 112103
* Added logic to TestUniversal.py to exercise the python APIs:Johnny Chen2010-08-252-0/+29
| | | | | | | | | | | | | | 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
* Change handling of illegal vector types to widen when possible instead of Chris Lattner2010-08-255-74/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add missing null checks in PseudoConstantAnalysisTom Care2010-08-251-1/+4
| | | | llvm-svn: 112100
* tidy upChris Lattner2010-08-251-54/+38
| | | | llvm-svn: 112099
* Improved the handling of blocks and block variables in PseudoConstantAnalysisTom Care2010-08-253-36/+70
| | | | | | | | | | - 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
* Fix RUN line in test.Ted Kremenek2010-08-251-1/+1
| | | | llvm-svn: 112097
* When annotating tokens, don't fallback to annotating with a null cursor for ↵Ted Kremenek2010-08-252-7/+104
| | | | | | cursors that come before a macro instantiation. Fixes <rdar://problem/7974151>. llvm-svn: 112096
* Move the sorting of code-completion results out of the main path andDouglas Gregor2010-08-258-24/+116
| | | | | | | 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
* Split out a header to hold APIs meant for the Sema implementation from Sema.h.John McCall2010-08-2530-26/+50
| | | | | | | Clients of Sema don't need to know (for example) the list of diagnostics we support. llvm-svn: 112093
* Fix a typo.Dan Gohman2010-08-251-1/+1
| | | | llvm-svn: 112092
* Remap metadata attached to instructions when remapping individualDan Gohman2010-08-255-17/+55
| | | | | | instructions, not when remapping modules. llvm-svn: 112091
* Revert this for now, PUNPCKLDQ dont operate on v4f32Bruno Cardoso Lopes2010-08-251-1/+1
| | | | llvm-svn: 112090
* X86: Fix misencode of RI64mi8. This fixes OpenSSL / x86_64-apple-darwin10 / ↵Daniel Dunbar2010-08-252-4/+7
| | | | | | clang -O3. llvm-svn: 112089
* Fix comment.Devang Patel2010-08-251-4/+3
| | | | llvm-svn: 112086
* Remove dead argument.Devang Patel2010-08-252-6/+4
| | | | llvm-svn: 112085
* Add some statistics for PEI register scavengingJim Grosbach2010-08-251-0/+7
| | | | llvm-svn: 112084
* Add a FIXME comment.Dan Gohman2010-08-251-0/+3
| | | | llvm-svn: 112083
* Fix the bitcode reader to clear out function-specific stateDan Gohman2010-08-251-0/+2
| | | | | | | from MDValueList between each function, now that the bitcode writer is reusing the index space for function-local metadata. llvm-svn: 112082
* Fix a bug found by inspection.Dan Gohman2010-08-251-1/+1
| | | | llvm-svn: 112081
* Add a comment.Dan Gohman2010-08-251-0/+1
| | | | llvm-svn: 112080
* MCELF: Use precomputed symbol indices, patch by Roman Divacky.Benjamin Kramer2010-08-251-11/+7
| | | | llvm-svn: 112079
* Updated for weekly test resultsHoward Hinnant2010-08-251-0/+0
| | | | llvm-svn: 112078
* Fix header define to reflect the name of the file.Eric Christopher2010-08-251-2/+2
| | | | | | Patch by Adam Treat! llvm-svn: 112077
* MC: Fix inconsistant naming in COFF object writer. Patch by Cameron Esfahani.Michael J. Spencer2010-08-251-3/+4
| | | | llvm-svn: 112076
* Don't override the var from the enclosing scope.Jim Grosbach2010-08-251-2/+2
| | | | | | | When doing copy/paste/modify, it's apparently rather important to remember the 'modify' bit... llvm-svn: 112075
* Fixed a logic error in the expect() method. If the start string does not match,Johnny Chen2010-08-251-2/+2
| | | | | | | | 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
* zap dead codeChris Lattner2010-08-251-34/+0
| | | | llvm-svn: 112073
* DIGlobalVariable can be used to encode debug info for globals that are ↵Devang Patel2010-08-252-2/+21
| | | | | | directly folded into a constant by FE. llvm-svn: 112072
* Allow command retries in case of process launch failures. This recoveryJohnny Chen2010-08-251-8/+29
| | | | | | | | | mechanism seems to work fine on my MacBook Pro in some limited test cases. The default maxLaunchCount and timeWait variables used in the scheme can be overridden by the env variables LLDB_MAX_LAUNCH_COUNT and LLDB_TIME_WAIT. llvm-svn: 112071
* When combining the code-completion results from Sema long with theDouglas Gregor2010-08-256-72/+93
| | | | | | | | code-completion results cached by ASTUnit, sort the resulting result set. This makes testing far, far easier, so this commit also includes tests for the previous few fixes. llvm-svn: 112070
OpenPOWER on IntegriCloud