History log of /external/clang/lib/CodeGen/CGCXX.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ef8225444452a1486bd721f3285301fe84643b00 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/CodeGen/CGCXX.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/CodeGen/CGCXX.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/CodeGen/CGCXX.cpp
cc05778672e43c2851849d12200c70e00be5ecd5 25-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195501:
------------------------------------------------------------------------
r195501 | joerg | 2013-11-22 13:34:35 -0800 (Fri, 22 Nov 2013) | 5 lines

Adjust r194296 to not apply the alias replacement for externally
available always-inline functions. This breaks libc++'s locale
implementation. Code generation for this case should be fixed, but this
is a stop gap fix for clang 3.4.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@195615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
dc8e93803de63a938ca42b5de0305e75783e6884 14-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use alias from derived dtor to base dtor at -O0.

This patch disables aliasing (and rauw) of derived dtors to base dtors at -O0.
This optimization can have a negative impact on the debug quality.

This was a latent bug for some time with local classes, but got noticed when it
was generalized and broke gdb's destrprint.exp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c5f4a8c3e36942ddae5dfa396df4e109de7eb555 13-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Drop windows specific handling of equivalent destructors.

Now that the relevant tests use -mconstructor-aliases and the missing
features have been implemented, we can just drop this.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
610616c279681aa195cdf63b6472bc811e7d75a0 12-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Avoid producing mismatched comdats.

The problem was that given

template<typename T>
struct foo {
~foo() {}
};
template class foo<int>;

We would produce a alias, creating a comdat with D0 and D1, since the symbols
have to be weak. Another TU is not required to have a explicit template
instantiation definition or an explict template instantiation declaration and
for

template<typename T>
struct foo {
~foo() {}
};
foo<int> a;

we would produce a comdat with only one symbol in it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
47a2ab904faf4bbf3a97fc7172c549db1c1f3090 11-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix pr17875.

The assert this patch deletes was valid only when aliasing D2 to D1, not when
looking at a base class. Since the assert was in the path where we had already
decided to not produce an alias, just drop it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6e84e92f72f0634cf9f43767444d48dcf99c0121 09-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't emit an internal destructor that is identical to an external one.

It is not safe to emit alias to undefined (not supported by ELF or COFF), but
it is safe to rauw when the alias would have been internal or linkonce_odr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1b9c0248527cb13638c80939c4029ba1197d7599 09-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Use rauw for all discardable aliases, not just linkonce_odr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0171c6b348815df326a063c7e78eb81b7347fa25 08-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> If a linkonce_odr dtor/ctor is identical to another one, just rauw.

Unlike an alias a rauw is always safe, so we don't need to avoid this
optimization when the replacement is not know to be available in every TU.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e6d509f2e09698df4e334b77596ca40e4899b2e4 06-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix the -cxx-abi microsoft -mconstructor-aliases combination.

On the microsoft ABI clang is producing one weak_odr and one linkonce_odr
destructor, which is reasonable since only one is required.

The fix is simply to move the assert past the special case treatment of
linkonce_odr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
61a0a7519ee0d26334d30a001501b8c443d36975 05-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Produce direct calls instead of alias to linkonce_odr functions.

This is a small optimization on linux, but should help more on windows
where msvc only outputs one destructor if there would be two identical ones.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5f0db587078b5af32fc9ac41fe4276b80918fd8d 05-Nov-2013 Timur Iskhodzhanov <timurrrr@google.com> Fix vbtable indices when a class shares the vbptr with a non-virtual base

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
583f6de423aa42c8a4894cc64e72036484e6343b 05-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert "Produce direct calls instead of alias to linkonce_odr functions."

This reverts commit r194046.
Debugging a bootstrap issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0f0f6f1d2994b6da9c347ffb9740c4eea81ff6bc 05-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Produce direct calls instead of alias to linkonce_odr functions.

This is a small optimization on linux, but should help more on windows
where msvc only outputs one destructor if there would be two identical ones.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
71fdc127d21bb138b4bbc2b2ce1db460715271f1 04-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Use aliases for more constructors and destructors.

With this patch we produce alias for cases like

template<typename T>
struct foobar {
foobar() {
}
};
template struct foobar<void>;

We just have to be careful to produce the same aliases in every TU because
of comdats.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
dbd0900ac3de45ac86fe87453a946096f2f8ef2b 10-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert "Use aliases for more constructors and destructors."

This reverts commit r192300.

The change itself looks correct, but it found issues on how we handle aliases
in llvm.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5720858b1b0dec103022ef1c6c39eacf9be0435f 09-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Use aliases for more constructors and destructors.

With this patch we produce alias for cases like

template<typename T>
struct foobar {
foobar() {
}
};
template struct foobar<void>;

It is safe to use aliases to weak symbols, as long and the alias itself is also
weak.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a53d7a0259ff88f78ba8ecac7d0cb3ea96302b1d 27-Sep-2013 Timur Iskhodzhanov <timurrrr@google.com> Abstract out the emission of vtables, add basic support for vtable emission when using -cxx-abi microsoft

Reviewed at http://llvm-reviews.chandlerc.com/D1532

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8f189a9911a992a5c4118c3789485a85bd96e045 21-Aug-2013 Timur Iskhodzhanov <timurrrr@google.com> Abstract out virtual calls and virtual function prologue code generation; implement them for -cxx-abi microsoft

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bb1b797d2e432293563747bd9704b22cf0787061 04-Aug-2013 Timur Iskhodzhanov <timurrrr@google.com> Emit the constructor for abstract classes when using -cxx-abi microsoft, fixes PR16735

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a4130baad9d10b7feabb7e003da53424e986d269 22-Jul-2013 Reid Kleckner <reid@kleckner.net> [ms-cxxabi] Emit linkonce complete dtors in TUs that need them

Based on Peter Collingbourne's destructor patches.

Prior to this change, clang was considering ?1 to be the complete
destructor and the base destructor, which was wrong. This lead to
crashes when clang tried to emit two LLVM functions with the same name.

In this ABI, TUs with non-inline dtors might not emit a complete
destructor. They are emitted as inline thunks in TUs that need them,
and they always delegate to the base dtors of the complete class and its
virtual bases. This change uses the DeferredDecls machinery to emit
complete dtors as needed.

Currently in clang try body destructors can catch exceptions thrown by
virtual base destructors. In the Microsoft C++ ABI, clang may not have
the destructor definition, in which case clang won't wrap the virtual
virtual base destructor calls in a try-catch. Diagnosing this in user
code is TODO.

Finally, for classes that don't use virtual inheritance, MSVC always
calls the base destructor (?1) directly. This is a useful code size
optimization that avoids emitting lots of extra thunks or aliases.
Implementing it also means our existing tests continue to pass, and is
consistent with MSVC's output.

We can do the same for Itanium by tweaking GetAddrOfCXXDestructor, but
it will require further testing.

Reviewers: rjmccall

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1066

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6e007f9fa0b9ebe5898025010c5ebc7d82decfa7 19-Jul-2013 Timur Iskhodzhanov <timurrrr@google.com> Simplify the CodeGenFunction::Build*Virtual*Call family of functions

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
144a31f53b0a97a2c46bfcb1e2a40fa8327b8e89 05-Jun-2013 Peter Collingbourne <peter@pcc.me.uk> [ms-cxxabi] Thread GlobalDecls through to CodeGenModule::getFunctionLinkage.

This is so that we can give destructor variants different linkage later.

Differential Revision: http://llvm-reviews.chandlerc.com/D819

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1d4fff5551c2347010b955b4337a2aa7d65a050e 27-Feb-2013 Timur Iskhodzhanov <timurrrr@google.com> Better support for constructors with -cxx-abi microsoft, partly fixes PR12784

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
uncovered.

This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.

I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d4f5198ae07d9a4958d8191bac694ded12173ad9 04-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove get(V)BaseClassOffsetInBits, the CharUnit functions should be used instead.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
262bc18e32500558af7cb0afa205b34bd37bafed 30-Apr-2012 David Blaikie <dblaikie@gmail.com> Remove the ref/value inconsistency in filter_decl_iterator.

filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
making it difficult to generalize this filtering behavior into a reusable
library of any kind.

This change errs on the side of value, making op-> return T* and op* return
T&.

