| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 112212
|
| |
|
|
|
|
|
| |
memory (as required) the later now passes in an xmm register. This
fixes gcc.dg/compat/vector_1 on x86-32.
llvm-svn: 112211
|
| |
|
|
| |
llvm-svn: 112209
|
| |
|
|
|
|
|
| |
this fixes rdar://8358475 a failure of the gcc.dg/compat/vector_1 abi
test.
llvm-svn: 112205
|
| |
|
|
|
|
| |
this fixes a miscompilation on the included testcase, rdar://8359248
llvm-svn: 112201
|
| |
|
|
|
|
|
|
| |
different
behavior in C than in C++ (which is what the original test case was).
llvm-svn: 112199
|
| |
|
|
|
|
| |
it might previously have been a tag TST.
llvm-svn: 112196
|
| |
|
|
|
|
| |
typed-text blocks into one of each.
llvm-svn: 112194
|
| |
|
|
|
|
|
|
|
| |
function, take into account the qualifiers on the object argument
(e.g., what will become "this"), filtering around uncallable member
functions and giving a slight priority boost to those with
exactly-matching qualifiers.
llvm-svn: 112193
|
| |
|
|
| |
llvm-svn: 112192
|
| |
|
|
|
|
| |
multiple dimensions.
llvm-svn: 112188
|
| |
|
|
|
|
| |
by changing the link order.
llvm-svn: 112187
|
| |
|
|
| |
llvm-svn: 112186
|
| |
|
|
| |
llvm-svn: 112184
|
| |
|
|
| |
llvm-svn: 112183
|
| |
|
|
| |
llvm-svn: 112182
|
| |
|
|
| |
llvm-svn: 112181
|
| |
|
|
|
|
|
|
|
|
|
| |
into the clients, e.g., the printing code-completion consumer and
c-index-test. Clients may want to re-sort the results anyway.
Provide a libclang function that sorts the results.
3rd try. How embarrassing.
llvm-svn: 112180
|
| |
|
|
| |
llvm-svn: 112179
|
| |
|
|
| |
llvm-svn: 112178
|
| |
|
|
|
|
| |
It still depends on Type because DeclarationName.h does.
llvm-svn: 112177
|
| |
|
|
| |
llvm-svn: 112174
|
| |
|
|
|
|
| |
don't currently need the bits anyway.
llvm-svn: 112173
|
| |
|
|
|
|
| |
path and ...", it is failing tests.
llvm-svn: 112161
|
| |
|
|
|
|
| |
doth lay upon the chopping block.
llvm-svn: 112160
|
| |
|
|
| |
llvm-svn: 112159
|
| |
|
|
|
|
| |
This lets us remove Sema.h's dependency on Expr.h and Decl.h.
llvm-svn: 112156
|
| |
|
|
| |
llvm-svn: 112154
|
| |
|
|
| |
llvm-svn: 112151
|
| |
|
|
|
|
|
|
|
| |
into the clients, e.g., the printing code-completion consumer and
c-index-test. Clients may want to re-sort the results anyway.
Provide a libclang function that sorts the results.
llvm-svn: 112149
|
| |
|
|
| |
llvm-svn: 112148
|
| |
|
|
|
|
| |
gcc defines them.
llvm-svn: 112146
|
| |
|
|
|
|
| |
collection type for iboutletcollection attributes.
llvm-svn: 112139
|
| |
|
|
|
|
| |
ready yet.
llvm-svn: 112138
|
| |
|
|
| |
llvm-svn: 112132
|
| |
|
|
|
|
| |
- Will be adding an executable test case to test-suite repo.
llvm-svn: 112126
|
| |
|
|
|
|
| |
of always using the new toolchain.
llvm-svn: 112125
|
| |
|
|
| |
llvm-svn: 112124
|
| |
|
|
|
|
| |
header.", it is teh broken.
llvm-svn: 112123
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
into the clients", because the C standard library sucks. Where's my
stable sort, huh?
llvm-svn: 112121
|
| |
|
|
| |
llvm-svn: 112119
|
| |
|
|
| |
llvm-svn: 112117
|
| |
|
|
| |
llvm-svn: 112116
|
| |
|
|
| |
llvm-svn: 112115
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 112112
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
called for arrays with more than 1 dimension.
llvm-svn: 112107
|
| |
|
|
| |
llvm-svn: 112100
|