a904e01839e8244d39b3d9bfc749ec93f1cbe1e1 |
|
23-Aug-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Fix transposed optional / required in Objective-C metadata (GNUstep runtime) Patch by Niels Grewe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0a7dd788dbef975f35f273c7ab913f480f7edd60 |
|
21-Aug-2012 |
John McCall <rjmccall@apple.com> |
Screw around with ObjCRuntime some more, changing the diagnostics for bad deployment targets and adding a few more predicates. Includes a patch by Jonathan Schleifer to enable ARC for ObjFW. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c972c92f757957bf414c6195b1f2ae25a2b4dd37 |
|
10-Aug-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Don't emit an invoke whose normal destination is a landingpad. Fixes test regression on test/CodeGenObjC/2008-10-3-EhValue.m on non-Darwin targets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1503f0ddab0057e33efa21393fc0577580d6287a |
|
31-Jul-2012 |
John McCall <rjmccall@apple.com> |
Introduce new queries on ObjCRuntime for how to interpret subscripts on object pointers and whether pointer arithmetic on object pointers is supported. Make ObjFW interpret subscripts as pseudo-objects. Based on a patch by Jonathan Schleifer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f7226fbe677a9c7578fa0613491ed15c6dc6a5e1 |
|
12-Jul-2012 |
John McCall <rjmccall@apple.com> |
Add the ObjFW runtime. Patch by Jonathan Schleifer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
11d3f4cc27e6b923fc32481dc1bb5ec46c7d1f4b |
|
03-Jul-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Rename the GCC Objective-C runtime to gcc from gnu-fragile and the GNUstep runtime to gnustep from gnu. Fix EH for the GCC runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
260611a32535c851237926bfcf78869b13c07d5b |
|
20-Jun-2012 |
John McCall <rjmccall@apple.com> |
Restructure how the driver communicates information about the target Objective-C runtime down to the frontend: break this down into a single target runtime kind and version, and compute all the relevant information from that. This makes it relatively painless to add support for new runtimes to the compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z, available at the driver level as a better and more general alternative to -fgnu-runtime and -fnext-runtime. This new concept of an Objective-C runtime also encompasses what we were previously separating out as the "Objective-C ABI", so fragile vs. non-fragile runtimes are now really modelled as different kinds of runtime, paving the way for better overall differentiation. As a sort of special case, continue to accept the -cc1 flag -fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak. I won't go so far as to say "no functionality change", even ignoring the new driver flag, but subtle changes in driver semantics are almost certainly not intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
809d1be9820039b4cf6efa48246a0d70ffa13394 |
|
14-Jun-2012 |
James Dennett <jdennett@google.com> |
More doxygen/documentation cleanups. This reduces the number of warnings generated by Doxygen by about 100 (roughly 10%). Issues addressed: (1) Primarily, backslash-escaped "@foo" and "#bah" in Doxygen comments when they're not supposed to be Doxygen commands or links, and similarly for "<baz>" when it's not intended as as HTML tag; (2) Changed some \t commands (which don't exist) to \c ("to refer to a word of code", as the Doxygen manual says); (3) \precondition becomes \pre; (4) When touching comments, deleted a couple of spurious spaces in them; (5) Changed some \n and \r to \\n and \\r; (6) Fixed one tiny typo: #pragms -> #pragma. This patch touches documentation/comments only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
581deb3da481053c4993c7600f97acf7768caac5 |
|
06-Jun-2012 |
David Blaikie <dblaikie@gmail.com> |
Revert Decl's iterators back to pointer value_type rather than reference value_type In addition, I've made the pointer and reference typedef 'void' rather than T* just so they can't get misused. I would've omitted them entirely but std::distance likes them to be there even if it doesn't use them. This rolls back r155808 and r155869. Review by Doug Gregor incorporating feedback from Chandler Carruth. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
561d62280aecff3168097086425a7da0442d0de4 |
|
09-Apr-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Revert r154321, pending more discussion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
649ee3fec12dcf7167630ff88087ad116e9eefa6 |
|
09-Apr-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Add -fobjc-trace to emit a call before and after each Objective-C message send for hooking in code flow visualisation applications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5e219cf7f896873c1c1e64b9e87a7dade99debba |
|
08-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Teach Clang about PIE compilations. This is the first step of PR12380. First, this patch cleans up the parsing of the PIC and PIE family of options in the driver. The existing logic failed to claim arguments all over the place resulting in kludges that marked the options as unused. Instead actually walk all of the arguments and claim them properly. We now treat -f{,no-}{pic,PIC,pie,PIE} as a single set, accepting the last one on the commandline. Previously there were lots of ordering bugs that could creep in due to the nature of the parsing. Let me know if folks would like weird things such as "-fPIE -fno-pic" to turn on PIE, but disable full PIC. This doesn't make any sense to me, but we could in theory support it. Options that seem to have intentional "trump" status (-static, -mkernel, etc) continue to do so and are commented as such. Next, a -pie-level flag is threaded into the frontend, rigged to a language option, and handled preprocessor, setting up the appropriate defines. We'll now have the correct defines when compiling with -fpie. The one place outside of the preprocessor that was inspecting the PIC level (as opposed to the relocation model, which is set and handled separately, yay!) is in the GNU ObjC runtime. I changed it to exactly preserve existing behavior. If folks want to change its behavior in the face of PIE, they can do that in a separate patch. Essentially the only functionality changed here is the preprocessor defines and bug-fixes to the argument management. Tests have been updated and extended to test all of this a bit more thoroughly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6614845b4f6724da8c6aca14ea720dbd157883a7 |
|
06-Apr-2012 |
David Chisnall <csdavec@swan.ac.uk> |
zext ivar offsets if required (GNU runtimes). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
74a1a1f0b6f6c4468444196a02c033be521f7d79 |
|
04-Apr-2012 |
Ted Kremenek <kremenek@apple.com> |
Silence dead store warning, and fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
acd76fe8e1b1b3fd83dac66848041629a8b06e8a |
|
20-Mar-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Add missing bitcast that was breaking Objective-C++ exception typeinfo (GNUstep runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
a5f4441de7890953460d95f4e88b9fa432b48dc2 |
|
13-Mar-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Sema] Prefer to use ObjCInterfaceDecl's protocol_begin()/protocol_end() iterators instead of ObjCInterfaceDecl::getReferencedProtocols(), because the iterators are safe to use even if the caller did not check that the interface is a definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d |
|
11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ebcb57a8d298862c65043e88b2429591ab3c58d3 |
|
06-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Add clang support for new Objective-C literal syntax for NSDictionary, NSArray, NSNumber, and boolean literals. This includes both Sema and Codegen support. Included is also support for new Objective-C container subscripting. My apologies for the large patch. It was very difficult to break apart. The patch introduces changes to the driver as well to cause clang to link in additional runtime support when needed to support the new language features. Docs are forthcoming to document the implementation and behavior of these features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
795b10062c2eaffae9e04241fb1a73cdbcb24a37 |
|
22-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
Use an ArrayRef when we can instead of passing in a SmallVectorImpl reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
94010695f7fce626e41ef045b60def9c912e9ce8 |
|
05-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
reapply the patches reverted in r149477, which enable ConstantDataArray. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
dccaa239ec125926a9c1fb5f328bce349e41637b |
|
01-Feb-2012 |
David Chisnall <csdavec@swan.ac.uk> |
size() == 0 -> empty(). Spotted by rjmcall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5d3a4bb13dfad72c89df09bce70351175ecd19dc |
|
01-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert r149363 which was part a series of commits that were reverted in llvm commit 149470. This fixes test/CodeGen/PR3589-freestanding-libcalls.c. Original log: ConstantArray::get() (for strings) is going away, use ConstantDataArray::getString instead. Many instances of ConstantArray::get() could be moved to use more efficient ConstantDataArray methods that avoid a ton of intermediate Constant*'s for each element (e.g. GetConstantArrayFromStringLiteral). I don't plan on doing this in the short-term though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
29254f4dd114fe2dd5c4e7a261ebea941973ad3d |
|
31-Jan-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Support @compatibility_alias at run time (GNUstep Runtime) Patch by Niels Grewe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ff8f9ec8336c62b5e3504e2a394f4b25c0cb1963 |
|
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
ConstantArray::get() (for strings) is going away, use ConstantDataArray::getString instead. Many instances of ConstantArray::get() could be moved to use more efficient ConstantDataArray methods that avoid a ton of intermediate Constant*'s for each element (e.g. GetConstantArrayFromStringLiteral). I don't plan on doing this in the short-term though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
561d3abc881033776ece385a01a510e1cbc1fa92 |
|
17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary default cases in switches over enums. This allows -Wswitch-enum to find switches that need updating when these enums are modified. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e3173021fa3bfdf7e6759d67838e385a83b2d57e |
|
06-Jan-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
objc++: some declarations related to atomic properties of c++ object types with non-trivial assignment copy. Not used yet. // rdar://6137845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
13df6f6e2e6adfb9933ba1a16802d35942e26a5c |
|
04-Jan-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Restore r147493 and remove the part of the test that was checking the wrong thing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4cd55b04e37d2c2c078be8d55c767213af8cc4ef |
|
04-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert r147493. It broke test/CodeGenObjC/constant-strings.m. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
78c6fcf819241097073ae154c92c01021e6174ca |
|
04-Jan-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Initialise constant Objective-C string isa pointers with a weak reference to the class, so that they are usable in +load methods if the string class has been compiled with clang - if it's been compiled with GCC, the ABI makes this impossible. (GNU runtimes) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1d784b277cdfd4eba03680715d2a082b3f28d295 |
|
01-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce the core infrastructure needed to model redeclaration chains for Objective-C protocols, including: - Using the first declaration as the canonical declaration - Using the definition as the primary DeclContext - Making sure that all declarations have a pointer to the definition data, and that we know which declaration is the definition - Serialization support for redeclaration chains and for adding definitions to already-serialized declarations. However, note that we're not taking advantage of much of this code yet, because we're still re-using ObjCProtocolDecls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
403bc3f85f3b3461b73abdd9c632980bf95f34bd |
|
01-Dec-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix -forwardingTargetForSelector: (GNUstep runtime) which was broken for the old dispatch mechanism when I introduced the new one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6f3887ec3652482d2e0e8959d8a89b785330b0b2 |
|
28-Oct-2011 |
David Chisnall <csdavec@swan.ac.uk> |
It turns out that the Objective-C message lookup functions can throw exceptions after all... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9d06ba82d8afb1cf01235f38f350ce5ad0c15444 |
|
25-Oct-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Change an int64_t to an intptr_t so that we don't end up with crashes in the back end on large classes on 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
dfa4ab91a09daa15be507d7b0f474ceb2b83b264 |
|
24-Oct-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Remove debugging printfs that some idiot left in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
89c300400b0b75d879da88f81c97a46feb0675be |
|
24-Oct-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Enable experimental support for objc_msgSend with GNUstep ObjC runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
49de5289acea91c9d224c9aadd4d527e8f9fdaff |
|
08-Oct-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Apparently getPtrToInt() takes an explicit type parameter to allow you to generate invalid bitcode, not so that it can actually produce a value of this type. This should fix PR11085. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e3c944a9f620dacb0c29d16e7d61c8e7fca10963 |
|
08-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix warning on MSVC. Patch by Aaron Ballman. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
917b28b980a8300ce9c7c8d71b2a77bb93b7cdd2 |
|
04-Oct-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Add bitmaps for strong / weak ivar layout (GNUstep runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2b014d6c0c6b8ac94b416ac37dfc7931f20777a7 |
|
01-Oct-2011 |
John McCall <rjmccall@apple.com> |
When performing an @throw in ARC, retain + autorelease the pointer, being sure to do so before running cleanups associated with that full-expression. rdar://10042689 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
578faa837b552403e2002b97fdfbfde14f2448e5 |
|
27-Sep-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
de-tmpify clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Switch assert(0/false) llvm_unreachable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
243f108a7c5dc4733e9ef6b7b7c2cd0465cf2104 |
|
21-Sep-2011 |
Richard Trieu <rtrieu@google.com> |
Change "ivar" to true for a boolean function argument. Since string literals are cast to true, this should no effect on behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e289d81369914678db386f6aa86faf8f178e245d |
|
13-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch LangOptions over to a .def file that describes header of the language options. Use that .def file to declare the LangOptions class and initialize all of its members, eliminating a source of annoying initialization bugs. AST serialization changes are next up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c1c20114a401e503c07d68c47e0728bb063f35c8 |
|
12-Aug-2011 |
Chris Lattner <sabre@nondot.org> |
switch clang to use the new-new way of creating llvm::StructType's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4bd5d09e3a233ed23ec6f913166e4b75d8de215c |
|
08-Aug-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix typo so we don't use the wrong function for ending ObjC++ catch blocks (GNU runtimes) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137052 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
3fc81d32314eca98b51846f493a8bc77cf14a701 |
|
01-Aug-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix linkage type for tentative definition of ivar offset variables (GNUstep runtime) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
da549e8995c447542d5631b8b67fcc3a9582797a |
|
29-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove some unnecessary single element array temporaries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
db8264e4c5ffd7af6fbad4ca4306bd382bb02691 |
|
22-Jul-2011 |
Jordy Rose <jediknil@belkadan.com> |
Add a const overload for ObjCInterfaceDecl::all_declared_ivar_begin. This was previously not-const only because it has to lazily construct a chain of ivars the first time it is called (and after the chain is invalidated). In practice, all the clients were just const_casting their const Decls; all those now-unnecessary const_casts have been removed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
a5c04344fa70d6eec34344760c1fe511e16f2d76 |
|
21-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert ConstantExpr::getGetElementPtr and ConstantExpr::getInBoundsGetElementPtr to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
4c7d9f1507d0f102bd4133bba63348636facd469 |
|
15-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert CallInst and InvokeInst APIs to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ef6de3da8572607f786303c07150daa6e140ab19 |
|
11-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
De-constify Types in StructType::get() and TargetData::getIntPtrType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9cbe4f0ba01ec304e1e3d071c071f7bca33631c0 |
|
09-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
clang side to match the LLVM IR type system rewrite patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
63ff703393543904046462aee2ac0a53b8937a3e |
|
07-Jul-2011 |
David Chisnall <csdavec@swan.ac.uk> |
If we're using the pure non-fragile ABI, then skip some of the contortions required to support the transitional ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f074885425af40e5e03569371e453d9f7ae43aa6 |
|
07-Jul-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Set a flag to tell the runtime when we're compiling in ARC mode and use the pure-nonfragile ABI for both ARC and GC mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d3fc7296ae95353173bae25ee4dd3ecf4d6dced1 |
|
30-Jun-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Add support for weakly imported classes (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c7aed3b9fbfbb6e85c234a4ba6f00cab1901f2f7 |
|
29-Jun-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Add ARC support for the GNUstep runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
cf5abc7ba032bd35158e4d75b0bc92a482fc67e8 |
|
23-Jun-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Support for catching objc pointer objects in c++ catch-statement in fragile abi mode and some other cleanups. // rdar://8940528 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9d96bce991048fd2337cf058ec6a6a722207cbf2 |
|
22-Jun-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Alloa catching Objective-C id's being thrown with C++ throw in Darwin's fragile abi mode. // rdar://8940528 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c5cbb909e8a27deb8f1a2b6b7bf56a96051af81a |
|
20-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
Update to match mainline ConstantStruct::get API change. Also, use ConvertType on InitListExprs as they are being converted. This is needed for a forthcoming patch, and improves the IR generated anyway (see additional type names in testcases). This patch also converts a bunch of std::vector's in CGObjCMac to use C arrays. There are a ton more that should be converted as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7650d95a1a616ea300f37126a8dfc93dc19a662a |
|
19-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
update for api change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f85e193739c953358c865005855253af4f68a497 |
|
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
Automatic Reference Counting. Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions. Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
31fc0c1a16dabd397dd3323fb0dbe7052b87abd0 |
|
30-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix another incorrect type bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
95d318c4c10437db40ca6e15fdf32e04012da58e |
|
28-May-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Eliminate temporary argument vectors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
68e5e1331d99140ae5dd7b27c3dd28618827dfc8 |
|
28-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix another type mismatch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0bbe0cfd374d0e564c4570b5e84a77f886c32d52 |
|
28-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix missing cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b44eda31a214ad88616acbe28c3f0a70268adc6c |
|
25-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Remove bitcast to incorrect type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5f0bcc4c3f4a75375a3571e71bffebf603f4ca67 |
|
24-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix bug introduced with r131930. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e6a11a62d1d66d10a87d81ed697348d66d59adf7 |
|
24-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Don't omit retain / release / autorelease message sends in hybrid GC mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
789ecdebd04aebdb2d6b801ebe8e04a189ebc023 |
|
24-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix some problems where functions must be bitcast but we're expecting a llvm::Function of the right type. PR9994. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
a2120039ed08a5d5d6096e2560fd32c6128e951a |
|
23-May-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Provide the runtime with information about the GC compile options (GNU runtimes) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6f40e2244b0590f144c5ceee07981a962fbbc72e |
|
18-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to fix IR-gen crash generating structure ABI which implements user specified string class via -fconstant-string-class option. pr9914. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
04c9a49ee251424b11d7c4e8b1c23637684cecb6 |
|
02-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify code a bit by using CallArgList::add. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
635ca1bad3cce84cbe31a5574416e055c5e9f054 |
|
02-May-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Remove a dead variable flagged by gcc's -Wunused-but-set-variable. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7bcf6c3e098e808282cc96309c02c08ab6229940 |
|
29-Apr-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Don't crash if the AST doesn't have a sensible ObjC id type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c69a505cfa318d571ce8a0cd038c8d958585a735 |
|
23-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove unused STL header includes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e0afc892e75f526f7ecce7dd152d946337632efe |
|
22-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Replace a couple of literal 8s with ASTContext::getCharWidth(). No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6f141659cab11109d9931d92d0988f8850778de3 |
|
21-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
PR9214: Convert Metadata API to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
fc8f0e14ad142ed811e90fbd9a30e419e301c717 |
|
15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix a bunch of comment typos found by codespell. Patch by Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
978d415adab4ef423f5aef430ddfdbefc4cfb000 |
|
05-Apr-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix copy-and-paste bug that I introduced while tidying up the code. Does anyone want to buy me a new brain? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
bbf3bacb3e0c1ebb3e8a4a8b1330404a7e379315 |
|
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to PHINode::Create() giving the (known or expected) number of operands. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6be56729a8a2a97e2a62e4567bc6a21efb8ba53d |
|
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
(Almost) always call reserveOperandSpace() on newly created PHINodes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
81a65f576842a1d02b1e3db21c14652c60a36448 |
|
26-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Reformatted doc comments so that they are now difficult to edit in any editor that doesn't have explicit doxygen support, as per LLVM style guidelines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4cc7493bac46a0351f4254b53e87fe962ed54081 |
|
25-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Added some doc comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9735ca6e01113aec6a825dd5b1cb1b98fb377d31 |
|
25-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Continuing work on ObjC tidyup: - Moved the CGObjCRuntime functions out of CGObjCMac.cpp into CGObjCRuntime.cpp - Added generic functions in CGObjCRuntime for emitting @try and @synchronize blocks, usable by any runtime that uses DWARF exceptions. - Made the GNU runtimes use these functions. It should now be possible to replace the equivalent functions in CGObjCNonFragileABIMac with simple calls to these two functions, providing the runtime functions as arguments. I'll post a diff to the list for review before making any changes to the Mac runtime stuff. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c7ef46254339450de33125f712c7b99afaf4fbcd |
|
23-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed type error in last commit (forgot that now that selectors are not accessed via the indirect pointer, they don't need to be pointers to pointers). Finished moving the message lookup code into separate subclasses for each runtime. Also performed a few smallish related tidies. We're now bitcasting the result of the message lookup functions, rather than casting the lookup functions themselves, so the messages.m test needed updating to reflect this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
647cc93d6ee10b744f3084975e626329a6932c47 |
|
23-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Revert r128156 because of CodeGenObjC/messages.m and Coverage/codegen-gnu.m. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
961891d6bb24cbf3cffbd0d1489836f2b17149fd |
|
23-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Remove the redundant loads / stores to globals that we were generating for selectors (GNU runtimes). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9f6614e3c5d34998dd5a5cc6faf0746dcd611d49 |
|
23-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Initial work on refactoring GNU runtime code (long overdue - it's quite obvious that I hadn't used C++ for several years before writing most of this code). Still lots more to do. This set of changes includes: - Remove the distinction between typed and untyped selectors. More accurately reflect what the runtime does, by using typed selectors everywhere, with an empty type field if the types are unknown. Now we just store a small list of types for each selector (in theory, this should always be exactly one, but this constraint was not enforced back in 1986 when it should have been). - Add some consistency to how runtime functions are created. These are all generated via the LazyRuntimeFunction class (which might be useful outside CGObjCGNU - feel free to move it into a header if it is). This function stores the types of a function, looks it up the first time it's used, and caches the result. This means that we're now not wasting time constructing the llvm::FunctionType every time some of the functions are looked up, but also not inserting references to runtime functions into the module if they're not actually used. - Started separating out the fragile and non-fragile ABI behaviours into two subclasses of CGObjCGNU: CGObjCGCC for the legacy GCC runtime ABI and CGObjCGNUstep for the new GNUstep ABI. Not all of the differences in behaviour are factored out yet, but they will be in future commits. - Removed all of the CodeGen:: things: we've been using namespace CodeGen in this file for ages, so having explicit namespace specifiers is just a bit confusing. - Added a few more comments. - Used llvm::StringRef instead of std::string in a few places. - Finally got around to storing the module path in the module structure. The ABI says that the compiler should do this, although it's not used in the runtime or exposed outside the runtime, so it's pretty useless. Still to do: - We currently have two code paths for generating try blocks, one for ObjC and one for ObjC++. Not only are these substantially similar, they are also very similar to the CGObjCMac version. These need factoring out into a single parameterised implementation, either in CGObjCRuntime or CodeGenFunction. The EmitObjCXXTryStmt() function was added so that the changes to fix a bug in time for the 2.9 release would be self-contained and reduce the chances of breaking anything else, but these should be done properly as soon as possible. - Split up some large functions (e.g. GenerateClass()) into smaller functions for generating the various data structures. - The method lookup code into the two subclasses, removing the conditionals in the message send functions. - Add doxygen comments on the remaining undocumented functions. - We seem to be generating global pointer variables for selectors, then storing a pointer to the selector, then generating a load of this pointer (and then a load of the real selector later) every time a static selector is used. I can only assume I was asleep or drunk when I did this - we should just be referencing the selectors directly in the selector array. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7e02d1aebb3ee0841f398a836ba5d34be5cdb4b3 |
|
22-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Make the ivar offset always be a ptrdiff_t, because stuff in CGObjC.cpp expects this. Actually, it expects a long, but that's a bug that will be fixed in the next commit... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
80558d2db10a96eada4d8fb79949b3263b44652b |
|
20-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix Objective-C++ exceptions (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4d000b322fb1e7ed7fa2de5ab4bfb473bad2edae |
|
16-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix foreign exception handling (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b2eb86ff8a02688407df737368d29650a092f25b |
|
14-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix incorrect linkage specifiers for selectors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e9c58163e633afef4eeb7166d00f6dd718ff828a |
|
23-Feb-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Fix type mismatch between property function that CGObjCGNU was returning and the one CGObjC was calling. Fixes bug r9294. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
05f3a507bb53ed2bd5573d551a26654a604187eb |
|
22-Feb-2011 |
David Chisnall <csdavec@swan.ac.uk> |
The instance size of a metaclass should be the size of a class. This is not, in fact, 0, even for very small classes. (GNU runtime) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5f022d82696c84e4d127c558871d68ac6273274e |
|
09-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert RecordLayout::Size to CharUnits from bits. No changes to functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6b5a61b6dc400027fd793dcadceeb9da944a37ea |
|
07-Feb-2011 |
John McCall <rjmccall@apple.com> |
A few more tweaks to the blocks AST representation: - BlockDeclRefExprs always store VarDecls - BDREs no longer store copy expressions - BlockDecls now store a list of captured variables, information about how they're captured, and a copy expression if necessary With that in hand, change IR generation to use the captures data in blocks instead of walking the block independently. Additionally, optimize block layout by emitting fields in descending alignment order, with a heuristic for filling in words when alignment of the end of the block header is insufficient for the most aligned field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
36f893c1efe367f929d92c8b125f964c22ba189e |
|
28-Jan-2011 |
John McCall <rjmccall@apple.com> |
Move all the cleanups framework code into a single file. Pure motion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8fac25d33b13e25f512dd921d4d5a4b565f5d175 |
|
26-Dec-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Add support for GNU runtime property set / get structure functions. Minor refactoring of Mac runtime (returns the same function for both, as the Mac runtimes currently only provide a single entry point for setting and getting struct properties, although this will presumably be fixed at some point). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0b9c22b61a3c99c8c0e8d898adb0f60afa76584e |
|
09-Nov-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Remove the use of aliases in outputted code from ObjC (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e0d987626cc11317b36d6d3cc148c9a9d4b35850 |
|
03-Nov-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Some fixes for synthesized ivar metadata (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b6bbcc9995186799a60ce17d0c1acff31601653a |
|
15-Oct-2010 |
John McCall <rjmccall@apple.com> |
Death to blocks, or at least the word "block" in one particular obnoxiously ambiguous context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c5904b40c3d76b612fb09c6d2717f646a0af6670 |
|
11-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes an obscure bug in importd block variable layout information when imported variable is used more than once. Originally though to be a bug in importing block varibles. Fixes radar 8417746. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2f4eaef37476ae6891ede8ba215d0f6fd093629b |
|
17-Aug-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Convert all uses of StringLiteral::getStrData() to StringLiteral::getString() and remove getStrData(). Patch by Peter Davies (with some tweaks). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
89ecd41e0a6bfb3b0913dbe41c3c666340b308c7 |
|
04-Aug-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Some early work for providing block layout info. for objective-c/c++ blocks (NeXt runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5a180397870944548aaadeaebf58e415885b9489 |
|
24-Jul-2010 |
John McCall <rjmccall@apple.com> |
Support catching Objective C pointers in C++ under the non-fragile NeXT runtime. Diagnose attempts to do this under the GNU or fragile NeXT runtimes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ff8e11579fc904aa4032d90d2be6ce1ac5fc9fe1 |
|
23-Jul-2010 |
John McCall <rjmccall@apple.com> |
Revise cleanup IR generation to fix a major bug with cleanups (PR7686) as well as some significant asymptotic inefficiencies with threading multiple jumps through deep cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f69ea958964ab0452299f1df68ce469b67d18d3a |
|
21-Jul-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Don't crash when sending a message inside a block with the non-fragile ABI (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
41d0c7a2355c1a47b33f5e528c5f815ca5b52e9e |
|
21-Jul-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Mark the load after calling objc_msg_lookup_sender() so that it doesn't get optimised away (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1f0fca54676cfa8616e7f3cd7a26788ab937e3cd |
|
21-Jul-2010 |
John McCall <rjmccall@apple.com> |
Rename LazyCleanup -> Cleanup. No functionality change for these last three commits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
740e807eee153348f50a86f4a6eac49f324467ab |
|
21-Jul-2010 |
John McCall <rjmccall@apple.com> |
Convert the ObjC @synchronized cleanups to laziness. This is not actually a big deal, except that I want to eliminate the shared-code EH cleanups in preparation for a significant algorithmic fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
021a7a63984f0f912dc9e9dae2a1b3e1509a40ce |
|
20-Jul-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Adopt objc_assign_threadlocal() for __thread variables of GC types. Implements radar 8203301. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
da65ea86482bc116906edfb9ba1d7124f76cc867 |
|
13-Jul-2010 |
John McCall <rjmccall@apple.com> |
Teach IR generation how to lazily emit cleanups. This has a lot of advantages, mostly in avoiding unnecessary work at compile time but also in producing more sensible block orderings. Move the destructor cleanups for local variables over to use lazy cleanups. Eventually all cleanups will do this; for now we have some awkward code duplication. Tell IR generation just to never produce landing pads in -fno-exceptions. This is a much more comprehensive solution to a problem which previously was half-solved by checks in most cleanup-generation spots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f1549f66a8216a78112286e3978cea2c29d6334c |
|
06-Jul-2010 |
John McCall <rjmccall@apple.com> |
Validated by nightly-test runs on x86 and x86-64 darwin, including after self-host. Hopefully these results hold up on different platforms. I tried to keep the GNU ObjC runtime happy, but it's hard for me to test. Reimplement how clang generates IR for exceptions. Instead of creating new invoke destinations which sequentially chain to the previous destination, push a more semantic representation of *why* we need the cleanup/catch/filter behavior, then collect that information into a single landing pad upon request. Also reorganizes how normal cleanups (i.e. cleanups triggered by non-exceptional control flow) are generated, since it's actually fairly closely tied in with the former. Remove the need to track which cleanup scope a block is associated with. Document a lot of previously poorly-understood (by me, at least) behavior. The new framework implements the Horrible Hack (tm), which requires every landing pad to have a catch-all so that inlining will work. Clang no longer requires the Horrible Hack just to make exceptions flow correctly within a function, however. The HH is an unfortunate requirement of LLVM's EH IR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
03b2960c14aede6ac82bdef32247094ebb72fa69 |
|
17-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Objective-c++ IRGen. Support for @selector expression as an lvalue. Fixes PR7390. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9d3347a5887d2d25afe8b0bd35783a72ec86cce2 |
|
16-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Give Type::isIntegralType() an ASTContext parameter, so that it provides C "integer type" semantics in C and C++ "integral type" semantics in C++. Note that I still need to update isIntegerType (and possibly other predicates) using the same approach I've taken for isIntegralType(). The two should have the same meaning, but currently don't (!). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
55bcace250e1ff366e4482714b344b8cbc8be5f3 |
|
16-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch adds support for copying of those objective-c++ class objects which have GC'able objc object pointers and need to use ObjC's objc_memmove_collectable API (radar 8070772). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ef072fd2f3347cfd857d6eb787b245b950771430 |
|
22-May-2010 |
John McCall <rjmccall@apple.com> |
Push a return-value slot throughout ObjC message-send codegen. Will be critical for ObjC++ correctness; hard to test independently of various required Sema changes, though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
a54da05098aff1ca992f5292f3f6a39ec3cef31e |
|
20-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fix my inability to spell 'continue' and a case where message sends returning non-pointer-sized things were generating invalid IR inside @try blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
506b57e8b79d7dc2c367bf2ee7ec95420ad3fc8f |
|
17-May-2010 |
John McCall <rjmccall@apple.com> |
Clean up some more uses of getAs<ObjCInterfaceType>() that Fariborz pointed out. The remaining ones are okay. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c12c5bba6ceb6acd4e51e7a0fc03257da9cfd44e |
|
15-May-2010 |
John McCall <rjmccall@apple.com> |
Substantially alter the design of the Objective C type AST by introducing ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
22b8827d340d2993639c2ec53e9d2b4e4d876beb |
|
09-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Tweaked selector mangling again (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
20fba8ad3fda19bd23d67c069f39080320d46fd5 |
|
08-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed linkage problem from last commit (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
87935a8d5c0eeda8ad62815f4fc815ad25c7cd8e |
|
08-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Tweaked selector generation (GNU runtime). Removed the use of GlobalAliases in the generated bitcode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4b02afcb45cd1a384de7d45f440a8be091dd500b |
|
02-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
As per Chris' request, return the Instruction from EmitCall and add the metadata in the caller. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
63e742bed90aab2e8e778e48fbbd4bce766b4373 |
|
01-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Attach message send metadata to the lookup as well as to the call (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
db831948f32217ece8410099f9982ef900c3b3c3 |
|
01-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Make super message lookups cacheable (GNUstep Runtime) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
dd5c98f709837e5dd3da08d44d1ce407975df2cf |
|
01-May-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Tweaked EmitCall() to permit the caller to provide some metadata to attach to the call site. Used this in CGObjCGNU to attach metadata about message sends to permit speculative inlining. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
866163bf6c66211a9b4d5ba160ac02de04ce4be6 |
|
30-Apr-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed incorrect type of alloca (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c6cd5fd3eae71f8841504a396563343cfaaf503e |
|
28-Apr-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Changed signature of GenerateMessageSend() function to pass the ObjCInterfaceDecl for class messages and removed the boolean IsClassMessage argument, which wasn't used anywhere. Emitted some metadata on message sends to allow a later pass to do some speculative inlining of class methods (GNU runtime). Speculative inlining of instance methods requires type feedback to be useful (work in progress), but for class methods it works quite nicely. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
07c55e36a0d1625c38354f6814099c5951e94202 |
|
28-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8c757f9ea33dccff4da7810e0c1bda59c19ddc9a |
|
28-Apr-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Emit the correct symbol name for the class (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
254e2d9e61dd0adb9c5e219d901f9872fd951728 |
|
27-Apr-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed message send to void (broken by my last commit - GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
664b7c74aff2ccdf9d13eae08b3466326fc6cc1f |
|
27-Apr-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Ensure return from a message to nil is always 0 (GNU runtime). This works around stack corruption / crashes resulting from PR6944, and also works around people who expect 'what works on my machine' to work everywhere (GCC crashes in a number of cases on SPARC that should now work correctly with clang). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c00d8e18ad3d903acfeb5d05163ce90713066a3f |
|
26-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Make the static type of the exception variable in an Objective-C @catch a VarDecl. The dynamic type is still a ParmVarDecl, but that will change soon. No effective functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8f5e3dd32e443768d9dbbad7191e123e6733750c |
|
24-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve the AST representation of Objective-C @try/@catch/@finally statements. Instead of the @try having a single @catch, where all of the @catch's were chained (using an O(n^2) algorithm nonetheless), @try just holds an array of its @catch blocks. The resulting AST is slightly more compact (not important) and better represents the actual language semantics (good). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
cb421fa690da545b58a720abe5f1c49b166dbde7 |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d901da531433254210a08e8b1f9e1ad049b340aa |
|
19-Apr-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Don't just emit ivar metadata - emit CORRECT ivar metadata. (GNU runtime) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7f63cb098f2461643f71ea590c1a477603f27f63 |
|
19-Apr-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fix emitting ivar metadata for synthesized ivars and some 64-bit fixes. (GNU runtime) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6cc590602f41c3e98e8af0023d54296c8eca7910 |
|
12-Apr-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Add some API code for future work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101052 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
264ba48dc98f3f843935a485d5b086f7e0fdc4f1 |
|
30-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
the big refactoring bits of PR3782. This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4c8c8e93ca3b63de4d30f4a460b50fe63fd6bd3b |
|
20-Mar-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed synthesizing properties declared in properties (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ad9e06d82ae627e858e5bfe4a7f1f9337b5b0a15 |
|
13-Mar-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed copy-and-paste error causing categories to contain the protocols declared on the class, not the protocols declared on the category. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
42ba04a072c69d84a6660e4498215086662910ac |
|
26-Feb-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Don't generate method metadata for @dynamic properties. Fixes PR6354. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ead608af31b6c9abeae1ca6d0b75094dac4641c0 |
|
26-Feb-2010 |
John McCall <rjmccall@apple.com> |
Use the power of types to track down another canonicalization bug in the ABI-computation interface. Fixes <rdar://problem/7691046>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
74a8bbf0654fbbf37be04b240b5bbe591f37f242 |
|
09-Feb-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
StringRefize two random methods, remove a dead variable and a weird constructor call. This maybe fixes some of the errors GCC 4.5 gives on this code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
6d5a1c28593443f3973ef38f8fa042d59182412d |
|
03-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Numerous changes to selector handling:", this breaks a whole bunch of working code, for no apparent reason. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ef6e0f3218b64d8ea3b8b57ee657fec8da228a43 |
|
03-Feb-2010 |
David Chisnall <csdavec@swan.ac.uk> |
First pass at adding GC support for GNU runtime. GC ivar maps not yet constructed, GC flag not set. Please don't try using this yet - the runtime support is still very immature and your code will almost certainly crash if you do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
a8fa96e366ab36145a5500dd4fbea717c217f131 |
|
03-Feb-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Numerous changes to selector handling: - Don't use GlobalAliases with non-0 GEPs (GNU runtime) - this was unsupported and LLVM will be generating errors if you do it soon. This also simplifies the code generated by the GNU runtime a bit. - Make GetSelector() return a constant (GNU runtime), not a load of a store of a constant. - Recognise @selector() expressions as valid static initialisers (as GCC does). - Add methods to GCObjCRuntime to emit selectors as constants (needed for using @selector() expressions as constants. These need implementing for the Mac runtimes - I couldn't figure out how to do this, they seem to require a load. - Store an ObjCMethodDecl in an ObjCSelectorExpr so that we can get at the type information for the selector. This is needed for generating typed selectors from @selector() expressions (as GCC does). Ideally, this information should be stored in the Selector, but that would be an invasive change. We should eventually add checks for common uses of @selector() expressions. Possibly adding an attribute that can be applied to method args providing the types of a selector so, for example, you'd do something like this: - (id)performSelector: __attribute__((selector_types(id, SEL, id)))(SEL) withObject: (id)object; Then, any @selector() expressions passed to the method will be check to ensure that it conforms to this signature. We do this at run time on the GNU runtime already, but it would be nice to do it at compile time on all runtimes. - Made @selector() expressions emit type info if available and the runtime supports it. Someone more familiar with the Mac runtime needs to implement the GetConstantSelector() function in CGObjCMac. This currently just assert()s. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
48272a078e54d501cb05edd797c54b8e82ceb520 |
|
27-Jan-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Unique ObjC strings (GNU Runtime); fix for PR6142. Note: Doing this in the runtime-specific code is a bit ugly. It would be a good idea to hoist all of the string / protocol uniqueing code up into CGObjCRuntime or CodeGenModule and only handle emitting the original versions in the runtime-specific code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0d13f6fdbdd6f06e2449b8834dda53334abd399a |
|
23-Jan-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Created __builtin___NSStringMakeConstantString() builtin, which generates constant Objective-C strings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d346736dfe5ef584a2d0c9d27d217408ee394b9b |
|
14-Jan-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Made ObjC method name mangling match GCC (which does it in a stupid and broken way that can give conflicts on method names containing underscores, but is needed for gdb to work because gdb does not know how to read ObjC class tables and relies on the mangling). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f950837b8250c7f08d0b7b15ace0b35740721c9d |
|
11-Jan-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fix type mismatch on 64-bit platforms (GNU ObjC). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
41d63ed274d1bf7ba7459f218c8f6a385fc5c6d6 |
|
08-Jan-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Export a public symbol for classes with the GNU runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
90665bd87f4ef7c230742e038cd0bad68e40fc78 |
|
06-Jan-2010 |
David Chisnall <csdavec@swan.ac.uk> |
Fix for PR5691 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
0faa51632584b8d56311d5792a2a275729bc67e3 |
|
24-Dec-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Fix for bug 5691. This fixes throwing exceptions inside @catch blocks nested inside outer @try blocks and also fixes jumping from an inner @finally to an outer @finally (via any relevant @catch blocks). The code exhibiting this bug was based on code from CGObjCMac. I believe that this bug may still be present on the Mac runtimes, although the test case in the bug contains a few GNUisms and won't compile without some minor tweaks with Apple's libobjc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1b0969590e712d7d52fc9c0d43d3ab85c36d07a6 |
|
29-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Change LangOptions::ObjCConstantStringClass to an std::string to avoid worrying about the lifetime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90052 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ff80fabfa42d4aadbbaab4d61fa518d80b5a981a |
|
20-Nov-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed crash when using undefined protocols (GNU runtime). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
aecbf24a6bad049437f8fec97e557d414003a3db |
|
17-Nov-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed bug where ivar offsets were being initialized as 0 with the fragile GNU ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1804463ee790ac3cc73f72597ccb38b983f7d263 |
|
16-Nov-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Fixed two minor differences between clang and GCC-generated runtime structures for the GNU runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
790b20ed2cec72b4a79d1829ffc2c0339acbdec3 |
|
14-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
There is now only one version of eh.selector and eh.typeid.for. Fix the clang build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
3c0ef8cc0dc246bd3083e8cdd63005e8873d36d2 |
|
13-Oct-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify pointer creation with the new Type::getInt*Ptr methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6c7a1f364796ce1acb988714e9e42076d1ce332e |
|
25-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch fixes a code gen. bug in generation of objc_assign_ivar (objc GC's API). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
0d36dd28bb40b08a93d7f64196794882eee08ee8 |
|
19-Sep-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Make clang stop relying on ConstantStruct::get's default value for isPacked which will be going away (ie. it's becoming a required parameter) later today. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6793966aa221764f579cc8436bd641e1ec339c6d |
|
17-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
IRgen/ObjC: Correctly construct the function info for variadic message sends. This fixes some bad -O0 codegen and the unnecessary clearing of al on entry to objc_msgSend for most message sends. <rdar://problem/7102824> [irgen] unnecessary xorb on calls to objc_msgSend on x86_64 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d6c93d703541c992e06eb9a59a2d826a30da65b2 |
|
17-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
IRgen/ObjC: Make the target method decl available to GenerateMessageSendSuper. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
a7c5b0832cc78efa899463b8faa573a1473d53d2 |
|
14-Sep-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Small fix to stop CGObjCGNU emitting symbols that break some versions of gas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
389a0e8b6568932780dfd500790494e5fb598058 |
|
11-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix use of uninitialized, David please check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d9a1db3a4ded1c8f0daa43c0d6167576e2766453 |
|
10-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Non fragile ABI for GNU runtime. Patch bu David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
08c321380fff07d476a19daab6d29522c046cd49 |
|
31-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Re-implemented generation of objc_memmove_collectable API for copying GC'able aggregates (Next runtime only). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8a5a9aaddb627c0884c2ed8db55cc29fdb601195 |
|
31-Aug-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Updated GNU runtime non-fragile ABI. Added -fconstant-string-class= option. Added __has_feature() test for non-fragile ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0f436560640a1cff5b6d96f80f540770f139453f |
|
17-Aug-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Initial patch to support definitions of id and Class from headers in Objective-C code. This currently breaks test/SemaObjC/id-isa-ref.m and issues some spurious warnings when you attempt to assign a struct objc_class* value to a Class variable. The test case probably should fail as it's written, because without the definition of Class the compiler should not assume struct objc_class* is a valid receiver type, but it's left broken because it would be nice if we could get that passing too for the special case of isa. Approved by snaroff. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8c8f69ec1477424e11faef6b235505584d61e522 |
|
14-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
47a434ff3d49e7906eda88e8e8242e4297725b32 |
|
06-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f35271b8677a5f31498b89587b1da42a06dd46fd |
|
05-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
cgobjcgnu was making invalid common globals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
bb1c8600218b3244340331165fc7cba7bf227655 |
|
31-Jul-2009 |
Mike Stump <mrs@apple.com> |
Fixup spacing and 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.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/CGObjCGNU.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/CGObjCGNU.cpp
|
3c4972def972f8ca44dcd0561779a12aaa6fec97 |
|
29-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7db6d838aad4083fe86d7bf703a75fe6e8a17856 |
|
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
08e252425ca2cbdc44ba65d9a657ed5398014e36 |
|
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
309a4368cd299cff30ab22709e2b772cf8059e45 |
|
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix declaration of obc_enumerationMutation function, for GNU runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
19cc4abea06a9b49e0e16a50d335c064cd723572 |
|
18-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Revert r75641. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ad64e024bd18cf25dcfa44e049004371838decd8 |
|
18-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
fix objc codegen to not have its own list of things that eventually get into llvm.used, just populate CGM's list directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
3d598a5ab3c8aabce0a03a2f5dea65eee643e5ac |
|
14-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Rename RecordLayout.h to ASTRecordLayout.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
14108da7f7fc059772711e4ffee1322a27b152a7 |
|
11-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
This patch includes a conceptually simple, but very intrusive/pervasive change. The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches. This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic. By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time. Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
aac8705c046f01a264a4f82832895a5d9e695633 |
|
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for IRBuilder API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.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/CGObjCGNU.cpp
|
082b02e8403d3ee9d2ded969fbe0e5d472f04cd8 |
|
08-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Implemented memmove_collectable API for Next runtime when struct variables with GC'able members are copied into. Will provide a test case later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c51db23f58bd887b16cf91554aa86c430a2496e7 |
|
03-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This fixes the case where the wrong symbol is emitted leading to linking errors when you reference a class before defining it (GNU runtime). Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b59761b2530bf54926bf67de11956f3820ac38d9 |
|
01-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
use new and simplified LLVM APIs. Patch by Jay Foad! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
c38e9affd4519ea199af22419c8c794973cc4b23 |
|
23-Jun-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch fixes an obscure bug when 'used' attribute is applied to variables in ObjC's Next runtime mode. Next runtime also implicitly applies 'used' attribute on some of its meta-data. This results in two 'llvm.used' arrays to be generated, and one of them is renamed to 'llvm.used1'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2a8e4e1d8548dc3e30d7c9ba92127c7884a11448 |
|
15-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
"GCC emits an __objc_class_name_{classname} symbol for every class, and a corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8e6ac1d80055fa37b9b84029c7e751624ba7f84c |
|
04-Jun-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Cleanup/Refactoring of ivar collection. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
34e65770ad6142b033d6cec4f476ed20fb248bf3 |
|
22-May-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch adds support for sender-aware dispatch in Objective-C for the GNU runtime, when compiled with -fobjc-sender-dependent-dispatch. This is used in AOP, COP, implementing object planes, and a few other things. Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9cd96ff7dfcb51fdba03df8803fff6cc36e9633f |
|
20-May-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch provides preliminary support for non-fragile instance variables on the GNU runtime. It currently requires a patches to GNU libobjc (and so is not enabled by default) which are currently being tested and reviewed by GNUstep before being pushed upstream. This patch does not allow support for synthesized ivars, but does provide the infrastructure needed for supporting them. Patch by David Chisnall git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
cb9dad0393a000bea87370c4d12faf3667ed22e5 |
|
19-May-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch allows clang to generate code for declared properties on the GNU runtime. As with @synchronized, this requires some extra functions that are included with other libraries (not with the GNU runtime itself) and so will cause linker errors when these are not present. Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1e64a9531bf6e9d99ad3271b3a735ef702689b06 |
|
17-May-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch fixes two bugs in the GNU Objective-C runtime implementation. One is a case in rethrowing exceptions where the C types don't match correctly (I already sent this patch to Daniel Dunbar, who found the bug, so it may have already been committed). The other fixes the case properties so that the methods generated as property accessors are added to the class structure correctly. Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d6a9907ceff2c52738a72e38b6a04ab44ce1173f |
|
11-May-2009 |
Chris Lattner <sabre@nondot.org> |
More improvements for GNU runtime objc EH, patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
bb422ad4f449cd195a141309a886ff467baac5b2 |
|
08-May-2009 |
Chris Lattner <sabre@nondot.org> |
further improvements to gnu objc EH stuff, patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
48e6e7e8106f2404bfdd2d8abe7a840aeeaf047b |
|
08-May-2009 |
Chris Lattner <sabre@nondot.org> |
"This patch fixes message sends to super in categories for the GNU runtime. This used to work, but I broke it when I modified the code to emit the same thing as GCC for message sends to super in classes." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5dc0867af17b3bd6f567897433853b2b4767446c |
|
08-May-2009 |
Chris Lattner <sabre@nondot.org> |
initial support for ObjC exceptions with the GNU runtime: "This patch is a first pass at adding support for exceptions for the GNU runtime. There are a few limitations at present: - @synchronized() is not yet supported at all. gcc currently emits calls to runtime library functions that don't exist for this directive. - Only id @catch statements are currently working. This is enough for NS_DURING and friends, but I need to spend more time reading the output from gcc -S to work out how it finds the class pointer to make arbitrary class type catch statements work. - I've tested it with a few common cases[1] and the clang test suite (which doesn't test exceptions for the GNU runtime, but shows I haven't broken anything else), but there are probably a lot of cases I've missed." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
df9ccc6381314ccca6407abb209155e9273a631d |
|
05-May-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to support Gnu runtime's typed selectors. Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c6e2ab0dd61e53fa7889a4f97d74d53f4b1af278 |
|
04-May-2009 |
Chris Lattner <sabre@nondot.org> |
"The attached diff fixes the //FIXME in message send to super. This should now be faster, and works in the presence of class posing. This is now the same approach as used in GCC (the earlier code was a quick hack to get something working)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5efccb1ab81a029ddeb3ea18e239d0ddc124ec2b |
|
04-May-2009 |
Daniel Dunbar <daniel@zuster.org> |
Patch from David Chisnall: The attached diff fixes the //FIXME in message send to super. This should now be faster, and works in the presence of class posing. This is now the same approach as used in GCC (the earlier code was a quick hack to get something working). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2bebbf0acee55404de4b8846713b64429e744e8f |
|
03-May-2009 |
Daniel Dunbar <daniel@zuster.org> |
Compute Objective-C metadata size information from the record layout, not the shadow structure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1d7e539bbee1981faddf45284c492deab4ca2e01 |
|
03-May-2009 |
Daniel Dunbar <daniel@zuster.org> |
Coalesce the ivar offset calculation further. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
16f0049415ec596504891259e2a83e19871c0d52 |
|
26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
split ObjC and C++ Statements out into their own headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
71238f67c5df13eef19450d66b7a7ab28377192a |
|
26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
"This fixes message sends to super in a way that both works with real code and passes the test in the test suite. It also fixes a crash when using recent versions of GNU libobjc and compiling modules that do not contain any constant strings but do contain a declaration of the constant string class and possible some other corner cases (thanks to Pete French for providing me with a test case for that one)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
653f1b1bf293a9bd96fd4dd6372e779cc7af1597 |
|
23-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the three SmallVectors in ObjCImplDecl (for instance methods, class methods, and property implementations) and instead place all of these entities into the DeclContext. This eliminates more linear walks when looking for class or instance methods and should make PCH (de-)serialization of ObjCDecls trivial (and lazy). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
84ad77a8f83121713ea69d8002d1fd19565f87ab |
|
22-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CGObjCRuntime::GetConcreteClassStruct to encapsulate access to the underlying llvm::StructType for an interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c8cbf1944863160f5f6f82967270b68bfb41361f |
|
22-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Use ComputeIvarBaseOffset instead of looking up by hand. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9777687562c338601c2f17906e65e1c1a0aad96f |
|
22-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Merge ivar access amongst the three runtimes. - For now, this means we are always doing the address computations by hand instead of constructing a proper GEP. Right now, however, this is less important than having fewer entry points to dealing with Objective-C interface layout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2a03192a02dbf4fdff438d1e658356bde871aba4 |
|
22-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Make ObjCInterfaceDecl's const in some more places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
525c9b7baeeff022127cd1b167579f3bda73b3ed |
|
21-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Kill ASTContext::[gs]etFieldForDecl, instead we just lookup things when we need them -- which is exactly what some code was already doing! - No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6bf2ae05c777052e5ec05649710380dea263e7e0 |
|
21-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove LateBoundIVars() runtime interface, it is unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9e6c20bae697c908b7d368c0f79f5510d1006a65 |
|
21-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Assert on a few conditions that (I believe) should hold w.r.t. ASTContext::[gs]etFieldDecl, and the Field argument to EmitObjCValueForIvar). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
60952f94cf67ddb566600434857cad7a48264c3b |
|
20-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove non-const form of lookupFieldDeclForIvar. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b7b58b1fcd3007730fd46471583543c9b57c7693 |
|
19-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Fix rdar://6804402 - crash on objc implementations declared with @class but no implementation. This was broken in all 3 runtime impls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
33b3bc9cab760cc5104f5f7be8eb25d35e7b6c61 |
|
19-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
revert david's patch, which causes a testsuite failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
39d462e231de8f37fffd5a32394fb7642f489d10 |
|
19-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
"This patch fixes message sends to super in class methods for the GNU runtime (currently an instance method lookup is being performed)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6ab3524f72a6e64aa04973fa9433b5559abb3525 |
|
09-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Propagate the ASTContext to various AST traversal and lookup functions. No functionality change (really). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
91a0b51438e5259a79d68d7450c453827beed9e2 |
|
01-Apr-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a problem where the compiler is reporting the wrong size to the Gnu runtime on 64-bit architectures. Patch by David Chisnall git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
09dc6660487fc2f4a4bb2032e30123d3e0da7230 |
|
01-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
tidy some code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f8c4f5469d7db591eeacfc3381d91f773fb7af43 |
|
31-Mar-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to fix proptocol reference ir-gen for GNU runtime. Patch by David Chisnal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
33fdb738a6c125f4c788733897021b7c1a062b0c |
|
31-Mar-2009 |
Steve Naroff <snaroff@apple.com> |
Some "prep" work for handling ObjC @-string constants that contain UTF-8. No functionality change. Changed GenerateConstantString() to take an ObjCStringLiteral (instead of a std::string). While this isn't strictly necessary, it seems cleaner and allows us to cache to "containsNonAscii" if necessary (to avoid checking in both Sema and CodeGen). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
26c8294dacc2efc83d8d560593ff863e7a32a48f |
|
30-Mar-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Use CodeGenModule API for ObjC runtime function references. Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7ce77920a35060f1c8dd72e541e42ce296ccd168 |
|
28-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Obscure code gen bug related to sending message to 'super' in a class method declared in cateogy (darwin specific). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f63aa3fd429cdb9145d78f0b656bc78754efedb9 |
|
10-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Some refactoring of Ivar offset code gen. in preparation for nonfragile ivar offset work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b3716efb0966620f205c939b671b579ad331ca0d |
|
04-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch fixes messaging for GNU runtime. Patch by David Chisnall git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
660af749c0ad54cf8f6db611f31f0fa4115e4fd8 |
|
03-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
GNUStep fast enumeration. Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
598d3f61b6ca854e9d3c2f3359e24468502a61aa |
|
03-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for nonfragile ivar bitfield access (objc2 nonfragile abi). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
45012a7ef5abf1042c893f3f2fa5c23cb5485ea9 |
|
03-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
objc2's ir-gen for nonfragile ivar access. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
541b63b1a9db77e4a8670e9823711c2c12e58afb |
|
03-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Thread CGFunctionInfo construction through CodeGenTypes. - Inefficient & leaks memory currently, will be cleaned up subsequently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
88b5396b0897f28d22ae3debf4a0d97b33b6c362 |
|
02-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
More ABI API cleanup. - Lift CGFunctionInfo creation above ReturnTypeUsesSret and EmitFunction{Epi,Pro}log. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
bb36d331f439f49859efcfb4435c61762fbba6f9 |
|
02-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
ABI handling API changes. - Lift CGFunctionInfo creation up to callers of EmitCall. - Move isVariadic bit out of CGFunctionInfo, take as argument to GetFunctionType instead. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0bb20361a321593887f067515dd04cf109f4c74a |
|
02-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Refactored code gen for ivar access in preparation for objc2 nonfragile ivar access code gen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e160c9b09d2f5098dfdcca99b9c6485487e0c252 |
|
27-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
improvements for GNU objc runtime support, patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
60ae0f1a47788ab1e8233a5a4411a58cee9ea918 |
|
21-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
revert the gnu objc patches, they regress codegen-gnu.m git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
3f33e0afa9ba35e5398a552a5a4fec42ff2aee52 |
|
21-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
switch from getTypeAtIndex to getElementType. It is non-virtual and more idiomatic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2fe9e9a4909c03a4316adb5bd16bcc4c13cac632 |
|
21-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Fix objc type conversion issues with the GNU runtime, patch by David Chisnall git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
491c7b77cd8ec8570f646d43b937a5aec688bcbf |
|
12-Jan-2009 |
Daniel Dunbar <daniel@zuster.org> |
(LLVM up) Match TargetData API change in LLVM TOT. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
679a502d462ef819e6175b58e255ca3f3391e7cf |
|
10-Jan-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch fixes the code gen failures which was a fallout from not merging protocol properties into the classes which use those protocols. With this patch, all my exceutable test pass again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
3e0a540b6d846178857289ec0eb8470a278d11a3 |
|
08-Jan-2009 |
Steve Naroff <snaroff@apple.com> |
Remove redundant method context (now that ObjCMethodDecl isa ScopedDecl). Convert clients to use the standard getDeclContext() API. Doug, thanks for the review! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0701bbb228dfd87e1fe82a0a4b7b9facfecb43da |
|
08-Jan-2009 |
Steve Naroff <snaroff@apple.com> |
This is a large/messy diff that unifies the ObjC AST's with DeclContext. - ObjCContainerDecl's (ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl), ObjCCategoryImpl, & ObjCImplementation are all DeclContexts. - ObjCMethodDecl is now a ScopedDecl (so it can play nicely with DeclContext). - ObjCContainerDecl now does iteration/lookup using DeclContext infrastructure (no more linear search:-) - Removed ASTContext argument to DeclContext::lookup(). It wasn't being used and complicated it's use from an ObjC AST perspective. - Added Sema::ProcessPropertyDecl() and removed Sema::diagnosePropertySetterGetterMismatch(). - Simplified Sema::ActOnAtEnd() considerably. Still more work to do. - Fixed an incorrect casting assumption in Sema::getCurFunctionOrMethodDecl(), now that ObjCMethodDecl is a ScopedDecl. - Removed addPropertyMethods from ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl. This passes all the tests on my machine. Since many of the changes are central to the way ObjC finds it's methods, I expect some fallout (and there are still a handful of FIXME's). Nevertheless, this should be a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
fd64bb635dc221baa19f81d5d2a084f7eb269f7f |
|
15-Dec-2008 |
Fariborz Jahanian <fjahanian@apple.com> |
Code gen. for ivar references; including bitfield ivars. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
3a5013cab1162118bd5bcf00a36c52e19a319f87 |
|
04-Dec-2008 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Correct CodeGen assumption that LongTy == Int32Ty in a few places. This makes several CodeGenObjC tests pass on 64-bit by fixing assertions. This doesn't mean that the result is actually what the GNU runtime expects, though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d9d22dd9c94618490dbffb0e2caf222530ca39d3 |
|
24-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Rename NamedDecl::getName() to getNameAsString(). Replace a bunch of uses of getName() with uses of getDeclName(). This upgrades a bunch of diags to take DeclNames instead of std::strings. This also tweaks a couple of diagnostics to be cleaner and changes CheckInitializerTypes/PerformInitializationByConstructor to pass around DeclarationNames instead of std::strings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8ec03f58c33c33a917f54bb7f2cd61b6d7ffe0ca |
|
24-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Rename NamedDecl::getIdentifierName() to ::getNameAsCString() and make it assert if the name is not an identifier. Update callers to do the right thing and avoid this method in unsafe cases. This also fixes an objc warning that was missing a space, and migrates a couple more to taking IdentifierInfo and QualTypes instead of std::strings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.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/CGObjCGNU.cpp
|
bd71be4683c195260d5245118b1e13e6b2e20504 |
|
21-Nov-2008 |
Fariborz Jahanian <fjahanian@apple.com> |
Consolidated @try and @synchronize into a single code gen. method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7eda8367cf63caee8acf907356b1d199ccaa6e89 |
|
20-Nov-2008 |
Fariborz Jahanian <fjahanian@apple.com> |
Introducing objc_assign_ivar to clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
58626500527695865683d1d65053743de8770b60 |
|
19-Nov-2008 |
Fariborz Jahanian <fjahanian@apple.com> |
Generate strong write barriers for __strong objects. Also, took care of Daniel's commments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
3e283e344595e0bd499b13b30a92b7d9c10a2140 |
|
18-Nov-2008 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch for generation of weak write barriers for objc __weak objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6dc2317b59cb1180a59f6c283d96b7a5dfeb5307 |
|
18-Nov-2008 |
Fariborz Jahanian <fjahanian@apple.com> |
Generate objc_read_weak for __weak objc loads. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2e1cd4264d363ca869bf37ef160902f211d21b8c |
|
17-Nov-2008 |
Douglas Gregor <dgregor@apple.com> |
Introduction the DeclarationName class, as a single, general method of representing the names of declarations in the C family of languages. DeclarationName is used in NamedDecl to store the name of the declaration (naturally), and ObjCMethodDecl is now a NamedDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
10cac6f7115b59a466bb8d2d51cdddeb38aadc37 |
|
15-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Start implementing support for @synchonized with the darwin ObjC API. Patch by Fariborz! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
45d196b8387dcefc4df26cda114fa34c6528e928 |
|
01-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Move IRBuilder type definition to common file. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
0d504c1da852e58ff802545c823ecff3b6c654b8 |
|
17-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Remove unneeded EncodingRecordTypes argument to getObjCEncodingForType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
49f6602707887eea1a558a1dffe0213102f887f2 |
|
24-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add Obj-C runtime methods to get runtime specific functions for implementing property access. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
45c25ba11cbf8c9a461def5b03f6ee9481e06769 |
|
10-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Move FunctionType conversion into CGCall.cpp: - Added CodeGenTypes::GetFunctionType, taking a CGFunctionInfo. - Updated Obj-C runtimes to use this instead of rolling the llvm::FunctionType by hand. - Killed CodeGenTypes::{ConvertReturnType, DecodeArgumentTypes}. Add ABIArgInfo class to encapsulate ABI decision of how to lower types to LLVM. - Will move to target sometime soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
64d5d6c5903157c521af496479d06dc26032d718 |
|
09-Sep-2008 |
Anders Carlsson <andersca@mac.com> |
Move handling of @try and @throw to the runtime class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
46f45b9bec4a265ad8400a538e5ec3a5683617f1 |
|
09-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change CodeGen to emit calls using (RValue,Type) list: - Add CodeGenFunction::EmitAnyExprToTemp o Like EmitAnyExpr, but emits aggregates to a temporary location if none is available. Seems like this should be simpler (even aside from using first class aggregates). - Killed CodeGenFunction::EmitCallArg (just append the pair) - Conversion of RValues to actual call arguments is now isolated in CodeGenFunction::EmitCall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2abd89c039e835e84519a4cd8a7495899a70153d |
|
31-Aug-2008 |
Anders Carlsson <andersca@mac.com> |
Handle mutation while enumerating correctly. Fix some bugs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7f8ea5c5b3a6a4332a841eefdd86b0726722ea7b |
|
30-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add Objective-C property setter support. - Change Obj-C runtime message API, drop the ObjCMessageExpr arg in favor of just result type and selector. Necessary so it can be reused in situations where we don't want to cons up an ObjCMessageExpr. - Update aggregate binary assignment to know about special property ref lvalues. - Add CodeGenFunction::EmitCallArg overload which takes an already emitted rvalue. Add CodeGenFunction::StoreComplexIntoAddr. Disabled logic in Sema for parsing Objective-C dot-syntax that accesses methods. This code does not search in the correct order and the AST node has no way of properly representing its results. Updated StmtDumper to print a bit more information about ObjCPropertyRefExprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
19cd87eb5fb3c197e631ce08fd52c446c4d4e8f1 |
|
30-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Refactor handling of calls: - Added CodeGenFunction::EmitCall which just takes the callee, return type, and a list of (Value*,QualType) pairs. - Added CodeGenFunction::EmitCallArg which handles emitting code for a call argument and turning it into an appropriate (Value*,QualType) pair. - Changed Objective-C runtime interface so that the actual emission of arguments for message sends is (once again) done in the code to emit a message send. No intended functionality change, this is prep work for better ABI support and for Objective-C property setter support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
f56f1913e91ad32bed52dd3f6afc26735d336584 |
|
25-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Fix Obj-C super sends inside class methods. - NeXT loads the super class at runtime; this required changing the runtime interface to pass more information down. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8f2926b73ed635afecd020da787af6a837601a2b |
|
23-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Trim CGObjCRuntime::GenerateMessageSend[Super] - Returns an RValue. - Reduced to only taking the CodeGenFunction, Expr, and Receiver. - Becomes responsible for emitting the arguments. Add CodeGenFunction::EmitCallExprExt - Takes optional extra arguments to insert at the head of the call. - This allows the Obj-C runtimes to call into this and isolates the argument and call instruction generation code to one place. Upshot is that we now pass structures (more) correctly. Also, fix one aspect of generating methods which take structure arguments (for NeXT). This probably needs to be merged with the SetFunctionAttributes code in CodeGenModule.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
b7ec246872b412f0e7bb9e93eacfd78cfa6adfb3 |
|
16-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add NeXT runtime support for generating methods. Change CodeGenFunction::EmitParmDecl to take either a ParmVarDecl or an ImplicitParamDecl. Drop hasAggregateLLVMType from CodeGenModule.cpp (use version in CodeGenFunction). Change the Objective-C method generation to use EmitParmDecl for implicit parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
ddb2a3d55a24a1dbdf9152621642d9a4b4fc2f61 |
|
16-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change ObjCRuntime::LookupClass -> GetClass, and now takes the ObjCInterfaceDecl. Change ObjCRuntime::GenerateMessageSendSuper to take the ObjCInterfaceDecl for the super class, instead of just its name. Change EmitObjCMessageExpr to make the right runtime calls for super sends in class methods (i.e. a super send with the class object as the receiver). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
7ded7f4983dc4a20561db7a8d02c6b2435030961 |
|
16-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change CGObjCRuntime methods to take appropriate clang Decls. - This is in prep for implementation class support for the NeXT runtime, for which the existing methods don't provide enough information (and additionally make too many assumptions about how things should be emitted). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
6143293fa4366ee95d7e47e61bd030a34bf68b55 |
|
14-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add GetAddrOfConstantCString method - Returns addr of constant for argument + '\0'. - I couldn't think of a better name. - Move appropriate users of GetAddrOfConstantString to this. Rename getStringForStringLiteral to GetStringForStringLiteral. Add GetAddrOfConstantStringFromLiteral - This combines GetAddrOfConstantString and GetStringForStringLiteral. This method can be, but is not yet, more efficient. Change GetAddrOfConstantString to not add terminating '\0' - <rdar://problem/6140956> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
af2f62ce32e462f256855cd24b06dec4755d2827 |
|
13-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change ObjCRuntime GenerateProtocol[Ref] methods to take ObjCProtocolDecl directly. Implement CodeGen support for forward protocol decls (no-ops are so nice to implement). Also moved CGObjCRuntime.h out of CodeGenModule.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2bedbf8549bb33293c6a53e5da6cbd8de290d014 |
|
12-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Drop Sender from GenerateMessageSend* - Was unused and generated a unnecessary load of self Update NeXT runtime to get proper object & selector types from ASTContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
bbce49b9e5c6d7f05926b89f8e6fd235ae01c250 |
|
12-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add ObjC constant string support for NeXT. Changed CGObjCRuntime::GenerateConstantString interface to take std::string instead of char* and size. Change ObjC functions which call on GenerateConstantString to bitcast result to appropriate type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
e91593ef084479340582b2ba177b44be50a717b7 |
|
11-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
More #include cleaning - Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and SourceLocation.h) - Move ASTContext constructor into implementation git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
c17a4d3b16a2624a76de5d7508805534545bd3bf |
|
11-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add dummy Mac Objective-C runtime interface. - Not currently accessible and completely non-functional. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
85e356825b291f86c6e926638914222b834b71a3 |
|
08-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
update to make IRBuilder API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1565e0364b05d163640dd2b6feed43bae67df4fd |
|
21-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
don't pass in null as the Name for GenerateClassStructure, it goes and makes std::strings out of them, which is not defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
a4210076fc1d7ac0a20b8b4a79e18a8ae33b9c69 |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
refactor more objc codegen interfaces to pass around selectors so we don't push strings into LLVM IR and then have to read them back out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
fba676396703e87a5034e5f308aa30a633468f66 |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
indenting and other minor things. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
d002cc6fc5b72bf00e3b7b4571ccf0f23c789b4b |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
refactor interface to GenerateClassStructure to avoid converting a string to LLVM IR and then regenerating the string from IR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5e7dcc62e4637591959f9c372f6c5258d0d263e0 |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
remove the old getSelector implementation, which removes some calls to getStringValue git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
9384c768e93f270118a30ce96546083a666da284 |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
avoid a lot of unneeded selector processing work by passing around selectors instead of Value*'s. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
42ba3e7ba1d4f3fad4871af77ab68ae3514b8c7e |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
use cheaper/simpler getselector call for @selector exprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8e67b63530b4f39a48bc12d97376f373a6901279 |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
start avoid doing lots of unneeded work handling selectors git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
3aba07c84f12f244283ebfa94095a49810e00c2f |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
improve indentation, avoid thrashing on maps and recalculating strings as much. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
dce1406f1c1f572cfd61c494546572d63461c741 |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
give CreateObjCRuntime a full CGM so it can get whatever state it needs, instead of passing in just a couple random things it currently happens to use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
630404b16e886238ed68a1abbfe2e548f43aa664 |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Fix 80 col violations, assert on assumptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
550b8db03c0bb1b006d2ff63d4febda3db16002f |
|
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
a temporary minimal hack to get clang building after the getStringValue changes in llvm mainline. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
8fdf32822be2238aa7db62d40e75b168b637ab7d |
|
24-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
"Support for Objective-C message sends which return structures. Also includes a small fix for constant string handling that should have been in the last patch (sorry!) and a hook for generating selectors (rest of this implementation to follow in the next patch)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
4e0b2641d8aa8da8eb001b959940a9ec68f45f0d |
|
24-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
"This is a small fix for a bug where static object instances were being incorrectly generated. The bug was caused by my inability to read the GNU libobjc source and is only apparent when JITing code (static compilation does not expose the bug due to the data layout of other globals)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
13fd7e5111032f54b538dd66d035b0ccc1f82467 |
|
21-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
"this patch adds code generation hooks for Objective-C constant strings. It also modifies Sema so that Objective-C constant strings are treated as untyped objects if the interface for the constant string class can not be found. This is consistent with Apple GCC. I thought it was consistent with GNU GCC, since this was causing failures when trying to compile GNUstep with (GNU) GCC, but it appears that this is not the case when attempting to produce a simple test case to demonstrate it. Possibly there is a way of making the error go away, but I haven't found out what it is yet." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1e692ace08959399794363e77499b73da5494af9 |
|
14-Jun-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Basic support for volatile loads and stores. Stores the volatile qualifier in the lvalue, and changes lvalue loads/stores to honor the volatile flag. Places which need some further attention are marked with FIXMEs. Patch by Cédric Venet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
1b8956e1ce4c5770982d6e59edb16979b500677a |
|
01-Jun-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Don't name the ObjC types if there aren't any ObjC objects in the file. Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
5f58b911304f7d114f929d1726a09cd1c828a5dd |
|
01-Jun-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Remove spurious == 0 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
20ff3108fcd2c3bd734dc79efc22ebaa090abd41 |
|
01-Jun-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Support for code generation of Objective-C top-level language constructs. Implemented by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
3eae03e7d165f20a863a9a4d7122ba2a691ab16d |
|
06-May-2008 |
Chris Lattner <sabre@nondot.org> |
simplify some builder calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
50b36741673258aaebcd3c7fe1260031901cae57 |
|
13-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
update to follow mainline llvm API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
2979ec73b4f974d85f2ce84167712177a44c6f09 |
|
09-Apr-2008 |
Ted Kremenek <kremenek@apple.com> |
The dtor CGObjCRuntime::~CGObjCRuntime() was implemented twice, once in CGObjCGNU.cpp and once in CGObjCEtoile.cpp. Moved its definition to CGObjC.cpp. This resolves a build error in Xcode, and also cleans things up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
984d0b414bc76d3530b9bc55a5a55834ba76c607 |
|
06-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
tracking API changes arising from r49277 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
391d77a26382dddf25da73e29fc1fa5aaaea4c6f |
|
31-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Add initial support for objc codegen for methods, ivars, and the etoile runtime, patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
572cf09ae8a78af1c56d40b016ec4cf1837163ac |
|
19-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
simplify code by using the variadic StructType::get method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|
bda0b626e74513950405c27525af87e214e605e2 |
|
16-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Make a major restructuring of the clang tree: introduce a top-level lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
|