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

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

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

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

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

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/CodeGen/CGObjCGNU.cpp
2b3e50eef807c4ff4e247f4039dca8c55b8c4592 26-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195587:
------------------------------------------------------------------------
r195587 | alp | 2013-11-24 16:40:53 -0800 (Sun, 24 Nov 2013) | 11 lines

Add heading and remove leftover personal email addresses

clang's attribute support is mature by now so replace Sean's warning and email
address with a standard LLVM copyright heading.

Also remove a personal email address and credit docstring from CGObjCGNU that
shouldn't have been there.

This is in line with the LLVM developer policy introduced in r45410.
Contributors can add themselves to CREDITS.txt while active module owners are
listed in CODE_OWNERS.TXT.
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@195724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
5d4a7559df106959dd721744c8971547f0f09097 01-Oct-2013 Nick Lewycky <nicholas@mxc.ca> No functionality change. Reflow lines that could fit on one line. Break lines
that had 80-column violations. Remove spurious emacs mode markers on .cpp files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
11311eaf6093a5374f94047df354d4c62d68c611 26-Jul-2013 Eli Friedman <eli.friedman@gmail.com> Fix GNU ObjC ABI for a message returning a struct.

This allows the ObjFW runtime to correctly implement message forwarding
for messages which return a struct.

Patch by Jonathan Schleifer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
ad5b69da4774a4eec09af96af23a2fe793fd00f8 14-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
bd7370a78604e9a20d698bfe328c1e43f12a0613 28-Feb-2013 John McCall <rjmccall@apple.com> Use the actual ABI-determined C calling convention for runtime
calls and declarations.

LLVM has a default CC determined by the target triple. This is
not always the actual default CC for the ABI we've been asked to
target, and so we sometimes find ourselves annotating all user
functions with an explicit calling convention. Since these
calling conventions usually agree for the simple set of argument
types passed to most runtime functions, using the LLVM-default CC
in principle has no effect. However, the LLVM optimizer goes
into histrionics if it sees this kind of formal CC mismatch,
since it has no concept of CC compatibility. Therefore, if this
module happens to define the "runtime" function, or got LTO'ed
with such a definition, we can miscompile; so it's quite
important to get this right.

Defining runtime functions locally is quite common in embedded
applications.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
de38cb1fc8429e7adbd59308d19628cfda5aeee6 28-Feb-2013 David Chisnall <csdavec@swan.ac.uk> Improve property metadata generation with the GNUstep runtime.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f 12-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Remove useless 'llvm::' qualifier from names like StringRef and others that are
brought into 'clang' namespace by clang/Basic/LLVM.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
65bd4ac6ffbf6de30cd6f36735539ff8172a904a 11-Jan-2013 David Chisnall <csdavec@swan.ac.uk> Enable the new (more C++-like, less broken) EH model when targeting the GNUstep
Objective-C runtime 1.7 or greater.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
6a3c70ec59804347c99e96aa13934f63f4fed573 10-Jan-2013 Fariborz Jahanian <fjahanian@apple.com> objectiveC++: When throwing c++ exception of
an objectiveC object, use objc_exception_throw
to raise the exception. // rdar://12605907


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
3b844ba7d5be205a9b4f5f0b0d1b7978977f4b8c 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to
reflect the migration in r171366.

Re-sort the #include lines to reflect the new paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
d397cfef01d49a41554309d67ea26340c39e1e94 17-Dec-2012 David Chisnall <csdavec@swan.ac.uk> Reapply r170344, this time without forgetting to commit the header changes.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
e315cb3b30a0461ae501f8942f9d012bbeee3f90 17-Dec-2012 Benjamin Kramer <benny.kra@googlemail.com> Revert "Added support for new property helpers (GNUstep runtime)."

This reverts commit r170344. Doesn't even compile.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
648dd82196b09953c029d15679e32a799a1b1eb6 17-Dec-2012 David Chisnall <csdavec@swan.ac.uk> Added support for new property helpers (GNUstep runtime).



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

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

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
c4a77906c259cba58c147d8468c406a430ecdcbb 15-Nov-2012 Dmitri Gribenko <gribozavr@gmail.com> Use empty parens for empty function parameter list instead of '(void)'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
3ca23d7dc6cb61e6f363a58d9256d548199d120c 14-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C blocks: Provide layout map for byref
variables captured in a block. // rdar://12184410



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
2b07dd350a0d0b132ed529cb449fe2a5a56103b8 14-Nov-2012 John McCall <rjmccall@apple.com> Move some GNUStep-specific code out of CGObjCGNU.

Patch by Jonathan Schleifer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
c686004145b1f4dbeb38173a0886ba7040ae0089 07-Nov-2012 David Chisnall <csdavec@swan.ac.uk> Fix the Objective-C exception rethrow from cleanups (GNU runtimes). Note that
a bug in the inliner still causes the wrong thing to happen at -O2 and above
(PR14116).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
e5b4666d9b86ea30b90b599691e75d380f84ddd6 06-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Back out 167431+167437+167487; I didn't realize how incomplete our test
coverage of this code is.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
38ad4f40aa0ddc691d9b5ecbb4e9ca6ce95f3a05 06-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Propagate CharUnits into ObjC CodeGen. No intended functional change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
7edf9e38b91917b661277601c0e448eef0eb2b56 01-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Simplify: replace getContext().getLangOpts() with just getLangOpts().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
c46b43517a18c8f41934a38a3580bd477ab54265 27-Oct-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C arc/mrr: Patch for the new block variable layout meta-data.
It is currently off (so no tests). This is wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
891dac73bdb090ff845982e4334f5b4c18353dbe 16-Oct-2012 David Chisnall <csdavec@swan.ac.uk> GNUstep runtime version default to 1.6, generate correct property attribute
metadata.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
25a6a84cf5067b32c271e3ba078676dee838798d 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCGNU.cpp
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