0e2c34f92f00628d48968dfea096d36381f494cb |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master clang for rebase to r230699. Change-Id: I6a546ab3d4ae37119eebb735e102cca4f80ab520
/external/clang/lib/CodeGen/CGCXX.cpp
|
176edba5311f6eff0cad2631449885ddf4fbc9ea |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master Clang for rebase to r222490. Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
/external/clang/lib/CodeGen/CGCXX.cpp
|
c568f1e98938584c0ef0b12ae5018ff7d90a4072 |
|
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
|