(reviewed by Richard Smith)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
de5d3c717684f3821b8db58037bc7140acf134aa 17-Feb-2012 John McCall <rjmccall@apple.com> Whether an argument is required (in contrast with being an
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e09cdf46aa2b86c24e6bf7a7ead2eaded964f2ff 26-Sep-2011 Peter Collingbourne <peter@pcc.me.uk> Move all vtable layout data into new VTableLayout class

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
84fcc48817bb04c7de1acafcaa1f54ee3235a97b 26-Sep-2011 Peter Collingbourne <peter@pcc.me.uk> Move vtable component accessors to VTableContext

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1d2b31710539d705a3850c9fc3aa1804c2a5efee 26-Sep-2011 Peter Collingbourne <peter@pcc.me.uk> Create a VTableContext class and start moving CodeGenVTables methods to it

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3e23d68e2e642db107b78aac2bb27585ed0ef337 27-Jul-2011 Douglas Gregor <dgregor@apple.com> Disable the optimization that skips emission of complete, non-virtual
destructors of abstract classes. It's undefined behavior to actually
call the destructor (e.g., via delete), but the presence of code that
calls this destructor doesn't make the program
ill-formed. Fixes <rdar://problem/9819242>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5f9e272e632e951b1efe824cd16acb4d96077930 23-Jul-2011 Chris Lattner <sabre@nondot.org> remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2acc6e3feda5e4f7d9009bdcf8b1cd777fecfe2d 18-Jul-2011 Chris Lattner <sabre@nondot.org> de-constify llvm::Type, patch by David Blaikie!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
492bafc66bdd22128327aab11804db476688b44e 17-May-2011 John McCall <rjmccall@apple.com> Revert r131434, my commit disabling the complete-object constructor
optimization for abstract classes; there was a misunderstanding, and
it turns out that there are no kexts which rely on this.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3217395e88e661e2a1c2b7eecb59629f67945b41 17-May-2011 John McCall <rjmccall@apple.com> Emit complete-object constructors for abstract classes in kext mode for
reasons that honestly really, really need to be looked into.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ffb945ffb5d29b80fd93649c3572b6d87abce3fc 15-May-2011 Anders Carlsson <andersca@mac.com> When emitting the destructor for a class with a vtable, if we can determine
that the destructor body is trivial and that all member variables also have either
trivial destructors or trivial destructor bodies, we don't need to initialize the
vtable pointers since no virtual member functions will be called on the destructor.

Fixes PR9181.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8e0397a39eaf9db83cbd9a3a459893fd12a3a05e 08-May-2011 Anders Carlsson <andersca@mac.com> Don't emit complete constructors for abstract classes. Also, don't emit
complete destructors for abstract classes unless the destructor is virtual
and thus needs to be in the vtable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4230d529a8797bbeef2328b60abeae333f7e143f 24-Mar-2011 Ken Dyck <kd@kendyck.com> Convert the BaseOffset member of BaseSubobject to CharUnits from bits. No
change in functionality intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1f6f961293da9c2b1c23da2411c1b439a9502ed0 09-Mar-2011 John McCall <rjmccall@apple.com> Fix three of the four places where I left breadcrumbs to avoid unnecessary
recomputation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d26bc76c98006609002d9930f8840490e88ac5b5 09-Mar-2011 John McCall <rjmccall@apple.com> Use the "undergoes default argument promotion" bit on parameters to
simplify the logic of initializing function parameters so that we don't need
both a variable declaration and a type in FunctionArgList. This also means
that we need to propagate the CGFunctionInfo down in a lot of places rather
than recalculating it from the FAL. There's more we can do to eliminate
redundancy here, and I've left FIXMEs behind to do it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0d70d71ccbc4f7f59cadb759f61b7172a149676c 13-Feb-2011 John McCall <rjmccall@apple.com> Look through array types when deciding whether a field requires non-trivial
destruction in the destructor-aliases logic. Fixes PR 9197.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d16c2cf1cafa413709aa487cbbd5dc392f1ba1ff 08-Feb-2011 John McCall <rjmccall@apple.com> Reorganize CodeGen{Function,Module} to eliminate the unfortunate
Block{Function,Module} base class. Minor other refactorings.

Fixed a few address-space bugs while I was there.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1faa89f9c619e4b2411fab4af7e22ee7a2bd9009 05-Feb-2011 Anders Carlsson <andersca@mac.com> Re-land r124768, with a fix for PR9130.

We now emit everything except unused implicit virtual member functions when building the vtable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
771c678c04f5f685b4f188ec6c2fd88ad0f7457f 03-Feb-2011 Fariborz Jahanian <fjahanian@apple.com> Clean up of -fapple-kext abi code. No change otherwise.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
01de7a44cea9f77cbcda65faad8edc8b48a3b617 03-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Revert 124768.
This reopens PR99114, but that one at least can be avoided with an #include.
PR9130 cannot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
aedd9d5ad3cc776fd61457050bcd54cac4c5ea66 03-Feb-2011 Anders Carlsson <andersca@mac.com> Don't try to mark virtual members referenced for classes where the key function
is not defined in the current translation unit. Doing so lead to compile errors
such as PR9114.

Instead, when CodeGen is building the vtable, don't try to emit a definition
for functions that aren't marked used in the current translation unit.
Fixes PR9114.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ccd5259d33cbbdd6f5fbf7ccab4cb4a2702309ea 02-Feb-2011 Fariborz Jahanian <fjahanian@apple.com> -fapple-kext support for indirect call to virtuals dtors - wip.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a50e33eb0ff7b73d44aebce88de3732583a7e960 29-Jan-2011 Fariborz Jahanian <fjahanian@apple.com> More work to support -fapple-kext regarding
indirect vf calls and addition of extra entry
at bottom of vtbls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2726267f094a0c1f5ac5b501ec5a9898c58876bf 20-Jan-2011 Fariborz Jahanian <fjahanian@apple.com> apple kext abi requires all vf calls, including qualified
vf calls, be made indirect. This patch is towards that goal.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
14110477887e3dc168ffc6c191e72d705051f99e 13-Jan-2011 Peter Collingbourne <peter@pcc.me.uk> Move name mangling support from CodeGen to AST. In the
process, perform a number of refactorings:

- Move MiscNameMangler member functions to MangleContext
- Remove GlobalDecl dependency from MangleContext
- Make MangleContext abstract and move Itanium/Microsoft functionality
to their own classes/files
- Implement ASTContext::createMangleContext and have CodeGen use it

No (intended) functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
83eedd9fa800c273647c7a90465ea9c110f9d93c 28-Nov-2010 Anders Carlsson <andersca@mac.com> BuildVirtualCall doesn't need to take a reference to a pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ee7cde2f391cc7c533c919848da09db715cd0a93 28-Nov-2010 Anders Carlsson <andersca@mac.com> Move CGCXXABI functions to CGCXXABI.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3030eb82593097502469a8b3fc26112c79c75605 06-Nov-2010 John McCall <rjmccall@apple.com> Simplify the logic for emitting guard variables for template static
data members by delaying the emission of the initializer until after
linkage and visibility have been set on the global. Also, don't
emit a guard unless the variable actually ends up with vague linkage,
and don't use thread-safe statics in any case.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a14f5979572aa25c03d24750ee4724d2031d4ede 01-Nov-2010 Anders Carlsson <andersca@mac.com> Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
043fb9a1fc0609285f60f0f87e5a18195408f34c 26-Oct-2010 Dan Gohman <gohman@apple.com> Factor out the code for emitting code to load vtable pointer members
so that it's done in one place.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1fb0caaa7bef765b85972274e3b434af2572c141 22-Oct-2010 John McCall <rjmccall@apple.com> Substantially revise how clang computes the visibility of a declaration to
more closely parallel the computation of linkage. This gets us to a state
much closer to what gcc emits, modulo bugs, which will undoubtedly arise in
abundance.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
daaf1de7c5f975b77798c551aaefeb36349e5ca7 04-Oct-2010 Devang Patel <dpatel@apple.com> Fix filename in header comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5cd91b513455fd7753e8815b54f0a49bbca6602d 08-Sep-2010 John McCall <rjmccall@apple.com> Implement ARM static local initialization guards, which are more compact than
Itanium guards and use a slightly different compiled-in API.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1e7fe751466ea82665fd21e9162fd7cc9c5f412d 02-Sep-2010 John McCall <rjmccall@apple.com> Abstract IR generation of array cookies into the C++ ABI class and
implement ARM array cookies. Also fix a few unfortunate bugs:
- throwing dtors in deletes prevented the allocation from being deleted
- adding the cookie to the new[] size was not being considered for
overflow (and, more seriously, was screwing up the earlier checks)
- deleting an array via a pointer to array of class type was not
causing any destructors to be run and was passing the unadjusted
pointer to the deallocator
- lots of address-space problems, in case anyone wants to support
free store in a variant address space :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6c2ab1d578c6cc1f3ddcc948532cd625f1092ef2 31-Aug-2010 John McCall <rjmccall@apple.com> Amusingly, I missed this point of abstraction in all my earlier
member-pointer refactoring: dereferencing a member data pointer.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4c40d98ab7acf5f27fa89b17bd8fc0ef7683df37 31-Aug-2010 John McCall <rjmccall@apple.com> Teach IR generation to return 'this' from constructors and destructors
under the ARM ABI.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0bab0cdab751248ca389a5592bcb70eac5d39260 23-Aug-2010 John McCall <rjmccall@apple.com> Abstract out everything having to do with member pointers into the ABI
class; they should just be completely opaque throughout IR gen now,
although I haven't really audited that.

Fix a bug apparently inherited from gcc-4.2 where we failed to null-check
member data pointers when performing derived-to-base or base-to-derived
conversions on them.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f16aa103d3afd42fbca2ab346f191bf745cec092 22-Aug-2010 John McCall <rjmccall@apple.com> Go back to asking CodeGenTypes whether a type is zero-initializable.
Make CGT defer to the ABI on all member pointer types.
This requires giving CGT a handle to the ABI.
It's way easier to make that work if we avoid lazily creating the ABI.
Make it so.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d608cdb7c044365cf4e8764ade1e11e99c176078 22-Aug-2010 John McCall <rjmccall@apple.com> Experiment with using first-class aggregates to represent member function
pointers. I find the resulting code to be substantially cleaner, and it
makes it very easy to use the same APIs for data member pointers (which I have
conscientiously avoided here), and it avoids a plethora of potential
inefficiencies due to excessive memory copying, but we'll have to see if it
actually works.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e9fd7eb6c67676dc27e84eac429aec4f3be51f26 22-Aug-2010 John McCall <rjmccall@apple.com> Extract member function pointer comparison and null comparison into
the ABI code. Implement correct semantics for these on ARM.

I believe this completes the implementation of member function pointers
on ARM.

I think I'm going to switch member function pointers over to be
non-aggregates while I have all this in mind.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
875ab10245d3bf37252dd822aa1616bb0a391095 22-Aug-2010 John McCall <rjmccall@apple.com> Abstract out member-pointer creation. I'm really unhappy about the current
duplication between the constant and non-constant paths in all of this.

Implement ARM ABI semantics for member pointer constants and conversion.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
cf2c85e76fdafe7e634810a292321a6c8322483d 22-Aug-2010 John McCall <rjmccall@apple.com> Abstract more member-pointerness out.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3023def6bea3af6dbb51eea51f8cb8ea892d26cf 22-Aug-2010 John McCall <rjmccall@apple.com> Abstract out member-pointer conversions.

Pretty much everything having to do with member pointers is ABI-specific.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
93d557bc1867b7d7b102f87290194b4be7932c92 22-Aug-2010 John McCall <rjmccall@apple.com> Extract calls to method pointers out as an ABI routine.
No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
071cc7deffad608165b1ddd5263e8bf181861520 16-Aug-2010 Charles Davis <cdavis@mines.edu> Implement support for member pointers under the Microsoft C++ ABI in the
AST library.

This also adds infrastructure for supporting multiple C++ ABIs in the AST.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
06a54a38be5054c910ffc92db60edab23f9ea105 07-Jul-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce Decl::hasBody() and FunctionDecl::hasBody() and use them instead of getBody() when we are just checking the existence of a body, to avoid de-serialization of the body from PCH.

Makes de-serialization of the function body even more "lazier".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1d110e05e0ff48c1c7a483d6b7fd094cdf28316a 01-Jul-2010 Douglas Gregor <dgregor@apple.com> Remove unnecessary ASTContext parameter from
CXXRecordDecl::getDestructor(); no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9a20d55807cc2f6534a9c51a46cc8143ed16786d 22-Jun-2010 Anders Carlsson <andersca@mac.com> Switch over to the new caching version of getMangledName.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
06057cef0bcd7804e80f3ce2bbe352178396c715 16-Jun-2010 Chandler Carruth <chandlerc@gmail.com> Move CodeGenOptions.h *back* into Frontend. This should have been done when the
dependency edge was reversed such that CodeGen depends on Frontend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9a8822bb154b792cdb18fe4cfb34480ca0ec7661 09-Jun-2010 Anders Carlsson <andersca@mac.com> Get rid of getMangledCXXCtorName and getMangledCXXDtorName.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
dc709a8aea1072f11080f3a9519fd253582bf973 09-Jun-2010 Anders Carlsson <andersca@mac.com> More mangling cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c00129a08c829bb34f22dc13727043c994c85644 30-May-2010 Eli Friedman <eli.friedman@gmail.com> Fix for PR7040: Don't try to compute the LLVM type for a function where it
isn't possible to compute.

This patch is mostly refactoring; the key change is the addition of the code
starting with the comment, "Check whether the function has a computable LLVM
signature." The solution here is essentially the same as the way the
vtable code handles such functions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3a811f1f4286ee3fd0c563c1cfe623956f3caa24 25-May-2010 Charles Davis <cdavis@mines.edu> IRgen: Add a stub class for generating ABI-specific C++ code.

This class only supports name mangling (which is apparently used during C/ObjC
codegen). For now only the Itanium C++ ABI is supported. Patches to add a
second C++ ABI are forthcoming.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
35415f5132f70ad5097a3514ab84251e10db3664 25-May-2010 Douglas Gregor <dgregor@apple.com> Improve name mangling for blocks and support mangling of static local
variables within blocks. We loosely follow GCC's mangling, but since
these are always internal symbols the names don't really matter. I
intend to revisit block mangling later, because GCC's mangling is
rather verbose. <rdar://problem/8015719>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8b2423361648c39a7d8a3c5e8129e12006deac32 25-May-2010 John McCall <rjmccall@apple.com> If a function definition has any sort of weak linkage, its static local
variables should have that linkage. Otherwise, its static local
variables should have internal linkage. To avoid computing this excessively,
set a function's linkage before we emit code for it.

Previously we were assigning weak linkage to the static variables of
static inline functions in C++, with predictably terrible results. This
fixes that and also gives better linkage than 'weak' when merging is required.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
046c294a43024874ff35656c6e785b64e72f1f36 17-Apr-2010 Anders Carlsson <andersca@mac.com> Vtable -> VTable renames across the board.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bfb7a1d6eba6714bd71db921092332da65b774c0 30-Mar-2010 Anders Carlsson <andersca@mac.com> Remove the old vtable layout code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f532f3b4a642ad5d9704c4a1d17b61cc52ab2f65 24-Mar-2010 Anders Carlsson <andersca@mac.com> Remove old thunks code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
02e245942f3808bfbba5fbd25af9690682cc800d 23-Mar-2010 Anders Carlsson <andersca@mac.com> Use the canonical destructor, which fixes the self-host build. Thanks to Eli for noticing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7270ee4cd4794281c09dfb6931a98bbb2581ef02 23-Mar-2010 Anders Carlsson <andersca@mac.com> Always emit associated thunks when emitting the function itself. Remove getVtableAddressPoint, it's not used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
af4403545a50a60d208e6fcae057308d576a92e0 23-Mar-2010 Anders Carlsson <andersca@mac.com> Rename CGVtableInfo to CodeGenVTables in preparation of adding another VTableInfo class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f746aa6a8f538be914173a4aef2d9a2fd9f99d17 20-Mar-2010 John McCall <rjmccall@apple.com> Change CodeGenModule to rely on the Module's symbol table instead of
shadowing it in the GlobalDeclMap. Eliminates the string-uniquing
requirement for mangled names, which should help C++ codegen times a little.
Forces us to do string lookups instead of pointer lookups, which might hurt
codegen times a little across the board. We'll see how it plays out.

Removing the string-uniquing requirement implicitly fixes any bugs like
PR6635 which arose from the fact that we had multiple uniquing tables for
different kinds of identifiers.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3c15745b4baaa0c075418cfbe9f1be19c3a59c45 06-Mar-2010 Rafael Espindola <rafael.espindola@gmail.com> Use static method in GlobalValue


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bc6afd158cc67b5f87dcc2d8efe2a2254af8debe 05-Mar-2010 Rafael Espindola <rafael.espindola@gmail.com> Don't produce an alias for a destructor if the target is weak.

This fixes bootstrap on ELF systems :-)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9a70846c5ffd5ff5cce60de49cd7b312146bf502 03-Mar-2010 John McCall <rjmccall@apple.com> Don't emit derived-to-base destructor aliases if we don't have a definition
for the base destructor, because aliases to declarations aren't legal.

