| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
- So much typing, so little gain...
Also, rename the __cxx_global_initialization function just to match llvm-gcc.
llvm-svn: 99039
|
|
|
|
| |
llvm-svn: 99038
|
|
|
|
| |
llvm-svn: 97656
|
|
|
|
|
|
|
| |
__builtin_frob_return_address. The implementations for both are
still trivial in the default case.
llvm-svn: 97638
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the block descriptor field. This field is the ObjC style @encode
signature of the implementation function, and was to this point
conditionally provided in the block literal data structure. That
provisional support is removed.
Additionally, eliminate unused enumerations for the block literal flags field.
The first shipping ABI unconditionally set (1<<29) but this bit is unused
by the runtime, so the second ABI will unconditionally have (1<<30) set so
that the runtime can in fact distinguish whether the additional data is
present or not.
llvm-svn: 96989
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) emit base destructors as aliases to their unique base class destructors
under some careful conditions. This is enabled for the same targets that can
support complete-to-base aliases, i.e. not darwin.
2) Emit non-variadic complete constructors for classes with no virtual bases
as calls to the base constructor. This is enabled on all targets and in
theory can trigger in situations that the alias optimization can't (mostly
involving virtual bases, mostly not yet supported).
These are bundled together because I didn't think it worthwhile to split them,
not because they really need to be.
llvm-svn: 96842
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix some bugs with function-try-blocks and simplify normal try-block
code generation.
This implementation excludes a deleting destructor's call to
operator delete() from the function-try-block, which I believe
is correct but which I can't find straightforward support for at
a moment's glance.
llvm-svn: 96670
|
|
|
|
|
|
| |
change.
llvm-svn: 96564
|
|
|
|
|
|
|
|
| |
repeatedly reloading from an alloca. We still need to create the alloca
for debug info purposes (although we currently create it in all cases
because of some abstraction boundaries that're hard to break down).
llvm-svn: 96403
|
|
|
|
|
|
| |
converted "not-for-memory". Dunno a better name.
llvm-svn: 96374
|
|
|
|
|
|
|
|
|
|
|
|
| |
the offset to the virtual bases statically inside of relying on the virtual
base offsets in the object's vtable(s). This is both more efficient and
sound against the destructor's manipulation of the vtables.
Also extract a few helper routines.
Oh and we seem to pass all tests with an optimized clang now.
llvm-svn: 96327
|
|
|
|
|
|
|
|
|
|
| |
particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing.
- This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome!
PR6240.
llvm-svn: 95648
|
|
|
|
| |
llvm-svn: 95512
|
|
|
|
| |
llvm-svn: 95416
|
|
|
|
|
|
| |
BeginConditionalBranch/EndConditionalBranch.
llvm-svn: 95308
|
|
|
|
|
|
| |
for the reference binding bug that is preventing self-hosting.
llvm-svn: 95223
|
|
|
|
|
|
| |
CGExprConstant. Fixes PR5674.
llvm-svn: 95063
|
|
|
|
|
|
| |
references.
llvm-svn: 94964
|
|
|
|
| |
llvm-svn: 94938
|
|
|
|
|
|
| |
initializing fields (and reference type fields in particular).
llvm-svn: 94799
|
|
|
|
|
|
| |
union or not from the FieldDecl (through its DeclContext).
llvm-svn: 94798
|
|
|
|
| |
llvm-svn: 94571
|
|
|
|
|
|
| |
some cases.
llvm-svn: 94341
|
|
|
|
|
|
|
|
|
|
| |
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate.
Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType,
fromQuantity(), and getQuantity() for clarity.
llvm-svn: 93153
|
|
|
|
|
|
| |
lvalue to poke, no functionality change.
llvm-svn: 93075
|
|
|
|
|
|
|
| |
run-time initialization, and emit run-time initializers aggresively to avoid
ordering issues with deferred globals.
llvm-svn: 92976
|
|
|
|
| |
llvm-svn: 92439
|
|
|
|
| |
llvm-svn: 92420
|
|
|
|
|
|
| |
aren't yet used in the ctors/dtors, but that will follow.
llvm-svn: 92409
|
|
|
|
| |
llvm-svn: 92145
|
|
|
|
|
|
| |
halfway towards fixing PR5824.
llvm-svn: 92142
|
|
|
|
| |
llvm-svn: 92138
|
|
|
|
|
|
| |
the other overload better.
llvm-svn: 92136
|
|
|
|
|
|
|
| |
the constructor. This doesn't handle cases requiring the VTT at the moment,
and generates unnecessary stores, but I think it's essentially correct.
llvm-svn: 91731
|
|
|
|
| |
llvm-svn: 91498
|
|
|
|
|
|
| |
instead of abort to improve codesize and codegen.
llvm-svn: 91374
|
|
|
|
| |
llvm-svn: 91341
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements a new flag -fcatch-undefined-behavior. The flag turns
on additional runtime checks for:
T a[I];
a[i] abort when i < 0 or i >= I.
Future stuff includes shifts by >= bitwidth amounts.
llvm-svn: 91198
|
|
|
|
| |
llvm-svn: 91041
|
|
|
|
| |
llvm-svn: 90998
|
|
|
|
| |
llvm-svn: 90996
|
|
|
|
|
|
| |
(fixes radar 7457534).
llvm-svn: 90995
|
|
|
|
| |
llvm-svn: 90991
|
|
|
|
| |
llvm-svn: 90940
|
|
|
|
|
|
| |
pointer.
llvm-svn: 90840
|
|
|
|
| |
llvm-svn: 90817
|
|
|
|
|
|
| |
to a memset or a memcpy from a global when possible.
llvm-svn: 90658
|
|
|
|
| |
llvm-svn: 90622
|
|
|
|
|
|
|
| |
directly into the sret pointer. This is an optimization in C, but is required
for correctness in C++ for classes with a non-trivial copy constructor.
llvm-svn: 90526
|
|
|
|
| |
llvm-svn: 90411
|