| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
optional argument passed through the variadic ellipsis)
potentially affects how we need to lower it. Propagate
this information down to the various getFunctionInfo(...)
overloads on CodeGenTypes. Furthermore, rename those
overloads to clarify their distinct purposes, and make
sure we're calling the right one in the right place.
This has a nice side-effect of making it easier to construct
a function type, since the 'variadic' bit is no longer
separable.
This shouldn't really change anything for our existing
platforms, with one minor exception --- we should now call
variadic ObjC methods with the ... in the "right place"
(see the test case), which I guess matters for anyone
running GNUStep on MIPS. Mostly it's just a substantial
clean-up.
llvm-svn: 150788
|
|
|
|
| |
llvm-svn: 150713
|
|
|
|
| |
llvm-svn: 150668
|
|
|
|
| |
llvm-svn: 150666
|
|
|
|
| |
llvm-svn: 150650
|
|
|
|
|
|
|
|
|
|
| |
The garbage collection metadata needs to be merged "intelligently", when two or
more modules are linked together, and not merely appended. (Appending creates a
section which is too large.) The module flags metadata method is the way to do
this.
<rdar://problem/8198537>
llvm-svn: 150648
|
|
|
|
|
|
|
|
|
| |
-fno-objc-arc-exceptions. This will allow the optimizer to perform
optimizations which are only safe under that flag.
This is a part of rdar://10803830.
llvm-svn: 150644
|
|
|
|
|
|
| |
as unscanned. // rdar://10832643
llvm-svn: 150639
|
|
|
|
| |
llvm-svn: 149995
|
|
|
|
|
|
| |
info for properties that are synthesized by the compiler by default.
llvm-svn: 149929
|
|
|
|
| |
llvm-svn: 149881
|
|
|
|
| |
llvm-svn: 149766
|
|
|
|
| |
llvm-svn: 149738
|
|
|
|
| |
llvm-svn: 149726
|
|
|
|
| |
llvm-svn: 149313
|
|
|
|
|
|
|
| |
argument. twik to support the test case.
// rdar://10444476
llvm-svn: 149298
|
|
|
|
|
|
|
|
|
| |
consume one or more of their arguments. If not done, this will cause a leak
as method will not consume the argument when receiver is null.
In this patch, the null path releases consumed argument.
// rdar://10444474
llvm-svn: 149279
|
|
|
|
| |
llvm-svn: 149205
|
|
|
|
|
|
|
|
| |
kill the retain from the return site.
This has the workaround nature. It's badness all around.
llvm-svn: 149193
|
|
|
|
|
|
|
| |
in the presence of straight-line cleanups. This is a simple but
important case, particularly for ARC.
llvm-svn: 149190
|
|
|
|
|
|
|
|
| |
consume one or more of their arguments. If not done, this will cause a leak
as method will not consume the argument when receiver is null.
// rdar://10444474
llvm-svn: 149184
|
|
|
|
|
|
|
|
|
| |
or whatever else is required for the initialization instead of
assuming it can be done with a simple store.
Fixes PR11732.
llvm-svn: 148325
|
|
|
|
|
|
| |
thing.
llvm-svn: 147530
|
|
|
|
|
|
| |
the definition of that class. Fixes PR11613 / <rdar://problem/10604077>.
llvm-svn: 146976
|
|
|
|
| |
llvm-svn: 146745
|
|
|
|
| |
llvm-svn: 146668
|
|
|
|
|
|
| |
of &= on pseudo-objects.
llvm-svn: 145904
|
|
|
|
|
|
|
|
| |
for the structure type.
rdar://10499337
llvm-svn: 145461
|
|
|
|
| |
llvm-svn: 144597
|
|
|
|
| |
llvm-svn: 144561
|
|
|
|
|
|
| |
loads to later be moved/combined in the optimizer. Fixes <rdar://problem/6027699>
llvm-svn: 144318
|
|
|
|
|
|
|
|
|
|
| |
need to provide a 'dominating IP' which is guaranteed to
dominate the (de)activation point but which cannot be avoided
along any execution path from the (de)activation point to
the push-point of the cleanup. Using the entry block is
bad mojo.
llvm-svn: 144276
|
|
|
|
|
|
|
|
|
|
|
|
| |
a previously-inactive cleanup, not only do we need a
flag variable, but we should also force the cleanup to
query the flag variable. However, we only need to do
this when we're activating in a context that's
conditionally executed; otherwise, we may safely
assume that the cleanup is dominated by the activation
point.
llvm-svn: 144271
|
|
|
|
|
|
|
|
|
|
|
|
| |
full-expression. Naturally they're inactive before we enter
the block literal expression. This restores the intended
behavior that blocks belong to their enclosing scope.
There's a useful -O0 / compile-time optimization that we're
missing here with activating cleanups following straight-line
code from their inactive beginnings.
llvm-svn: 144268
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
block-typed __block variables using objc_retainBlock
and objc_dispose. Previously we were using
_Block_object_assign and _Block_object_destroy
with BLOCK_BYREF_CALLER, which causes the runtime
to completely ignore the retain and release.
In most cases this doesn't cause catastrophe
because the retain/release are balanced and
because the block in the variable was copied
upon assignment there. However, the stack
copy of the variable will be released when
it goes out of scope, which is a problem if
that value was released due to an assignment
to the heap copy. Similarly, a leak can occur
if the variable is assigned after the copy to
the heap.
llvm-svn: 144162
|
|
|
|
| |
llvm-svn: 144158
|
|
|
|
|
|
| |
opaque values. Silly C type system.
llvm-svn: 144144
|
|
|
|
|
|
| |
double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil.
llvm-svn: 143350
|
|
|
|
| |
llvm-svn: 143187
|
|
|
|
|
|
| |
property refactoring. // rdar://10327068
llvm-svn: 143139
|
|
|
|
|
|
| |
from r143097.
llvm-svn: 143098
|
|
|
|
|
|
|
| |
value and ABI requires return slot to be passed as first
argument to message sent. // rdar://10331109
llvm-svn: 143053
|
|
|
|
|
|
| |
Fixes rdar://10282889
llvm-svn: 142467
|
|
|
|
|
|
| |
only a setter.
llvm-svn: 142236
|
|
|
|
|
|
|
|
|
|
| |
non-fragile ABI we may not be able to lay out the type and the debugger
would ignore us even if we did put in the offset. Go ahead and just
put any value there and don't look up the offset since it may not exist.
rdar://10210157
llvm-svn: 141261
|
|
|
|
|
|
| |
to id so that we can still optimize them appropriately.
llvm-svn: 141064
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
increasingly prevailing case to the point that new features
like ARC don't even support the fragile ABI anymore.
This required a little bit of reshuffling with exceptions
because a check was assuming that ObjCNonFragileABI was
only being set in ObjC mode, and that's actually a bit
obnoxious to do.
Most, though, it involved a perl script to translate a ton
of test cases.
Mostly no functionality change for driver users, although
there are corner cases with disabling language-specific
exceptions that we should handle more correctly now.
llvm-svn: 140957
|
|
|
|
|
|
|
| |
the pointer, being sure to do so before running cleanups
associated with that full-expression. rdar://10042689
llvm-svn: 140945
|
|
|
|
|
|
| |
attributes on the parameter declaration.
llvm-svn: 140944
|
|
|
|
|
|
|
|
|
|
| |
calls, or calls to audited functions without an explicit
return attribute, to be casted without a bridge cast.
Tie this mechanism in with the existing exceptions to
the cast restrictions. State those restrictions more
correctly and generalize.
llvm-svn: 140912
|