Fixes PR 6471.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1962beee04d3635b12cf6254a53b40ec6c50098d 24-Feb-2010 John McCall <rjmccall@apple.com> Fix an iterator-invalidation bug that was causing selfhost errors
on non-darwin platforms. Fixes PR6411. Test case doesn't reduce,
unfortunately.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c0bf462cf35fe050bddbd8bff967298e4a67e79d 23-Feb-2010 John McCall <rjmccall@apple.com> Perform two more constructor/destructor code-size optimizations:

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.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d46f98573ba104eda102dd3224b2dca69f1c6336 19-Feb-2010 John McCall <rjmccall@apple.com> Re-introduce the ctor/dtor alias optimization, this time hidden behind a
command-line option which defaults off.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8e51a1f5da6ef4a1a168d14116c6eed3a578a263 18-Feb-2010 John McCall <rjmccall@apple.com> Revert the ctor/dtor alias optimization for now; the buildbots can detect
some failure here that I can't.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
92ac9ffecd236a6be0d6ab30cef56100e56b171c 17-Feb-2010 John McCall <rjmccall@apple.com> Emit complete constructors and destructors as aliases to base constructors
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.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2504941793b549323f9d29c62507cf21d865fade 16-Feb-2010 John McCall <rjmccall@apple.com> IRgen optimization: cache the value of 'this' and 'vtt' instead of
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).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
04a67a6aa3dfdc92d57f7f8d93ba397348c868a4 05-Feb-2010 John McCall <rjmccall@apple.com> Standardize the parsing of function type attributes in a way that
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applied to the function
instead, etc. Only parse CC attributes as type attributes, not as decl attributes;
don't accepet noreturn as a decl attribute on ValueDecls, either (it still
needs to apply to other decls, like blocks). Consistently consume CC/noreturn
information throughout codegen; enforce this by removing their default values
in CodeGenTypes::getFunctionInfo().



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3b5ad2283c999f6edf7d42332a655447b7386b2e 01-Jan-2010 Anders Carlsson <andersca@mac.com> Move a few more functions away from CGCXX and to CGClass and CGExprCXX.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8f5d7404da36f689b0005fc0fb5bba398c3919a9 27-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Add a sanity assertion so that we don't silently generate bad code; I'll file
a bug with a testcase hitting this assertion in a moment.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a6f98fb644c4e37a880c497ad999a36c7b62e934 27-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Fix obvious mistake.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
cb48f8a60ad26b56d299cca9a57f8ea683d8a909 25-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Make copy constructor elimination work in more cases; the case in question
here affects clang-on-clang.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
607d037c3f4376cbc8979d0eb9cd2f49a58ea033 24-Dec-2009 Anders Carlsson <andersca@mac.com> Move a bunch of class related functions to CGClass.cpp, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a1736c0c750d4514a5d8fda36670addf1e4de54a 24-Dec-2009 Anders Carlsson <andersca@mac.com> Pass the return value slot to all call exprs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d2490a91341b57df7a7e54f8a707e7ecde2eeb4e 24-Dec-2009 Anders Carlsson <andersca@mac.com> Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us halfway towards fixing PR5824.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f3c47c9525153aea2de0ec4bd615b9cf2d81c103 24-Dec-2009 Anders Carlsson <andersca@mac.com> Pass ReturnValueSlot to EmitCall. No functionality change yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
31777a2540879051a3c643b90e02c3fd3d315243 24-Dec-2009 Anders Carlsson <andersca@mac.com> Add a ReturnValueSlot class. Change the argument order in EmitCall to match the other overload better.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9e9199d8649cf3e10c98a69403f05dbb666d8fb1 22-Dec-2009 Douglas Gregor <dgregor@apple.com> Eliminate the ASTContext argument to CXXConstructorDecl::isCopyConstructor, since the context is available in the Decl

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e12e77bed10f87bdc7305d0dbd1de89e48f280c1 19-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Work in progress for setting the vtable pointers for all bases correctly in
the constructor. This doesn't handle cases requiring the VTT at the moment,
and generates unnecessary stores, but I think it's essentially correct.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
edd63718cce8eb3893a924b0b7d27e96b46001ad 19-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR5830: fix the computation of the offset to a virtual base.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5617bc03e2e886aafe8bdcecf0fcdeab5f3868c6 18-Dec-2009 Anders Carlsson <andersca@mac.com> CK_UserDefinedConversion is a valid kind when doing copy ctor elision.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9657c443688998dc84915e841a10509017b209db 18-Dec-2009 Douglas Gregor <dgregor@apple.com> Address some of Anders comments

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
18ef5e28a9a2677f8b1dce1fb2638d66e0a1621f 18-Dec-2009 Douglas Gregor <dgregor@apple.com> Switch the initialization required by return statements over to the
new InitializationSequence. This fixes some bugs (e.g., PR5808),
changed some diagnostics, and caused more churn than expected. What's
new:

- InitializationSequence now has a "C conversion sequence" category
and step kind, which falls back to
- Changed the diagnostics for returns to always have the result type
of the function first and the type of the expression second.
CheckSingleAssignmentConstraints to peform checking in C.
- Improved ASTs for initialization of return values. The ASTs now
capture all of the temporaries we need to create, but
intentionally do not bind the tempoary that is actually returned,
so that it won't get destroyed twice.
- Make sure to perform an (elidable!) copy of the class object that
is returned from a class.
- Fix copy elision in CodeGen to properly see through the
subexpressions that occur with elidable copies.
- Give "new" its own entity kind; as with return values and thrown
objects, we don't bind the expression so we don't call a
destructor for it.

