| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
conservative when converting a functiontype to IR when in a "pointer within
a struct" context. This has the unfortunate sideeffect of compiling all
function pointers inside of structs into "{}*" which, though correct, is
ugly. This has the positive side effect of being correct, and it is pretty
straight-forward to improve on this.
llvm-svn: 134861
|
| |
|
|
|
|
|
| |
do an explicit bitcast to whatever ConvertType produces. This will
go with the next patch.
llvm-svn: 134860
|
| |
|
|
| |
llvm-svn: 134855
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it is a predicate, not an action. Change the return type to be a bool,
not the incomplete member. Enhace it to detect the recursive compilation
case, allowing us to compile Eli's testcase on llvmdev:
struct T {
struct T (*p)(void);
} t;
into:
%struct.T = type { {}* }
@t = common global %struct.T zeroinitializer, align 8
llvm-svn: 134853
|
| |
|
|
|
|
|
| |
the enum has already been converted. If not, there cannot be any types
built on top of it, so there is no need to flush the cache.
llvm-svn: 134841
|
| |
|
|
| |
llvm-svn: 134831
|
| |
|
|
|
|
|
|
| |
expecting so much concentrated oddity on what seemed like a
trivial feature. Thanks to François Pichet for doing the
MSVC legwork here.
llvm-svn: 134813
|
| |
|
|
| |
llvm-svn: 134785
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Emit default-initialization of arrays that were partially initialized
with initializer lists with a loop, rather than emitting the default
initializer N times;
- support destroying VLAs of non-trivial type, although this is not
yet exposed to users; and
- support the partial destruction of arrays initialized with
initializer lists when an initializer throws an exception.
llvm-svn: 134784
|
| |
|
|
|
|
|
|
|
|
|
|
| |
should not imply -mno-sse.
Note that because we don't usually touch the MMX registers anyway, all -mno-mmx needs to do is tweak the x86-32 calling convention a little for vectors that look like MMX vectors, and prevent the definition of __MMX__.
clang doesn't actually stop the user from using MMX inline asm operands or MMX builtins in -mno-mmx mode; as a QOI issue, it would be nice to diagnose, but I doubt it really matters much.
<rdar://problem/9694837>
llvm-svn: 134770
|
| |
|
|
| |
llvm-svn: 134765
|
| |
|
|
| |
llvm-svn: 134761
|
| |
|
|
| |
llvm-svn: 134754
|
| |
|
|
| |
llvm-svn: 134743
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the normal case.
Before, for this:
$ cat t.c
int test(int x) { return x * 2; }
We would get this:
addl %edi, %edi
jno LBB0_2
## BB#1: ## %overflow
ud2
LBB0_2: ## %nooverflow
movl %edi, %eax
popq %rbp
ret
Now we get this:
addl %edi, %edi
jo LBB0_2
## BB#1: ## %nooverflow
movl %edi, %eax
popq %rbp
ret
LBB0_2: ## %overflow
ud2
<rdar://problem/8283919>
llvm-svn: 134642
|
| |
|
|
|
|
| |
so roll it out.
llvm-svn: 134638
|
| |
|
|
|
|
| |
function. Fixes PR10233!
llvm-svn: 134634
|
| |
|
|
|
|
| |
required to support the transitional ABI.
llvm-svn: 134612
|
| |
|
|
|
|
| |
pure-nonfragile ABI for both ARC and GC mode.
llvm-svn: 134611
|
| |
|
|
|
|
|
|
|
|
|
|
| |
where we have an immediate need of a retained value.
As an exception, don't do this when the call is made as the immediate
operand of a __bridge retain. This is more in the way of a workaround
than an actual guarantee, so it's acceptable to be brittle here.
rdar://problem/9504800
llvm-svn: 134605
|
| |
|
|
| |
llvm-svn: 134589
|
| |
|
|
| |
llvm-svn: 134536
|
| |
|
|
|
|
|
| |
exception in Objective-C; in Objective-C++ we still use std::terminate().
This is only available in very recent runtimes.
llvm-svn: 134456
|
| |
|
|
|
|
|
|
|
|
|
|
| |
structure to hold inferred information, then propagate each invididual
bit down to -cc1. Separate the bits of "supports weak" and "has a native
ARC runtime"; make the latter a CodeGenOption.
The tool chain is still driving this decision, because it's the place that
has the required deployment target information on Darwin, but at least it's
better-factored now.
llvm-svn: 134453
|
| |
|
|
|
|
| |
hardwired into the default pass list.
llvm-svn: 134445
|
| |
|
|
|
|
| |
The start of some work on getting -mno-mmx working the way we want it to.
llvm-svn: 134300
|
| |
|
|
|
|
| |
Fixes rdar://9714064
llvm-svn: 134292
|
| |
|
|
|
|
|
| |
initializer. Previously, we only used guard variables for weak static
data members. Fixes <rdar://problem/9692249>.
llvm-svn: 134266
|
| |
|
|
|
|
|
|
| |
trivial default constructors. This generated-code regression was
caused by r131796, which had simplified the handling of default
initialization in Sema. Fixes <rdar://problem/9694300>.
llvm-svn: 134260
|
| |
|
|
| |
llvm-svn: 134140
|
| |
|
|
| |
llvm-svn: 134128
|
| |
|
|
|
|
|
| |
accessibility of an initializer which is a compound
statement. // rdar://9694706
llvm-svn: 134091
|
| |
|
|
|
|
| |
replacing -freset-local-blocks. // rdar://9227352
llvm-svn: 134082
|
| |
|
|
| |
llvm-svn: 134065
|
| |
|
|
|
|
|
|
|
|
| |
address takes up an integer register (if one is available). Make sure the x86-64 ABI implementation takes that into account properly.
The fixed implementation is compatible with the implementation both gcc and llvm-gcc use.
rdar://9686430 . (This is the issue that was reported in the thread "[LLVMdev] Segfault calling LLVM libs from a clang-compiled executable".)
llvm-svn: 134059
|
| |
|
|
| |
llvm-svn: 134050
|
| |
|
|
|
|
|
| |
wipe out stack blocks when they go out of scope.
// rdar://9227352
llvm-svn: 134045
|
| |
|
|
|
|
| |
Fixes rdar://9281377
llvm-svn: 134016
|
| |
|
|
|
|
|
| |
a vector for collection. Use iterators where needed instead.
// rdar://6817577
llvm-svn: 134015
|
| |
|
|
| |
llvm-svn: 133943
|
| |
|
|
| |
llvm-svn: 133931
|
| |
|
|
| |
llvm-svn: 133864
|
| |
|
|
| |
llvm-svn: 133861
|
| |
|
|
|
|
| |
by removing the redundant type parameter.
llvm-svn: 133860
|
| |
|
|
|
|
|
|
| |
arithmetic on a VLA as 'nsw', per discussion with djg, and
implement pointer arithmetic (other than array accesses) and
pointer subtraction for VLA types.
llvm-svn: 133855
|
| |
|
|
|
|
|
| |
in the variable to an inline asm which gets run when the variable
goes out of scope.
llvm-svn: 133840
|
| |
|
|
|
|
|
|
| |
Sorry, this was a bad idea. Within clang these builtins are in a separate
"ARM" namespace, but the actual builtin names should clearly distinguish tha
they are target specific.
llvm-svn: 133833
|
| |
|
|
| |
llvm-svn: 133829
|
| |
|
|
|
|
|
| |
not sizes; so that we use well-typed allocas; and so that we
properly recurse through the full set of variably-modified types.
llvm-svn: 133827
|
| |
|
|
| |
llvm-svn: 133826
|