| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
Clang's support for weakref is now better than llvm-gcc's :-)
We don't introduce a new symbol and we correctly mark undefined references weak only if there is no
definition or regular undefined references in the same file.
llvm-svn: 97733
|
|
|
|
|
|
| |
Our testing framework can't deal with disabled targets yet.
llvm-svn: 97719
|
|
|
|
|
|
| |
some builtins will rely on target knowledge.
llvm-svn: 97693
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
command-line option which defaults off.
llvm-svn: 96649
|
|
|
|
|
|
| |
some failure here that I can't.
llvm-svn: 96612
|
|
|
|
|
|
|
|
| |
and destructors when the two entities are semantically identical, i.e. when
the class has no virtual base classes. We only do this for linkage types
for which aliases are supported, i.e. internal and external, i.e. not linkonce.
llvm-svn: 96451
|
|
|
|
|
|
| |
attributes. Fixes PR6245.
llvm-svn: 95474
|
|
|
|
|
|
| |
CGExprConstant. Fixes PR5674.
llvm-svn: 95063
|
|
|
|
| |
llvm-svn: 94938
|
|
|
|
|
|
| |
of LLVM types in character units.
llvm-svn: 94542
|
|
|
|
|
|
| |
constant Objective-C strings.
llvm-svn: 94274
|
|
|
|
|
|
|
|
|
| |
1. Add helper class for sema checks for target attributes
2. Add helper class for codegen of target attributes
As a proof-of-concept - implement msp430's 'interrupt' attribute.
llvm-svn: 93118
|
|
|
|
|
|
|
| |
run-time initialization, and emit run-time initializers aggresively to avoid
ordering issues with deferred globals.
llvm-svn: 92976
|
|
|
|
|
|
|
|
| |
linkage of vtables. Before this, we were emitting RTTI names for
template instantiations with strong external linkage rather than with
weak ODR linkage.
llvm-svn: 92857
|
|
|
|
|
|
| |
virtual function has a body inlined in the class
llvm-svn: 92855
|
|
|
|
| |
llvm-svn: 92420
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
takes a CXXRecordDecl since we were just creating a QualType from it anyway.
llvm-svn: 91590
|
|
|
|
|
|
| |
With this change, we can now compile and link TableGen.
llvm-svn: 91520
|
|
|
|
|
|
| |
CodeGenModule::GetAddrOfRTTI which figures out the right linkage of the RTTI information for the given type and whether it should be defined or not. I will migrate clients over to GetAddrOfRTTI in subsequent commits (with tests).
llvm-svn: 91098
|
|
|
|
|
|
|
| |
generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.
llvm-svn: 90722
|
|
|
|
| |
llvm-svn: 90689
|
|
|
|
| |
llvm-svn: 90684
|
|
|
|
| |
llvm-svn: 90411
|
|
|
|
| |
llvm-svn: 90409
|
|
|
|
| |
llvm-svn: 90401
|
|
|
|
| |
llvm-svn: 90334
|
|
|
|
|
|
|
|
| |
operators, and destructors. Avoids generating declarations/definitions of
trivial constructors/destructors, and makes sure the trivial copy assignment
operator is generated when necessary.
llvm-svn: 89943
|
|
|
|
|
|
| |
for a covariant thunk.
llvm-svn: 89933
|
|
|
|
|
|
| |
adjustment offset. Start using it. General cleanup in Mangle.cpp.
llvm-svn: 89925
|
|
|
|
|
|
| |
generation.
llvm-svn: 89416
|
|
|
|
| |
llvm-svn: 89028
|
|
|
|
| |
llvm-svn: 88823
|
|
|
|
| |
llvm-svn: 87081
|
|
|
|
| |
llvm-svn: 87063
|
|
|
|
|
|
|
|
|
| |
Refine the VTT entries for virtual bases to refer to the complete
object's vtable instead of constructor vtables.
Refine the AddressPoint calculations for VTT entries for virtual bases.
llvm-svn: 87021
|
|
|
|
|
|
| |
Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types.
llvm-svn: 87007
|
|
|
|
|
|
| |
This resolves the layering violation where CodeGen depended on Frontend.
llvm-svn: 86998
|
|
|
|
| |
llvm-svn: 86878
|
|
|
|
|
|
|
|
| |
being generated.
Add the most derived vtable pointer to the VTT.
llvm-svn: 86671
|
|
|
|
|
|
| |
initialization before main. Fixes pr5396.
llvm-svn: 86145
|
|
|
|
| |
llvm-svn: 83928
|
|
|
|
| |
llvm-svn: 83798
|
|
|
|
|
|
| |
keeping state, such as identifiers assigned to anonymous structs as well as scope encoding.
llvm-svn: 83442
|
|
|
|
|
|
| |
used by CGExprConstant.
llvm-svn: 83263
|
|
|
|
|
|
|
|
|
|
| |
The decl wasn't being passed down, which meant that function attributes were not
being set correctly. This is particularly important for ARM, since it wants to
override the calling convention. Instead we would emit the builtin with the
wrong calling convention, and instcombine would come along and merrily shred all
the calls to it. :)
llvm-svn: 81756
|
|
|
|
| |
llvm-svn: 81644
|
|
|
|
|
|
| |
to use, and allow the ABI implementation to override the calling convention.
llvm-svn: 81593
|
|
|
|
| |
llvm-svn: 81585
|