Note that, with this patch, I've broken returning move-only types in
C++0x. We'll fix it later, when we tackle NRVO.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
16006c901315fa12a108b4e571f187f4b676e426 16-Dec-2009 Douglas Gregor <dgregor@apple.com> When value-initializing a class with no user-defined constructors but
with a non-trivial default constructor, zero-initialize the storage
and then call the default constructor. Fixes PR5800.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
624c7d704dc9f1dbb5dd3e5a0ef7eacfb3b699e2 15-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Don't force the emission of destructor definitions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
871d078f5ae5505553c02deeabdd4b83b4820211 13-Dec-2009 Anders Carlsson <andersca@mac.com> More array cookie improvements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8d04258483be6583f0865464234d014807a3e1cc 11-Dec-2009 Benjamin Kramer <benny.kra@googlemail.com> Random string-related cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
940670512d7c3d93389bb38a426abcb7ef44271e 10-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Get rid of static variable.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
eb4072ed06c884f1053047ad88846cbffd5ac62e 10-Dec-2009 Anders Carlsson <andersca@mac.com> Move more decl related functions to CGDeclCXX.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5b 10-Dec-2009 Anders Carlsson <andersca@mac.com> Add CGDeclCXX.cpp and move EmitCXXGlobalVarDeclInit there.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c83ebb592a7c2f7d66969fdfda06b9390b02034c 10-Dec-2009 Mike Stump <mrs@apple.com> Fix spacing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ceb9bb3038c830f446bd761568e724fa9c0e0d69 08-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Build fix.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
77a259c6dbf582949af8a243b472c0c7faa373a6 08-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR5707: make sure implicit copy constructors initialize the vtable
pointer.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c4451dbb4fd3858a3ee7354fcca4ab452192ddb4 08-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Fix some direct checks of expressions which might be surrounded by parentheses.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ebc3317c66638a05a089abb348877b9b823f52b0 08-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Make copy assignment operator synthesis not explode for classes with complex
or non-record aggregate members.

It might be worth spending some time to optimize this code (and the parallel
code for copy constructors) to memcpy in larger chunks, rather than copying
one member at a time. Not sure exactly how beneficial that would be, but
it seems like could help for large classes with, for example, a vtable pointer
forcing the generation of a copy constructor.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b455f0e74be0144ab9738ef574d07bd661959525 08-Dec-2009 Eli Friedman <eli.friedman@gmail.com> A bunch more thunk fixes from misc testing.

(Yes, I do intend to commit some tests for this.)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
72649ed78a25365d003b5218cae7b332c418800e 06-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Work-in-progess rewrite of thunks: move thunk generation outside of vtable
generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bb27d868ac3ca429bfe0f52c5f091f849368fff8 05-Dec-2009 Anders Carlsson <andersca@mac.com> CodeGenModule::GenerateVtable now returns a pointer directly to the vtable and not to the address point.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9428b67b065816247b50d438948841fe0521fc08 05-Dec-2009 Anders Carlsson <andersca@mac.com> Simplify some code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
fd12649cd54074ca9efa0774a7812e330619d198 04-Dec-2009 Anders Carlsson <andersca@mac.com> When generating a virtual destructor, don't try to make a virtual call to the base class destructor because then we'll just re-enter the same destructor!

