| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 139678
|
|
|
|
| |
llvm-svn: 139668
|
|
|
|
|
|
|
| |
the builtin is really just a predefined declaration. These are
totally valid to cast.
llvm-svn: 139657
|
|
|
|
|
|
| |
Make clang use Acquire loads and Release stores where necessary.
llvm-svn: 139650
|
|
|
|
| |
llvm-svn: 139648
|
|
|
|
| |
llvm-svn: 139643
|
|
|
|
|
|
| |
explicitly error out on such cases in the backend, at least for the moment.
llvm-svn: 139640
|
|
|
|
|
|
| |
their semantic attributes and then to take advantage of that.
llvm-svn: 139615
|
|
|
|
|
|
|
|
|
|
| |
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
|
|
|
|
|
|
|
|
| |
even on architectures that support unaligned access (which is the
only way this is otherwise legal, given that ivars apparently do
not honor alignment attributes).
llvm-svn: 139590
|
|
|
|
| |
llvm-svn: 139585
|
|
|
|
|
|
| |
atomic. This is probably something we should warn about.
llvm-svn: 139584
|
|
|
|
|
|
|
|
| |
single code path. Use atomic loads and stores where necessary. Load and
store anything of the appropriate size and alignment with primitive
operations instead of going through the call.
llvm-svn: 139580
|
|
|
|
|
|
| |
modernization. No functionality change.
llvm-svn: 139555
|
|
|
|
| |
llvm-svn: 139521
|
|
|
|
| |
llvm-svn: 139514
|
|
|
|
| |
llvm-svn: 139502
|
|
|
|
| |
llvm-svn: 139470
|
|
|
|
|
|
|
|
|
| |
Use a more portable heuristic for deciding when to emit a single
atomic store; it's possible that I've lost information here, but
I'm not sure how much of the logic before was intentionally arch-specific
and how much was just not quite consistent.
llvm-svn: 139468
|
|
|
|
| |
llvm-svn: 139466
|
|
|
|
|
|
|
|
|
|
|
| |
the lifetime of the block by copying it to the heap, or else we'll get
a dangling reference because the code working with the non-block-typed
object will not know it needs to copy.
There is some danger here, e.g. with assigning a block literal to an
unsafe variable, but, well, it's an unsafe variable.
llvm-svn: 139451
|
|
|
|
| |
llvm-svn: 139443
|
|
|
|
|
|
|
|
|
| |
than having CodeGen check whether a declaration comes from an AST file
(which it shouldn't know or care about), make sure that the AST writer and
reader pass along "interesting" declarations that CodeGen needs to
know about.
llvm-svn: 139441
|
|
|
|
|
|
|
|
| |
declaration was deserialized from an AST file. Use this instead of
Decl::getPCHLevel() wherever possible. This is a simple step toward
killing off Decl::getPCHLevel().
llvm-svn: 139427
|
|
|
|
| |
llvm-svn: 139424
|
|
|
|
|
|
|
| |
annotate global, local variables, struct fields, or arbitrary statements (using
the __builtin_annotation), rdar://8037476.
llvm-svn: 139423
|
|
|
|
|
|
|
|
| |
along with the new insert point.
Fixes PR10829
llvm-svn: 139416
|
|
|
|
|
|
|
|
| |
feature akin to the ARC runtime checks. Removes a terrible hack where
IR gen needed to find the declarations of those symbols in the translation
unit.
llvm-svn: 139404
|
|
|
|
|
|
|
|
|
| |
instead of codegen waiting to consume such a declaration, which won't
happen if that decls are coming from a PCH.
Fixes rdar://10028656.
llvm-svn: 139359
|
|
|
|
|
|
|
|
| |
than conversions of C pointers to ObjC pointers. In order to ensure that
we've caught every case, add asserts to CastExpr that strictly determine
which cast kind is used for which kind of bit cast.
llvm-svn: 139352
|
|
|
|
| |
llvm-svn: 139296
|
|
|
|
|
|
|
|
|
|
| |
(which will go away). LLVM CodeGen does almost exactly the same thing with these and the old intrinsics, so I'm reasonably confident this will not break anything.
There are still a few issues which need to be resolved with code generation for atomic load and store, so I'm not converting the places which need those for now.
I'm not entirely sure what to do about __builtin_llvm_memory_barrier: the fence instruction doesn't expose all the possibilities which can be expressed by __builtin_llvm_memory_barrier. I would appreciate hearing from anyone who is using this intrinsic.
llvm-svn: 139216
|
|
|
|
|
|
|
|
|
|
| |
to look through SubstNonTypeTemplateParmExprs. Then, update the IR
generation of CallExprs to actually use CallExpr::getCalleeDecl()
rather than attempting to mimick its behavior (badly).
Fixes <rdar://problem/10063539>.
llvm-svn: 139185
|
|
|
|
|
|
| |
exception is thrown constructing the array elements in an array new expression. Fixes PR10870.
llvm-svn: 139158
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
synthesized move assignment within an implicitly-defined move
assignment operator, be sure to treat the derived-to-base cast as an
xvalue (rather than an lvalue). Otherwise, we'll end up getting the
wrong constructor.
Optimize a direct call to a trivial move assignment operator to an
aggregate copy, as we do for trivial copy assignment operators, and
update the the assertion in CodeGenFunction::EmitAggregateCopy() to
cope with this optimization.
Fixes PR10860.
llvm-svn: 139143
|
|
|
|
|
|
| |
// rdar://10033896
llvm-svn: 139041
|
|
|
|
| |
llvm-svn: 139029
|
|
|
|
|
|
| |
// rdar://10033896
llvm-svn: 139020
|
|
|
|
|
|
|
|
| |
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).
llvm-svn: 138985
|
|
|
|
|
|
|
| |
and may very well be dependent-types, triggering an assertion in debug info
codegen.
llvm-svn: 138970
|
|
|
|
|
|
|
|
|
| |
This makes the code duplication of implicit special member handling even worse,
but the cleanup will have to come later. For now, this works.
Follow-up with tests for explicit defaulting and enabling the __has_feature
flag to come.
llvm-svn: 138821
|
|
|
|
|
|
|
| |
apparent general rule. Just special-case it as appropriate.
PR10789.
llvm-svn: 138792
|
|
|
|
|
|
|
| |
Doing this happens to disrupt the pattern that ARC was looking for
for move optimizations, so we need to fix that simultaneously.
llvm-svn: 138789
|
|
|
|
| |
llvm-svn: 138707
|
|
|
|
|
|
| |
emit all gl-value arguments as reference bindings.
llvm-svn: 138655
|
|
|
|
| |
llvm-svn: 138639
|
|
|
|
|
|
| |
better.
llvm-svn: 138628
|
|
|
|
|
|
|
|
|
| |
really shouldn't be optional. Fix the remaining place where a
temporary was being passed as potentially-aliased memory.
Fixes PR10756.
llvm-svn: 138627
|
|
|
|
| |
llvm-svn: 138624
|
|
|
|
| |
llvm-svn: 138615
|