- Aug 31, 2010
-
-
Sebastian Redl authored
Rename DeclContext::getLookupContext to getRedeclContext and change its semantics slightly. No functionality change in the absence of inline namespaces. Also, change a few places where inline namespaces actually make a difference to be prepared for them. llvm-svn: 112563
-
Chris Lattner authored
llvm-svn: 112537
-
- Aug 30, 2010
-
-
Bob Wilson authored
intrinsic. llvm-svn: 112504
-
Alexis Hunt authored
some issues being sorted out. llvm-svn: 112493
-
Alexis Hunt authored
- Zero-initialize UDLData so that crashes stop - Stop complaining that we can't emit them (we most certainly can) llvm-svn: 112467
-
- Aug 29, 2010
-
-
Alexis Hunt authored
The extra data stored on user-defined literal Tokens is stored in extra allocated memory, which is managed by the PreprocessorLexer because there isn't a better place to put it that makes sure it gets deallocated, but only after it's used up. My testing has shown no significant slowdown as a result, but independent testing would be appreciated. llvm-svn: 112458
-
Bob Wilson authored
with zext/sext operations, instead of to llvm intrinsics. (We can also get rid of the clang builtins and handle these entirely in the arm_neon.h header if there is a way to express vector sext/zext in C.) llvm-svn: 112413
-
- Aug 27, 2010
-
-
Devang Patel authored
Patch originally by Alexander Herz. llvm-svn: 112275
-
Bob Wilson authored
types of the pointer address expressions used with those intrinsics. llvm-svn: 112272
-
- Aug 26, 2010
-
-
Chris Lattner authored
llvm-svn: 112214
-
Chris Lattner authored
memory (as required) the later now passes in an xmm register. This fixes gcc.dg/compat/vector_1 on x86-32. llvm-svn: 112211
-
Chris Lattner authored
this fixes rdar://8358475 a failure of the gcc.dg/compat/vector_1 abi test. llvm-svn: 112205
-
Chris Lattner authored
this fixes a miscompilation on the included testcase, rdar://8359248 llvm-svn: 112201
-
Argyrios Kyrtzidis authored
llvm-svn: 112188
-
-
Daniel Dunbar authored
don't currently need the bits anyway. llvm-svn: 112173
-
John McCall authored
This lets us remove Sema.h's dependency on Expr.h and Decl.h. llvm-svn: 112156
-
Daniel Dunbar authored
- Will be adding an executable test case to test-suite repo. llvm-svn: 112126
-
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
-
- Aug 25, 2010
-
-
Michael J. Spencer authored
llvm-svn: 112067
-
John McCall authored
to the new constants. llvm-svn: 112047
-
John McCall authored
llvm-svn: 112044
-
Daniel Dunbar authored
as a truncation not a comparison to null. llvm-svn: 112021
-
John McCall authored
but not in C++, so don't emit aggregate loads of volatile references in null context in C++. Happens to have been caught by an assertion. We do not get the scalar case right. Volatiles are really broken. llvm-svn: 112019
-
Devang Patel authored
llvm-svn: 112002
-
- Aug 24, 2010
-
-
Devang Patel authored
llvm-svn: 111936
-
Daniel Dunbar authored
identify what version of the compiler was used to build something. llvm-svn: 111927
-
Devang Patel authored
llvm-svn: 111852
-
- Aug 23, 2010
-
-
Dan Gohman authored
to handle the case where the struct is only forward-declared. In this case, a temporary MDNode is not needed and not desired. llvm-svn: 111842
-
Fariborz Jahanian authored
objc-nonfragile-abi2 (radar 7824380). llvm-svn: 111823
-
Douglas Gregor authored
the ternary operator without a left-hand side in C++ (PR7726), from Jean-Daniel Dupas! llvm-svn: 111809
-
John McCall authored
llvm-svn: 111797
-
rdar://8340348Chris Lattner authored
That revision started classifying truly empty structs like "Y" and "X" as being NoClass/NoClass and turning them into 'ignore'. The call code turns around and allocates space for the ignored argument with GetUndefRValue. The bug is that GetUndefRValue would return the address as undef, instead of returning an object with a defined address but undefined contents. llvm-svn: 111794
-
John McCall authored
class; they should just be completely opaque throughout IR gen now, although I haven't really audited that. Fix a bug apparently inherited from gcc-4.2 where we failed to null-check member data pointers when performing derived-to-base or base-to-derived conversions on them. llvm-svn: 111789
-
John McCall authored
operator new[]. llvm-svn: 111788
-
- Aug 22, 2010
-
-
John McCall authored
Make CGT defer to the ABI on all member pointer types. This requires giving CGT a handle to the ABI. It's way easier to make that work if we avoid lazily creating the ABI. Make it so. llvm-svn: 111786
-
Douglas Gregor authored
llvm-svn: 111782
-
Douglas Gregor authored
implicitly-defined default constructor, zero-initialize the memory before calling the default constructor. Previously, we would only zero-initialize in the case of a trivial default constructor. Also, simplify the hideous logic that determines when we have a trivial default constructor and, therefore, don't need to emit any call at all. llvm-svn: 111779
-
John McCall authored
llvm-svn: 111777
-
John McCall authored
pointers. I find the resulting code to be substantially cleaner, and it makes it very easy to use the same APIs for data member pointers (which I have conscientiously avoided here), and it avoids a plethora of potential inefficiencies due to excessive memory copying, but we'll have to see if it actually works. llvm-svn: 111776
-