This was done to fix PR5619, so I went ahead and passed a dummy VTT pointer for now.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6804fa27eb17567f8a783f92ab8c768ca0b561ba 03-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Fix thunk generation for thunks with a parameter with reference type.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
35c98cc4c00efcfe47ad0b716e7c50afb9c5ff75 03-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Minor cleanup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
919d5e51fd0a1b6e52028c8aa42edf44ee036954 03-Dec-2009 Mike Stump <mrs@apple.com> Add support for thunking dtors. Oh why does this make my head hurt?


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
affe67eae3790c08aba524617d0a68ad618034ac 02-Dec-2009 Fariborz Jahanian <fjahanian@apple.com> Added an assert.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ba2253f234d27d3ecc5b2b88e9cd9198658eb312 30-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> More support for virtual destructor calls.
Fixes pr5619


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7fda03b2543bd4ec7421058088aea2242885e1f9 29-Nov-2009 Daniel Dunbar <daniel@zuster.org> Don't pass false (default) for isVolatile parameter to CreateStore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d6b07fb9ca2c3207773de1d8e305f99076598a2e 27-Nov-2009 Anders Carlsson <andersca@mac.com> Don't build the entire vtable when all we want is the index of a virtual method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c16668acc904bec0ee20f6bfc2a72d6a3821a589 27-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR5594: use EmitGlobalDefinition instead of EmitCXXDestructor so that
we check whether the vtable needs to be generated.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
552a43b2977493c2e5daf5331fba90ed966d9c8e 26-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Remove unused variable.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ae32e2459edad5cd13384c70a726d7ecb78c9b5c 26-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Shortcut explicit calls to a trivial copy assignment operator.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
15233e5a4d98b66b3c6cfcc4e6413ad776a79481 26-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Simplify and fix up the handling of implicit constructors, copy assignment
operators, and destructors. Avoids generating declarations/definitions of
trivial constructors/destructors, and makes sure the trivial copy assignment
operator is generated when necessary.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7622cd3410846d28862ecfe862117894a259a7fa 26-Nov-2009 Anders Carlsson <andersca@mac.com> Add a CovariantThunkAdjustment struct that represents the adjustments needed for a covariant thunk.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b73a5be8a85f1823c6e63f85dafaca413d6de40c 26-Nov-2009 Anders Carlsson <andersca@mac.com> Move the mangler into the CodeGen namespace. Change mangleThunk to take a ThunkAdjustment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a94822e8937eeb340a653b88024f805a07a2d2ee 26-Nov-2009 Anders Carlsson <andersca@mac.com> Add a ThunkAdjustment struct which holds a non-virtual and a virtual adjustment offset. Start using it. General cleanup in Mangle.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f6c56e2323c3f973253805a2f35629f3253ebed4 25-Nov-2009 Anders Carlsson <andersca@mac.com> Add VTT parameter to base ctors/dtors with virtual bases. (They aren't used yet).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e9cbf15b2ebedebc8bb8e162bb5cf25abd70f578 24-Nov-2009 Anders Carlsson <andersca@mac.com> Handle references correctly when synthesizing copy constructors.

With this change, the clang-on-clang test result is now

Expected Passes : 224
Unexpected Failures: 37

Which means that we can compile over 80% of clang with clang! :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5d4d946ec2d88696fd8422aeb64dc29688e6a2c1 24-Nov-2009 Anders Carlsson <andersca@mac.com> Handle cases where we're constructing an array of objects and the constructor has default arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a3697c9c155bda93fd2802f37084b620f4738822 23-Nov-2009 Anders Carlsson <andersca@mac.com> Handle base-to-derived casts. Will land test case shortly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
94fd26de3ae77f29496ca22d5276b2fb71b2311d 21-Nov-2009 Daniel Dunbar <daniel@zuster.org> IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into,
instead of requiring clients to make a raw_svector_ostream, which is just an
implementation detail.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1b0771170921b9e752a50ea2cf87814bff92c834 21-Nov-2009 Daniel Dunbar <daniel@zuster.org> Sink free mangle* methods into MangleContext.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2bf701ee4babb5c4a9ea99ca4675c5ef040bd402 21-Nov-2009 Mike Stump <mrs@apple.com> Checkpoint current work. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6d60ca9c5015a7e7eceab31bed24425aeb47db67 18-Nov-2009 Mike Stump <mrs@apple.com> Reflow to fit 80-col.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5fe05986473c4ff780508dec4cd2cf4822168125 18-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Refactor emitting call to delete operator into common function EmitDeleteCall.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9f853df0d3c25c646907a7b7ef22398370def00f 17-Nov-2009 Anders Carlsson <andersca@mac.com> Unify the way destructor epilogues are generated for synthesized and regular destructors. Also fix PR5529.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4d26b43f7c6fc9d2974da7e7389337fe32dc29d0 17-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Fix up EmitMemberInitializer to handle many more cases.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ebf5065440d880089284c65e0c23745e6ff394f9 17-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Reorganize EmitMemberInitializer to put anonymous unions on the common codepath.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1db5345eec54f8c57d4d448e490715025cb9b9bb 16-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Make member initializers for union members work correctly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6d10ac9ef3435993d0ceae7782fbeee7659af30e 16-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Implement a few more cases for copy constructor synthesis.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8dfa2b3a5b818aa888d21eed8585e3d1b9d3506b 16-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Fix a couple of cases where we weren't generating the right kind of call
for a call to a virtual function.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bc0d83b86646faaf411cb40a3aacbc5dbe3e9bd0 16-Nov-2009 Anders Carlsson <andersca@mac.com> When generating the deleting ctor, emit a call to delete.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ea9a20834cf9311fdf758cfbd73b8daa8e655f15 14-Nov-2009 Eli Friedman <eli.friedman@gmail.com> PR5483: Generate missing form of destructor when it is virtual. (Someone
more familiar with this stuff should double-check that there isn't some more
general rule; this is purely from inspecting g++ output.)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
534ba90a1b865f3731aa56423e8f02d49ff62ec7 13-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> Code gen. For virtual destructor call on array objects
(still part of pr5472).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
72c2153b466263a21870b2b1c817900d4981493e 13-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> Code gen for arrady delete operator. Fixes pr5472.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a0fdd916bbaede20b4ef257af0f61487cb6ed85a 13-Nov-2009 Anders Carlsson <andersca@mac.com> Instead of storing CXXMethodDecls in the vtable builder, store GlobalDecls so we can represent both the complete and deleting destructors. Also, when encountering a destructor decl, emit entries for both the complete and deleting destructors. Mike, please review.

With this change, FileCheck builds and runs the clang test suite without failures!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
566abee1e9828a7700b51e4d17ea08234fde3bb4 13-Nov-2009 Anders Carlsson <andersca@mac.com> Add a special BuildVirtualCall that's going to be used for building calls to destructors. This is needed because when compiling:

struct A {
virtual ~A();
};

void f(A* a) {
delete a;
}

A's deleting destructor should be called.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
03d8ed439f55b692634f9c71721ecfabbe347c4d 13-Nov-2009 Anders Carlsson <andersca@mac.com> Fix two bugs with temporaries:

1. For

A f() {
return A();
}

we were incorrectly calling the A destructor on the returned object.

2. For

void f(A);
void g() {
A a;
f(a);
}

we were incorrectly not calling the copy constructor.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e8b31cc500473f0e2558c77c8a46458deff6ce51 11-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> Value initialize non-class array members in ctor's
initializer list. Fixes PR5463.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
88b11de727b3a6b81138145cd2f5f2a20592f6ee 11-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> Avoid generating additional destructor(s) for initialized constructed
objects.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
88f4280f6b60edcbdea6a38a3da8b17d66473ad6 10-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> This patch implements Code gen. for destruction of
global array of objects.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
380dd759b33fd059b1aa7dbd85f8e66ca32f7bdc 10-Nov-2009 Mike Stump <mrs@apple.com> Add vtable caching to prevent multiple vtables for the same class from
being generated.

Add the most derived vtable pointer to the VTT.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
49c16da71b9c95cc53b4af6de2833a022cb69b6a 09-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Unify the codepaths used to verify base and member initializers for explicitly
and implicitly defined constructors. This has a number of benefits:

1. Less code.

2. Explicit and implicit constructors get the same diagnostics.

3. The AST explicitly contains constructor calls from implicit default
constructors. This allows handing some cases that previously weren't handled
correctly in IRGen without any additional code. Specifically, implicit default
constructors containing calls to constructors with default arguments are now
handled correctly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
30509a30a9a6ac9ee737e5cf39744a92170d7ea4 06-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> This patch fixes code gen. part of pr5333 (Conversion
using elipsis conversion).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1faf67478c6d423880726a327c737db13b8d9f0b 06-Nov-2009 Anders Carlsson <andersca@mac.com> If a member initializer create temporaries we need to destroy them. Fixes PR5077.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b1156b93f6731942e7c9dc263e517db8e6d58afd 06-Nov-2009 Anders Carlsson <andersca@mac.com> More cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
03e777ec50386f88a55f8fcf6e94bb7f9840b50d 05-Nov-2009 Mike Stump <mrs@apple.com> References can't be zero; omit zero check for return value adjustments
in covariant thunks that return references.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7c276b84d6881df18c847b036fe3c95d94d9b5b3 05-Nov-2009 Mike Stump <mrs@apple.com> Refine covariant return value adjustments for thunks when null
pointers are returned.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
105aa51c146b66f7dc4ac78faa9a7021acb98d75 04-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> Add code gen for pointer-to-member function in
ctor's initializer. Fixes pr5178.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
87c12c4a4667279dacb3d4a93c64b49148a0ff79 04-Nov-2009 Douglas Gregor <dgregor@apple.com> Store the unresolved class type in MemberPointerType's Class field,
from Peter Collingbourne!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
79d5768e7bc30e847d18bb0e41244d25faff934b 04-Nov-2009 Mike Stump <mrs@apple.com> Fix 80-col violations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d0fe5366d4040545d5f72c547ae54e2c21e4cb68 04-Nov-2009 Mike Stump <mrs@apple.com> Split out return adjustments in thunks from this adjustment in thunks
so the optimizer can tailcall into the return value adjustment thunk.
This improves codesize for complex hierarchies.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9bef4d7d127c2f10a8c0535f371f8a06d5ba6b4a 04-Nov-2009 Mike Stump <mrs@apple.com> Misc cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
df317bf71653eeb235da8337b1e8e790f9653aa4 04-Nov-2009 Mike Stump <mrs@apple.com> Refine volatile handling, specifically, we must have the canonical
type to look at the volatile specifier. I found these all from just
hand auditing the code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c902d22129322731607988dafb8cd7f708eb75b1 03-Nov-2009 Mike Stump <mrs@apple.com> Refine return value adjustments for thunks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4387cd9697374462af10d1b5515f26f4af129432 03-Nov-2009 Mike Stump <mrs@apple.com> Refine codegen for non-virtual this adjustments for thunks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
736529e7b6fa4aa8331b88c2e89b6a81120731e5 03-Nov-2009 Mike Stump <mrs@apple.com> Add virtual adjustments for this for thunks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f49ed94751d366dc3fcb3d1197830a49e8b3e0de 03-Nov-2009 Mike Stump <mrs@apple.com> Add basic codegen for thunks that return values.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c5dac4e235806cc192fe67123d551be7ae66e162 03-Nov-2009 Mike Stump <mrs@apple.com> Refine codegen for thunks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d7a4a436efc11844c0d837a84f284aac7a09f31a 28-Oct-2009 Fariborz Jahanian <fjahanian@apple.com> Minor cleanup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ae013b9da64b48f22ca82828aa3c7a909f99dbd7 28-Oct-2009 Fariborz Jahanian <fjahanian@apple.com> Code gen for array construction - WIP



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
48620bafe4ba879f96c2d17caefeb79f3fae2eea 21-Oct-2009 Fariborz Jahanian <fjahanian@apple.com> Code-gen for CXXZeroInitValueExpr AST passed
as argument to a function call. Removes a FIXME.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
93034ca3d025e948ddfcdd78868957efc70741a7 16-Oct-2009 Fariborz Jahanian <fjahanian@apple.com> Implement derived-to-base AST/code gen. There is a
FIXME in CGCXX.cpp that I would like Anders to
take a look at.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3eea6350412eb7db13f0e2791c118920b36130a4 13-Oct-2009 Anders Carlsson <andersca@mac.com> Don't assume that the LHS and RHS of a member pointer expression is a DeclRefExpr. Fixes PR5177.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4a0d832ecdc15b0667616d3ec570cade4761ceaf 12-Oct-2009 Anders Carlsson <andersca@mac.com> Even more devirtualization cleverness.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
cf5deecd7885b544f1197846897513858863e3af 12-Oct-2009 Anders Carlsson <andersca@mac.com> More devirtualization improvements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
76366487694e92509f938164f384bbdfad002f2b 12-Oct-2009 Anders Carlsson <andersca@mac.com> Devirtualize calls on temporaries. A().f() for example.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8e7670de19334eccfe9ac5fc70fa57015b1654c8 12-Oct-2009 Anders Carlsson <andersca@mac.com> Factor out devirtualization checking into a separate function and make it handle references correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3b89f3fa61b65b73f58808c037826c8333830313 12-Oct-2009 Anders Carlsson <andersca@mac.com> If the base type of a member call is a record type we don't need to emit a virtual call.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
dbd920c7758e6dfb678a8f503fb14ba97c26f23a 12-Oct-2009 Anders Carlsson <andersca@mac.com> Move the vtable builder to CGVtable.cpp, general cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
fc3bf4d4d2aea8353541a5710bed2ad00c451b68 11-Oct-2009 Anders Carlsson <andersca@mac.com> Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of QualTypes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
656e4c10dcbef73198423b9e2b5d7690269a61b7 10-Oct-2009 Anders Carlsson <andersca@mac.com> Move our (non-existing) RTTI emission code into CGRtti.cpp. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
25bc275c3f2188b2a08cc051f7af6611c8726750 09-Oct-2009 Mike Stump <mrs@apple.com> Avoid warning.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b540491851910c2efa68196a8bdc2eed1071c17d 07-Oct-2009 Anders Carlsson <andersca@mac.com> Add a MangleContext and pass it to all mangle functions. It will be used for keeping state, such as identifiers assigned to anonymous structs as well as scope encoding.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
edee783ed3edcd7fd988b9fb1dc58361a7e8f8a0 07-Oct-2009 Anders Carlsson <andersca@mac.com> Uncomment some commented out code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2f1986b557fa671c4f8c9dd0d071398edfc073d5 07-Oct-2009 Anders Carlsson <andersca@mac.com> Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base class offsets. Fix the code to handle virtual bases as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b299d3516d4722ef527b1070bb87133427e621a3 06-Oct-2009 Anders Carlsson <andersca@mac.com> Pass the right type to GetAddrOfFunction when getting functions for the VTable. Fixes PR5021.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
375c31c4673f83f925de221752cf801c2fbbb246 03-Oct-2009 Anders Carlsson <andersca@mac.com> Implement code generation of member function pointer calls. Fixes PR5121.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2b3583573ba6b26b605aacaad9a50492fb3d6fe6 03-Oct-2009 Anders Carlsson <andersca@mac.com> Move some functions from CodeGenFunctions to CodeGenModule so they can be used by CGExprConstant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2472bf0a1735fa9c60a01946d5ed53b64c9c2422 29-Sep-2009 Anders Carlsson <andersca@mac.com> Handle CXXMemberCallExprs that point to a static method. Fixes PR5093.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
740256bafbba6c5b5cb95a5c5bd7db161f3b2833 29-Sep-2009 Mike Stump <mrs@apple.com> Fix http://llvm.org/PR5090.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6815e941998659a55c20c147861b0f437928c3d8 27-Sep-2009 Anders Carlsson <andersca@mac.com> CodeGen for try statements. (We just emit the body for now).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0953e767ff7817f97b3ab20896b229891eeff45b 24-Sep-2009 John McCall <rjmccall@apple.com> Refactor the representation of qualifiers to bring ExtQualType out of the
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
569c1f4a6c703eaa8b963bed7d5c2fd5d4569e93 23-Sep-2009 Anders Carlsson <andersca@mac.com> Add a new variant of EmitCXXAggrConstructorCall that takes a Value that holds the number of elements to construct, to be used when implementing new[].

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
16d81b8db39593b5f1a38b077757272a09c12da8 23-Sep-2009 Anders Carlsson <andersca@mac.com> Move codegen of new and delete to CGCXXExpr.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
183700f494ec9b6701b6efe82bcb25f4c79ba561 22-Sep-2009 John McCall <rjmccall@apple.com> Change all the Type::getAsFoo() methods to specializations of Type::getAs().
Several of the existing methods were identical to their respective
specializations, and so have been removed entirely. Several more 'leaf'
optimizations were introduced.

The getAsFoo() methods which imposed extra conditions, like
getAsObjCInterfacePointerType(), have been left in place.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
97f4d46e2fffa1e8a84f2052c314a3bf87b967f8 18-Sep-2009 Mike Stump <mrs@apple.com> Generate more of the vbase virtual offset for covariant thunks. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
de1d26b9c1d8823b173e4d77015ad88b4da70559 14-Sep-2009 Anders Carlsson <andersca@mac.com> Remove an unnecessary FunctionDecl parameter to the synthesizing functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
db2910427287a5c5e2e7e20d61982d8747b605ca 14-Sep-2009 Anders Carlsson <andersca@mac.com> Handle delete where the class has a virtual destructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5a0f49ebc83e7fe0da07b9964c44b0a7fae270cb 12-Sep-2009 Anders Carlsson <andersca@mac.com> Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a NullCheckValue argument (currently unused).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
29f898a36b1d2023ba0fd6cdaf2d955332f3b137 12-Sep-2009 Anders Carlsson <andersca@mac.com> Add CGCXXClass.cpp. and move CodeGenFunction::AddressCXXOfBaseClass there.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c7cba15f5fd86b96c03c57a1d307dde468f7399b 12-Sep-2009 Anders Carlsson <andersca@mac.com> Fix a crash when generating vtables that contain destructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6e319f6adc2a06c31cf99265854eef1321bcecf2 12-Sep-2009 Mike Stump <mrs@apple.com> Add basic covariant thunk generation support. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0ff8bafde95f6fa51ccea70738c1b99db870bddc 11-Sep-2009 Anders Carlsson <andersca@mac.com> Pass GlobalDecls to GenerateCode and StartFunction.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
555b4bb2749aea2ec8e2adc351a71ec1cb9bdc33 11-Sep-2009 Anders Carlsson <andersca@mac.com> GlobalDecl doesn't have an explicit constructor anymore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3fec4c605e0dd074422bca21626c036f52dab31d 10-Sep-2009 Anders Carlsson <andersca@mac.com> Use the right GlobalDecl type for destructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0aebc81e02397a5987aaa8e8c7acbdb01a31d7c3 09-Sep-2009 Anders Carlsson <andersca@mac.com> If a cast expression needs either a conversion function or a constructor to be called, generate implicit child expressions that call them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
dec025b15c63e0353768e402ad1fd566d97d2be7 07-Sep-2009 Mike Stump <mrs@apple.com> Refine vcall offsets. Cleanups. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
98cc71003d385561224e3711cd34c5b03f27ccdc 05-Sep-2009 Mike Stump <mrs@apple.com> Refine overrides and thunks for virtual bases. Cleanups. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a18df0ec71c5c95fb6809d4a80050f7b218f38b5 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e45c90f53e3fcb59a48e88862aa5cf5f5538556c 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8f90f58cc084e1dbdc2e717a4878d2a1ee7ef087 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b4d2861371d84a5cc98462676da4e6bb8c2d7c03 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
078d778d8ea4a3975a985da4e8aaef2d269c82fa 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9bbe962611ebdcfdd1e5e312113ad4efd13472b2 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bf595a3b1f1737eb60203856ea34b759c4c09c46 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6d10eb828b32b7a1058809c59ce6c3e2c46b18d7 05-Sep-2009 Mike Stump <mrs@apple.com> Cleanups. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
77ca8f6c5e666ef873066b580bf1b7fabd41d4f5 05-Sep-2009 Mike Stump <mrs@apple.com> Install thunks later to fixup overrides. Track space taken by vbase
offsets better for thunk refinements. Cleanups. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4fe95f99a2693f1145785ea5835ba6937e49c730 04-Sep-2009 Douglas Gregor <dgregor@apple.com> Don't generate any code for an explicit call to a trivial destructor.

Now that parsing, semantic analysis, and (I think) code generation of
pseudo-destructor expressions and explicit destructor calls works,
update the example-dynarray.cpp test to destroy the objects it
allocates and update the test to actually compile + link.
The code seems correct, but the Clang-compiled version dies with a
malloc error. Time to debug!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ed032eb5c18b99528cbd76415337b6056a72b911 04-Sep-2009 Mike Stump <mrs@apple.com> Add overidding for methods for vtable building for the secondary
vtables. Add thunk generation. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c186b8fe4a308b53569fe839a3224de70d92ab0e 02-Sep-2009 Anders Carlsson <andersca@mac.com> Fix an assertion when initializing a union using a member initializer. (We weren't casting from the union type to the initializer type correctly).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f9a883c27e3b5724a5a59499691fa109eb5032f8 02-Sep-2009 Mike Stump <mrs@apple.com> More overriding base work and some cleanups. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
35191b61db617aefba43b8add88a2ec88af67592 02-Sep-2009 Mike Stump <mrs@apple.com> Split out overriding. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
de738fe899b5c1d387dbc66a1122032e694d3d6f 01-Sep-2009 Anders Carlsson <andersca@mac.com> Assert that we don't have any virtual bases. We can emit dtors for polymorphics classes just fune.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
174754cda4596f3bb2539df61ab2ab7a17aad6bf 01-Sep-2009 Anders Carlsson <andersca@mac.com> We can generate constructors/destructors with base classes and non-trivial fields just fine now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0979c805475d1ba49b5d6ef93c4d2ce6d2eab6ed 31-Aug-2009 Douglas Gregor <dgregor@apple.com> Rename CXXQualifiedMemberExpr -> CXXAdornedMemberExpr, since we will
also be adding explicit template arguments as an additional
"adornment". No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e3a97db45ac46adf963115d0266cfd3e6bc2dce8 29-Aug-2009 Eli Friedman <eli.friedman@gmail.com> Make IRGen for initializing a member reference work correctly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
15a24e0e0737c3aa6f85fd18af64c3b6195454c3 29-Aug-2009 Mike Stump <mrs@apple.com> iGenerate vcalls as we build up the methods. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4fc7ab364110d6ad1c10dd38dbeb0597fed7e2f5 28-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen related patch for type conversion
with class type conversion methods. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
63bb7c2b281c62a30233b1638ecd8fb4048a38c4 27-Aug-2009 Mike Stump <mrs@apple.com> Fixup codegen for static dispatch to a virtual function that was
almost correct. :-)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
64e690ecf7ba7ad560b0af631bb6f323c38f6da4 27-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for type convesion of class objects. WIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bd4c4aebe6035e7a7125470cc9f0f92511230ee3 27-Aug-2009 Douglas Gregor <dgregor@apple.com> When a member reference expression includes a qualifier on the member
name, e.g.,

x->Base::f()

retain the qualifier (and its source range information) in a new
subclass of MemberExpr called CXXQualifiedMemberExpr. Provide
construction, transformation, profiling, printing, etc., for this new
expression type.

When a virtual function is called via a qualified name, don't emit a
virtual call. Instead, call that function directly. Mike, could you
add a CodeGen test for this, too?



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f0070dbae9535836ad41711081465dec2259786b 26-Aug-2009 Mike Stump <mrs@apple.com> Implement virtual dispatch. :-) This is self-consistent with clang,
but not yet necessarily perfectly consistent with gcc. Also addressed
Doug and John's comments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
eb1a1b6df0ba8d6d42e16f056cf54a2c87780ffe 26-Aug-2009 Anders Carlsson <andersca@mac.com> Revert r80064 since it broke the build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
78e7d3af10c861678127dc9befe5dcdef5d1baea 26-Aug-2009 Mike Stump <mrs@apple.com> Implement virtual dispatch. :-) This is self-consistent with clang, but not yet
necessarily perfectly consistent with gcc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4f68d537c3f072366b25f3137f052eee36fddfcd 26-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Simplified default construction of array data members
in the constructor prologue.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
92f5822df6a0d7571df44b5d279ed4f017fbb0e6 23-Aug-2009 Anders Carlsson <andersca@mac.com> Add a -fno-elide-constructors option to clang-cc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
263b3522add846130ff5f0a85568234e612a81ca 22-Aug-2009 Mike Stump <mrs@apple.com> Calculate the address point for a vtable better, and start fleshing out the vcall
calculations better.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c28bbc2d2271aab6c5d79ef2758604221cd92a4b 22-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to ir-gen copy assigning array members when synthesizing
a copy assignment operator function.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
eb0b6d556ff2b4a5053e89fd084eb34e44cea14c 21-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to provide ir-gen support in copying array members
when synthesizing a copy constructor. Arrays's base element
may have a trivial or non-trivial copy constructor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
64a54ad29929443006d4c8502173c163bedaa223 21-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Array member construction in prologue of user-declared
constructors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0de78998e7bda473b408437053e48661b510d453 21-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Introduce getConstantArrayElementCount API and use it in
construction/destruction of array members.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b9871a253d351e8776cfa5483d6330d5dffe4562 21-Aug-2009 Mike Stump <mrs@apple.com> We now support overriding base functions in vtables. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1c536bf6bbb0cdc039cff754825b36f9abfe0629 21-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to ir-gen destruction of array member elements in revers order
of their construction.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f800f6c09ed4a71bcb593d6962e0fda2c2845a70 20-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen patch to destruct array members. WIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b983744cccb7e2e5c2bc96de3dcc090ed17fa392 20-Aug-2009 Mike Stump <mrs@apple.com> Refine vbase offsets for the inductive case. Things are now starting
to come together nicely. Still a WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7fa0d93a3bbe290244f4f157078d9a0d6e87b44f 20-Aug-2009 Mike Stump <mrs@apple.com> Ensure we don't output repeated vbase offsets. I have a testcase for
this, but need to fixup the actual offset value before I can check it
in. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
995d2818a11395b15995694a30f842a0e4fdee4f 20-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Test case for my last patch plus a minor clean up.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6147a908f6d2a67dde46328c83332b92265ab3ae 20-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for multi-dimensional array construction. WIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1dea87a0760070190db3e35f3c47f611662b5f28 19-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Removed unneeded code for break/continue statements in
manufactured for-loop per Anders feedback (thanks).

- Fariborz


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
288dcaf329c49b01dacd5c1dd9f35609555feecd 19-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for constructing arrays as non-static data members. WIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7765934ad7e157b5fcf925792a38e01b1edbcf8a 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Switch to SmallString::str from SmallString::c_str.
- Several FIXMEs due to non-Twinification of IRBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
eb7e9c39f3b8ac815a78003992f2c2c662c0ab52 19-Aug-2009 Mike Stump <mrs@apple.com> One second thought, I think I want to limit this class to just vtable
building activities.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ee560f3b1fda7d5ec68b85b497c3e326ac5c3fdb 19-Aug-2009 Mike Stump <mrs@apple.com> Cleanup: fold IndirectPrimary into builder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
cc2a01206bda7ec109f612546e4821393cb2855a 19-Aug-2009 Mike Stump <mrs@apple.com> We don't want to confuse this layout with the BLayout from the builder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
09765ece710f29dcdbd66eec361d60e53bd5a4fd 19-Aug-2009 Mike Stump <mrs@apple.com> Restore vbase offsets for classes without a primary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b46c92dfedf02239e7c73b9a18dcf09071731793 19-Aug-2009 Mike Stump <mrs@apple.com> Refine vcalls a little.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
552b275708a25aa1d939b2b77e5419a0b4b8e6d4 19-Aug-2009 Mike Stump <mrs@apple.com> Cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
32f3701853a8237704065c77abc17369dd02c39b 18-Aug-2009 Mike Stump <mrs@apple.com> Cleanups. Move GenerateRtti to CodeGenModule.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
109b13db3391face0b393c730f0326ca51d25b52 18-Aug-2009 Mike Stump <mrs@apple.com> Move the rest of the vtable building code into the new builder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
65defe3ee7be121aef50b498e51f1d831b4a15f3 18-Aug-2009 Mike Stump <mrs@apple.com> Suck up method generation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7c435fa7f7666b22abbe8494c537ebc25209223d 18-Aug-2009 Mike Stump <mrs@apple.com> Split out vtable bulding code into a builder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0880bacf8fdb7de9d9c5b53b81ea0e53afccafb5 17-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to 1) synthesizing non-trivial default destructor when
one is not provided by user. 2) More complete
emission of ctor prologue when it has no initializer
list or when it is synthesized.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
622f9dc76bdc4f4d6920907f4fb64a3222aa6566 17-Aug-2009 Anders Carlsson <andersca@mac.com> Remove an ErrorUnsupported call.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
60e282cc1e508be327b0481cecedc206873cb86a 16-Aug-2009 Anders Carlsson <andersca@mac.com> Improve handling of delete expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
276b9f1d814f4f6551cc3000590759a34185d6da 16-Aug-2009 Mike Stump <mrs@apple.com> Cleanups and fixups for calculating the virtual base offsets. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1d9b5efffaec2349f33510dee2cf2e90c3d2d6aa 15-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Improved on ir-gen for synthesis of non-trivial default
constructor body whose class has non-static data-members which
required non-trivial construction.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
343a3cf57ee950b024bade8b6b0a2b51663f43cd 14-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for generation of trvial copy constructor
call.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
215389180617e4edb8aa95a5526509948ed1416f 14-Aug-2009 Mike Stump <mrs@apple.com> Deconflate virtual base offsets from non-virtual base offsets.
Deconflate a virtual base primary from a non-virtual base.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
183d7181fd59842ac969cbc6fe0376f85dc63ae4 14-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed a bug in ir-gen for copy assignment synthesis.
Fixed a bug when evaluating those copy-assignments
which need by lazily syntheized. A test case
for these.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4ef980984fd0e131fca3f9e6ba15e8a79cabf88c 14-Aug-2009 Mike Stump <mrs@apple.com> Refine vtable layout for virtual bases and keep better track of
primaries. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0032b2781b4deb131f8c9b7968f2030bf2489cdd 13-Aug-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ad25883a644dd6b52c7923dd128a7d05fb26213c 13-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to force synthesis of copy assignment operator
function in the order according to c++03. ir-gen
for copy assignment in the trivial case and the first
test case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
65010da986b2b13fa04c736855ac68183596420e 13-Aug-2009 Mike Stump <mrs@apple.com> Minor cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d53cef178ddf90386d343dccfe28c531b93cfe8f 13-Aug-2009 Mike Stump <mrs@apple.com> Prep for vbase layout refinements. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e82c3e269f0edd6d531b93114e97573792e808e0 13-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Minor refactoring of copy assign operator ir-gen. SWIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0270b8aa3f9b50ec3acd1abfd2b97377a3e1bb05 13-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> More toward synthesizing copy assignments. SWIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
80a0e32d60e4ff7d78f411e73f3e8dea769ed313 13-Aug-2009 Mike Stump <mrs@apple.com> Cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4c3aedd3f1fff57d1906b0cdfa7a9ec81a361b2d 13-Aug-2009 Mike Stump <mrs@apple.com> Refactor. WIP. Eventually, this will all go into a vtable builder class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
09d8b814321cf62915a2f43a20fd4822e1c2a879 13-Aug-2009 Mike Stump <mrs@apple.com> Cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
bc16aeab78748cca01a9d84fff71dd1109633ecd 13-Aug-2009 Mike Stump <mrs@apple.com> Refactor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a9e1d1cd1f7fded49016609d8cbc4d5579d7e60a 13-Aug-2009 Mike Stump <mrs@apple.com> Refactor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2198ba12b73a8e6801d13f25de38031da6df46b6 12-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Patch for synthesizing copy assignment operator.
WIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
34fae9cf27b19664f1f4526e195aff2299de2c40 12-Aug-2009 Mike Stump <mrs@apple.com> Improve the secondary vtables to not include vbase offsets. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4ffe91eae351d6ef68256ce77fc549557702d3e3 12-Aug-2009 Mike Stump <mrs@apple.com> Refine vtable building for the secondary vtables to exclude yet more
cases where a virtual base was already used as a primary base class.
WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e64941280877d065a27e8cefd2a9038256d0e3ac 11-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen support for anonymous union data member
copying in copy constructors and used in
default constructor's initializer list.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
49520944c688a9d5fc78d0c2af544b825873477b 11-Aug-2009 Mike Stump <mrs@apple.com> Implement more of the inductive case for vtable layout involving
virtual base primaries and improve the layout of classes with virtual
bases. WIP.

Hey, I've decided I want a change to FileCheck, I need to ensure that
the group is together, nothing in between. Can we change it to check
the match line is from the line immediately following the last matched
line, if the source for the matched line is immediately after the
source for the previously matched line?

// CHECK: 1
// CHECK: 2
// CHECK: 3

// CHECK: 4
// CHECK: 5
// CHECK: 6

would require 1 2 and 3 to be continuous in the output, and 4 5 and 6
to be continuous.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8c64e007d9b2f719613f7d79b0b32d2f50da9332 11-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Support for anonymous union in ctor's initializer and
bunch of FIXMEs for their is-gen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
06f598aa45b651f9f3be0b916d43876eae747af0 10-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> minor refactoring. No change otherwise.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f05fe65e64a5de93ba6d30e1b830fd0fc36358e9 10-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for generating copying of scalar data members in
a synthesized copy constructor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
370c884d172329384973e452647fba0b2f5146d5 10-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed a ir-gen bug in synthesizing copy constructors.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
10c40eee98c600d24437474463b056f323d0cfd2 09-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Older GCCs don't have vector::data().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
942f4f33d02dba823594bd2d7b3d317cb01c74f8 09-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for initialization, in synthesize copy constructor,
of base/field which have trivial copy constructor.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
89ed31d3f9eeb8ec77c284a5cf404a74bf5e7acf 09-Aug-2009 Anders Carlsson <andersca@mac.com> Add support for global initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3b2e16b3d25f6b311dba2871e2a566c96238c3d2 08-Aug-2009 Anders Carlsson <andersca@mac.com> Refactor some code and implement support for global destructors for static variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8c241a2844428eb1589c7b77fc6c1888295a2045 08-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Refactoring of copy ctor ir-gen. No change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
80e4b9e0e87064a824d72b6ff89074206ecced58 08-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Remove use of uninitized variable.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1e4edd5474f8cb966356afa6175d658002ff819c 08-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Synthesize copying of non-static data members with
non-trivial copy constructors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ca28361fb0a72c50e0a400fae2fad9520e61c0a5 08-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Synthesized copy constructor now generates code for
copying non-virtual base classes which have non-trivial
constructor. Work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
57cf2f3abad1c3541cd388d9b7882d65cf6daa7c 07-Aug-2009 Mike Stump <mrs@apple.com> Add vbase offsets to the vtable. Wow, having an rbegin was so
fortuitous. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
97a937532c24a8ea44317d4fdee26d9701a1e83c 07-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> More synthesis of copy constructors. Work in progress.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e6e1d609f6a14882be5336005f5d0222ef18b814 07-Aug-2009 Mike Stump <mrs@apple.com> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
928f1506eb38bb26a1284b876213a8f5244f6933 07-Aug-2009 Mike Stump <mrs@apple.com> Add ability to generate vcall offsets for primary virtual base.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e607ed068334bacb8d7b093996b4671c6ca79e25 07-Aug-2009 Mike Stump <mrs@apple.com> Fix some const_cast issues. This is the beginning of the rabbit hole.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
02cf1e264719b4dada4377cc8a43888cb66f8815 07-Aug-2009 Mike Stump <mrs@apple.com> Add support for vcall generation for vtables for virtual bases. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e1be2b16a3a24acda0b63c3dcb4ae3384fcdaf75 06-Aug-2009 Mike Stump <mrs@apple.com> Also generate the rtti field for virtual bases for vtables. Turn on
rtti so we can properly test it. Refactor code a little. Still a
work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1cf9ff87ee235ad252332a96699abdb32bd6facb 06-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Set and use Elidable in elimination of copy ctors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
70101ce87ff1d73ac90e4d99a3af0ae509e5934f 06-Aug-2009 Mike Stump <mrs@apple.com> Layout the primary base first in the vtable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
8a12b564923a72224730a467007e61b5701e4aa7 06-Aug-2009 Mike Stump <mrs@apple.com> More layout for virtual tables for virtual bases. Still in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
eb19fa948173502f47c26357c2ec41aa4be197b4 06-Aug-2009 Mike Stump <mrs@apple.com> Layout virtual bases. Work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6904cbb1f21002317387e8fc7b14b7f8c09d198f 06-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to optimize away copy constructor call when
appropriate.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b502d839994cc3828573bd9ea472418e3536f415 06-Aug-2009 Mike Stump <mrs@apple.com> Refactor some bits.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6f376336138ea719e3c4757ae046a5768043b276 06-Aug-2009 Mike Stump <mrs@apple.com> Calculate the primary base class better and use that when laying down
the vtable. Still a work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
104ffaaa05d31d0a3dc886b7b18ebb2496bc2af4 04-Aug-2009 Mike Stump <mrs@apple.com> vtable building for simple inheritance. Still in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
cb1b5d32fd227cd791fbd0614f75b32f291a5cca 04-Aug-2009 Mike Stump <mrs@apple.com> Will I ever get used to CamelCase? Will I ever like capitols for
random variables?
--This line, and those below, will be ignored--

M lib/CodeGen/CGCXX.cpp


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
738f8c278da5950d0d4607de2debe0bdfad64185 01-Aug-2009 Mike Stump <mrs@apple.com> Add beginnigs of rtti generation, wire up more of -fno-exceptions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
82b56961dcb813674dbda3c5f5aaee703d55741c 31-Jul-2009 Mike Stump <mrs@apple.com> And now we can generate a simple vtable. Still a work in progress...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c9c88b4159791c48e486ca94e3743b5979e2b7a6 31-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f121677b6bbbf4e4a51ee7a1120b77adf187bad4 31-Jul-2009 Mike Stump <mrs@apple.com> Add code to setup the vtable pointer in the constructor. Work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
03e205031b08669f05c41eed5b896fc94c4a12bb 31-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API changes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b3589f44c5d295cd41de2c83f3475116835eeebd 31-Jul-2009 Mike Stump <mrs@apple.com> Canonicalize else spacing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7116da1efe23f90eb22524ac9aa036153b74f482 30-Jul-2009 Mike Stump <mrs@apple.com> Note some other limitations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
426cc3828ce07a2cff15c9837f5958e6fc4b7739 30-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> Patch for future ir-gen for destructor calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c238a79a97ad35227a28acf16028ab63127c2fb7 30-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for nested non-virtual base member access
in current class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
96e0fc726c6fe7538522c60743705d5e696b40af 30-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6217b80b7a1379b74cced1c076338262c3c980b3 29-Jul-2009 Ted Kremenek <kremenek@apple.com> Change uses of:
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsRecordType() -> Type::getAs<RecordType>()
Type::getAsPointerType() -> Type::getAs<PointerType>()
Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>()
Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>()
Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>()
Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>()
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsTagType() -> Type::getAs<TagType>()

And remove Type::getAsReferenceType(), etc.

This change is similar to one I made a couple weeks ago, but that was partly
reverted pending some additional design discussion. With Doug's pending smart
pointer changes for Types, it seemed natural to take this approach.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5a8503b333f50acd6012859853612229f38cb420 29-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> Use the existing API for base offset. Use suitable llvm type
for offset ir-gen.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1c698e0d4f9bf3d141c019d33d9040085a8a67dd 28-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> More cleanup of data member access and then some.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6d0bdaa68989bee60c85274e82a8f9c982587f26 28-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> Some code cleanup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9e809e7da2448c08aa11f15be4680226754678ce 28-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> More work toward data member access ir-gen.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
742cd1b7bb86b52b23b335d47abbd842dac0e1bf 25-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for non-virtual base class initialization
in constructors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4a28d5deeba33722aa009eab488591fb9055cc7e 25-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
50b8eea3f36881a988a5757e0f6e15d45900324b 24-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> More work toward initialization of objects
in constructors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e7d346b6d5cee14b75e34928b3fd423f21d8d80d 21-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
35366a67baa970c287c714c957cf78a4131cf60d 17-Jul-2009 Ted Kremenek <kremenek@apple.com> Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methods
until Doug Gregor's Type smart pointer code lands (or more discussion occurs).
These methods just call the new Type::getAs<XXX> methods, so we still have
reduced implementation redundancy. Having explicit getAsXXXType() methods makes
it easier to set breakpoints in the debugger.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5cad1f74469d4d8b4fc51fe53a7837778aeb6107 17-Jul-2009 Ted Kremenek <kremenek@apple.com> Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a1cf15f4680e5cf39e72e28c5ea854fcba792e84 15-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change, and contextify a bunch of related stuff.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
69243825cb5c91ec7207256aa57ae327cfaf8cb2 13-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
1c431b323d776362490bbf7cc796b74fedaf19f2 08-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
c14f0d230257a8db58aee6329116a7e245e6bbd6 08-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
17945a0f64fe03ff6ec0c2146005a87636e3ac12 30-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> De-ASTContext-ify DeclContext.

Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating".
Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2ce66125025536e6a06dc5cbc809d621a7c71a74 03-Jun-2009 Anders Carlsson <andersca@mac.com> Move code generation of C++ temporaries into a new file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
215bd208d6eeff397bc4316d046ea8b4633efedf 01-Jun-2009 Anders Carlsson <andersca@mac.com> Fix a thinko.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f11085398dc27c0010663c711d4a10113e41d70f 01-Jun-2009 Anders Carlsson <andersca@mac.com> Check for null correctly for new expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
d3fd6bad1249d3f34d71b73e2333fab0db51cce4 31-May-2009 Anders Carlsson <andersca@mac.com> Improve irgen of 'new' further.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
627a3e573f1d9f0429d62c7ceb742a21cdabfce0 31-May-2009 Anders Carlsson <andersca@mac.com> ...and aggregate POD types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3923e95280210ef877153f0c3dbab12d6ed2ad43 31-May-2009 Anders Carlsson <andersca@mac.com> Support for complex types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6d0ffad181215fc4ec0fca37c55eae82df6e0531 31-May-2009 Anders Carlsson <andersca@mac.com> Better support for scalar POD types in 'new' expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
ed4e367f8e27d2c700efdaff9412f2bf83ddba00 31-May-2009 Anders Carlsson <andersca@mac.com> Very basic irgen support for new expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
a00703dccbdc6cc4a293db38477dea7db5538c7e 31-May-2009 Anders Carlsson <andersca@mac.com> Add a new function for emitting new functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
543ac0c4d24a81fb2b7b6e83370aa8e4cbc93054 31-May-2009 Anders Carlsson <andersca@mac.com> Emit destructors correctly for temporaries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b58d017f2b9eeed33f2ab3ede968b89cf5296bf2 31-May-2009 Anders Carlsson <andersca@mac.com> More temporary support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
7267c1693abe7875b0c57268be05005ae013c6c9 29-May-2009 Anders Carlsson <andersca@mac.com> Add code for emitting C++ destructors. Not used yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0f294632f36459174199b77699e339715244b5ab 27-May-2009 Anders Carlsson <andersca@mac.com> Handle operator call expressions where the callee is a member function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
4029ca7ae9d3ffd7738fe2ed8782bebc30f36fd6 20-May-2009 Anders Carlsson <andersca@mac.com> Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't support anything but at least we don't crash ;)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f5408fe484495ee4efbdd709c8a2c2fdbbbdb328 16-May-2009 Mike Stump <mrs@apple.com> Reflow some comments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b4880bab7fc1b61267cfd9a0ad52188e7a828cb3 12-May-2009 Chris Lattner <sabre@nondot.org> push GlobalDecl through enough of the CodeGenModule interfaces
to allow us to support generation of deferred ctors/dtors.
It looks like codegen isn't emitting a call to the dtor in
member-functions.cpp:test2, but when it does, its body should
get emitted.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b9de2c55b2a33776e2bee8ee57df7599b374c8a5 12-May-2009 Anders Carlsson <andersca@mac.com> Factor code that's common to EmitCXXMemberCallExpr and EmitCXXConstructorCall out into a EmitCXXMemberCall function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
2a131fbca2a51085dc083b8c56a2d4ced3cf1413 05-May-2009 Anders Carlsson <andersca@mac.com> Refactor global decls to hold either a regular Decl or a CXXConstructorDecl + ctor type or a CXXDestructorDecl + dtor type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
31ccf377f4a676eb6c205b47eef435de616d5e2d 03-May-2009 Anders Carlsson <andersca@mac.com> Make codegen for constructors work again.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
3dad49f2b60353638586ad1893a72f335618f919 01-May-2009 Anders Carlsson <andersca@mac.com> We can now call member functions where the base is a pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
27ae53665f8b00fe4ba21da0fa79a4ce6e0b6cd5 17-Apr-2009 Anders Carlsson <andersca@mac.com> Add support for generating (very basic) C++ destructors. These aren't called by anything yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
b14095aa98c6fedd3625920c4ce834bcaf24d9f7 17-Apr-2009 Anders Carlsson <andersca@mac.com> Implement basic code generation of constructor calls. We can now compile:

struct S {
S(int, int);
};

void f() {
S s(10, 10);
}



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
363c184139e26ea38223b477ad64ee67b22bb9a7 17-Apr-2009 Anders Carlsson <andersca@mac.com> Add GetAddrOfCXXConstructor and use it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
59d8e0ff383274d992b3fa9ebee48b5e4a5ebdd1 15-Apr-2009 Anders Carlsson <andersca@mac.com> Actually generate code for the simple constructors we know we can generate code for.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
95d4e5d2f87a0f07fb143ccb824dfc4c5c595c78 15-Apr-2009 Anders Carlsson <andersca@mac.com> Start attempting to generate code for C++ ctors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
5f4307b7ba164b03c853c8d3eb4674d33f8967a6 14-Apr-2009 Anders Carlsson <andersca@mac.com> Support code generation of 'this' exprs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
283a062a633d6e868aa2be319da812341fe73728 13-Apr-2009 Anders Carlsson <andersca@mac.com> Use the new guard variable mangling function and get rid of the old code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
782f397c1459ef7d8b910c0fb6b95c5f1c19c14f 09-Apr-2009 Anders Carlsson <andersca@mac.com> Use the new EmitCallArgs function. No indented functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e9918d2443ad524e0f488e8f15d9bce4e7373cd1 08-Apr-2009 Anders Carlsson <andersca@mac.com> We weren't generating correct code for calls to variadic member functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
6c247e38e59caacf4a84a16c621fd470261998c9 06-Apr-2009 Anders Carlsson <andersca@mac.com> Simplify C++ member function calls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
774e7c6881ee6cb970cd42239d700dce87ed402a 04-Apr-2009 Anders Carlsson <andersca@mac.com> Add support for calling C++ member functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
0096acf421c4609ce7f43e8b05f8c5ca866d4611 25-Feb-2009 Daniel Dunbar <daniel@zuster.org> Pull COdeGenFunction::CreateStaticBlockVarDecl (just for creating the
global variable) out of GenerateStaticBlockVarDecl.
- No intended functionality change.
- Prep for some mild cleanups and PR3662.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
f8d49f64ef6ab7e632717a31631fc289aab69428 09-Jan-2009 Douglas Gregor <dgregor@apple.com> Provide a new kind of iterator, the specific_decl_iterator, that
filters the decls seen by decl_iterator with two criteria: the dynamic
type of the declaration and a run-time predicate described by a member
function. This simplifies EnumDecl, RecordDecl, and ObjCContainerDecl
considerably. It has no measurable performance impact.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e8e3205b22e388588396ef41fd4bbe437d325a57 16-Dec-2008 Eli Friedman <eli.friedman@gmail.com> Warning fixes to operator precedence warnings.

Someone should double-check that I didn't somehow break ObjC
serialization; I think the change there actually changes the semantics.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
077bf5e2f48acfa9e7d69429b6e4ba86ea14896d 24-Nov-2008 Chris Lattner <sabre@nondot.org> Rename Selector::getName() to Selector::getAsString(), and add
a new NamedDecl::getAsString() method.

Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.

This also adds new formatters for objcinstance and objcclass
as described in the dox.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
9615ecb44f549ae9fa2b4db6ff46bc78befbf62c 13-Nov-2008 Daniel Dunbar <daniel@zuster.org> Normalize many BasicBlock names.
- Use dotted notation for blocks related to a particular statement
type.
- Use .end for landing pads.

No functionality change in NDEBUG mode. :)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
55e874299f2ad827646a4ca9ea38c402aaeb38c9 11-Nov-2008 Daniel Dunbar <daniel@zuster.org> Centralize basic block creation in CodeGenFunction::createBasicBlock.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
86e9644199d91a33d0090395395bc718bd3a4981 23-Aug-2008 Anders Carlsson <andersca@mac.com> Handle static initializers in Objective-C++ methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp
e1b29efab32d02e114046d33cca242a88585bf8a 22-Aug-2008 Anders Carlsson <andersca@mac.com> Add preliminary (and probably broken) codegen support for C++ static initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGCXX.cpp