History log of /external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

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

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/CodeGen/CGObjCMac.cpp
8b54999a831bb195c08541ca995ef0505c96193f 30-Oct-2013 Mark Lacey <mark.lacey@apple.com> Add CodeGenABITypes.h for use in LLDB.

CodeGenABITypes is a wrapper built on top of CodeGenModule that exposes
some of the functionality of CodeGenTypes (held by CodeGenModule),
specifically methods that determine the LLVM types appropriate for
function argument and return values.

I addition to CodeGenABITypes.h, CGFunctionInfo.h is introduced, and the
definitions of ABIArgInfo, RequiredArgs, and CGFunctionInfo are moved
into this new header from the private headers ABIInfo.h and CGCall.h.

Exposing this functionality is one part of making it possible for LLDB
to determine the actual ABI locations of function arguments and return
values, making it possible for it to determine this for any supported
target without hard-coding ABI knowledge in the LLDB code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3da9a8ff0ec906d25f93a9dadf046533d0d8d5de 24-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC IRGen. Replace _objc_empty_vtable pointer in Objective-C
class metadata for certain deployment targets. // rdar://14802916


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
57b1da1588a3f5785ad8bd5d9f2d795d685e1058 14-Sep-2013 Cameron Esfahani <dirty@apple.com> Clean up some Triple usage in clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
23bde7df2cb1fc7029a6338bd109c078d09d13c2 22-Apr-2013 Benjamin Kramer <benny.kra@googlemail.com> Use the ugly PRIx64 macro to make format string portable.

This is debugging code so functionality isn't a concern, but mingw32 warns
because it doesn't understand the %llx format specifier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
64aa4b3ec7e62288e2e66c1935487ece995ca94b 17-Apr-2013 John McCall <rjmccall@apple.com> Standardize accesses to the TargetInfo in IR-gen.

Patch by Stephen Lin!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
73c56bb0c8e722f4f0c0a044f13064d381f1ec8d 03-Apr-2013 John McCall <rjmccall@apple.com> In ObjC++ on legacy runtimes, push an EH cleanup as well as
a normal cleanup when entering a @try or @synchronized to
ensure that we clean that up if an exception is triggered.

Apparently GCC did this, so it's hard to argue that we shouldn't
do at least as much.

rdar://12364847

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5b07e8077a20b80fee90bd76c43c6150c676e4a8 13-Mar-2013 John McCall <rjmccall@apple.com> Tighten up the rules for precise lifetime and document
the requirements on the ARC optimizer.

rdar://13407451

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
0b5a483c8f5d8563ebc6ad5e311f2fadb734058d 19-Feb-2013 John McCall <rjmccall@apple.com> Use the actual class visibility for the ObjC EHTYPE global,
not the global visibility mode.

Noticed by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3b1a40fedc489e8ad90476d9966ce39e93b86b44 18-Feb-2013 Douglas Gregor <dgregor@apple.com> CodeGenFunction::CurFuncDecl can be NULL; fix crash introduced in r175386.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
961f5708782bfd1d24f720546ea8017e986b8521 17-Feb-2013 Saleem Abdulrasool <compnerd@compnerd.org> [CodeGen] tighten objc ivar invariant.load attribution

An ivar ofset cannot be marked as invariant load in all cases. The ivar offset
is a lazily initialised constant, which is dependent on an objc_msgSend
invocation to perform a fixup of the offset. If the load is being performed on
a method implemented by the class then this load can safely be marked as an
inviarant because a message must have been passed to the class at some point,
forcing the ivar offset to be resolved.

An additional heuristic that can be used to identify an invariant load would be
if the ivar offset base is a parameter to an objc method. However, without the
parameters available at hand, this is currently not possible.

Reviewed-by: John McCall <rjmccall@apple.com>
Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
06098586f1de7ec5e12ccc3a2291782dee99cd1e 12-Feb-2013 John McCall <rjmccall@apple.com> Properly assemble PHIs after a null-checked invoke of objc_msgSend.
rdar://12046763

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8f98bf94072fcd41f7da1f8e58b7171adc878d51 06-Feb-2013 Michael Gottesman <mgottesman@apple.com> Changed CGObjCMac.cpp to add the marker externally_initialized to SELECTOR_REFERENCES in both the fragile and non-fragile API.

This is to ensure that GlobalOpt in LLVM does not attempt to look through a
selector reference to a method var name at compile time.

I also added a test/updated old tests that need to recognize the new keyword.

rdar://12580965.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c4c62fd78a4728c9e4d4df14911a2ced9bdd2031 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Make sure that the Attribute object represents one attribute only.

Several places were still treating the Attribute object as respresenting
multiple attributes. Those places now use the AttributeSet to represent
multiple attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
72390b39c545426023ec104afe8706395d732bad 20-Dec-2012 Bill Wendling <isanbard@gmail.com> Rename llvm::Attributes to llvm::Attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ad017fa7a4df7389d245d02a49b3c79ed70bedb9 20-Dec-2012 Bill Wendling <isanbard@gmail.com> Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
094dbf917127a1228147587076d59ca45b7c258d 19-Dec-2012 Bill Wendling <isanbard@gmail.com> Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
ff685c562c8fd5dfc6effec17377fde9dad6f271 04-Dec-2012 Fariborz Jahanian <fjahanian@apple.com> objective-c blocks: Consider padding due to alignment
after the fixed size block header when generating
captured block variable info. // rdar://12773256


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
1da01d6908de90c6856e7c93460b67bf3bb28dd9 07-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C blocks: bring back the CharUnit patch for
captured block variable layout meta-data. No intended change
in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
1307120129bd084378f1c22611402ae24c7bebb2 06-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Fix a silly mistake in r167437.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8cb809a488bafb7386335bcc21bde47948600c8a 06-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Propagate CharUnits through CGObjCMac.cpp.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a2f9d214adb85a7d6d36add7460ce2115382ddc5 06-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Minor fix to ObjC layout bitmap metadata. Found while I was trying to
refactor the code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
c441cd347014bd3fe1915333c992a9a68bd725f9 04-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> Fixes liftime of captured block variables in mrr mode, per John's feedback, as
well as couple of tests which were not being excercised because of TYPOs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
44fcff9ff40f400403dae57096040496a5ab3227 02-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C mrr block. Block variable layout metadata in
mrr mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
00a8541416df6e2ca8b298759267bea479b6adfb 01-Nov-2012 Matt Beaumont-Gay <matthewbg@google.com> Silence -Wformat on platforms where uint64_t is unsigned long.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f22ae6512dec60d9e526fe55b988f8d42ced5b57 01-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C block meta-data. This patch completes meta-data
generation for captured block variables in arc mode. This includes
inlined version of the meta-data when it can be done. It also includes
severat tests. This is wip. // rdar://12184410.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c6abe9e0d94d82d566c716a1ab3c0fe6daadfb9c 30-Oct-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C arc/mrr: Another patch for the new captured 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@167047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
e11dba83d35b861e3a6c0d73ea84f89394cb9bad 25-Oct-2012 Fariborz Jahanian <fjahanian@apple.com> Add some new types in preparation of encoding of captured block variable
layout meta-data work. wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b03527a9a395168762ad8e25e59a7a272dd74561 17-Oct-2012 John McCall <rjmccall@apple.com> Set a special flag in class metadata when an Objective-C class
has ivars that require destruction, but none that require anything
except zero-initialization. This is common in ARC and (when true
throughout a class hierarchy) permits the elimination of an
unnecessary message-send during allocation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
621915c7a454307ad06ed2363379d52e2695a870 17-Oct-2012 John McCall <rjmccall@apple.com> Organize and rename the magic constants for class flags.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a6375560645177168099f1a1d96be8fa4718aa8e 16-Oct-2012 Bill Wendling <isanbard@gmail.com> Use the Attributes::get method which takes an AttrVal value directly to simplify the code a bit. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0d5833921cc728bc1d2e45fbaf7b3e11cddbf99d 15-Oct-2012 Bill Wendling <isanbard@gmail.com> Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
50e6b18f99c45b31e6216ab221f6b3911b24fa1f 15-Oct-2012 Bill Wendling <isanbard@gmail.com> Attributes Rewrite

Convert the uses of the Attributes class over to the new format. The
Attributes::get method call now takes an LLVM context so that the attributes
object can be uniquified and stored.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b9966bd81878c6627d702368d6c4a8bc62bc01ac 11-Oct-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C IRgen: When sending a method to 'super'
in a category class method, don't read 'isa' pointer. Instead,
save the desired OBJC_METACLASS_$_ClassName in
__DATA,__objc_superrefs and read that without reading any
isa pointers. // rdar://12459358


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
603571a2d6daca43162bf1d9469baf919697c00a 10-Oct-2012 Bill Wendling <isanbard@gmail.com> Remove the final bits of Attributes being declared in the Attribute
namespace. Use the attribute's enum value instead. No functionality change
intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
f3477c13eeaf11b32a41f181398fb5deffd0dd73 27-Sep-2012 Sylvestre Ledru <sylvestre@debian.org> Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164766

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
94ff8e1f57c6382d91d0de981a4f311509d83e37 27-Sep-2012 Sylvestre Ledru <sylvestre@debian.org> Fix a typo 'iff' => 'if'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2d234d73f687428c89f8a99af94f123012f05551 06-Sep-2012 Aaron Ballman <aaron@aaronballman.com> Fixing the return type information for objc_sync_enter and objc_sync_exit. Patch thanks to Joe Ranieri!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
31ba6135375433b617a8587ea6cc836a014ebd86 06-Sep-2012 Roman Divacky <rdivacky@freebsd.org> Dont cast away const needlessly. Found by gcc48 -Wcast-qual.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
94be8ea90795d00fe2a97fea9a9a727911a70997 31-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove deprecated getNameAsCString methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
0f3d0970dcdf6cf17550b86838dff12813968dbc 07-Jul-2012 John McCall <rjmccall@apple.com> Distinguish more carefully between free functions and C++ instance methods
in the ABI arrangement, and leave a hook behind so that we can easily
tweak CCs on platforms that use different CCs by default for C++
instance methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
ca5233044ef679840d1ad1c46a36b16e2ee8a6e1 10-Jun-2012 Richard Smith <richard-llvm@metafoo.co.uk> PR13064: Store whether an in-class initializer uses direct or copy
initialization, and use that information to produce the right kind of
initialization during template instantiation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
0982251be96409814c69d03193b558c7a927e1e8 24-Apr-2012 Bill Wendling <isanbard@gmail.com> Add a flag to the image info section indicating that the program is compiled for
a simulator.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
50651b951c216573175e2145f32df2c4658ba3f9 30-Mar-2012 John McCall <rjmccall@apple.com> Fix a pair of invalidation bugs when emitting protocol definitions
in the fragile and non-fragile Mac ObjC runtimes. No useful test
case. Fixes rdar://problem/11072576.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
85fdea03687e45dfde025867fe98ea24ac74c501 28-Feb-2012 Daniel Dunbar <daniel@zuster.org> Remove stray semi-colons.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
cd285d061546b701431b4214e068e024245a96f5 20-Feb-2012 Fariborz Jahanian <fjahanian@apple.com> objc IRGen: force CSE of load of ivar offsets by setting
the 'invariant.load' metadata tag onto those loads.
// rdar://10840980


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
3973accabc855b81b55bcc1945a98b2adb2ce72a 16-Feb-2012 Bill Wendling <isanbard@gmail.com> Use the new method for specifying garbage collection metadata in the module.

The garbage collection metadata needs to be merged "intelligently", when two or
more modules are linked together, and not merely appended. (Appending creates a
section which is too large.) The module flags metadata method is the way to do
this.
<rdar://problem/8198537>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ba83c95b9f8e6bd65405ebff815416fd06b3d4f8 16-Feb-2012 Fariborz Jahanian <fjahanian@apple.com> objc-arc: For arc's ivar layout, treat __unsafe_unretained ivars
as unscanned. // rdar://10832643


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a4dc693368e7af4001fe88076bdf4efd440022fa 09-Feb-2012 Bill Wendling <isanbard@gmail.com> Remove evil const_cast that's not needed anymore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3964e62786b0912fecc82d776daac236e05fc792 09-Feb-2012 Bill Wendling <isanbard@gmail.com> Use SmallVector when we can instead of std::vector.

This looks like it had a small, but measurable performance improvement on -O0
compile time for our ObjC tests.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f978059b82db8c0d849c5f992036210b5ca53200 07-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Switch the ObjC*Decl raw_stream overloads to take a reference, for consistency with NamedDecls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1e01ac4e4b8981942514ca8e1916bccef99a7ae2 07-Feb-2012 Bill Wendling <isanbard@gmail.com> Use SmallVector instead of std::vector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
bb02855f46423d2034918b75b157f886bb04bccc 07-Feb-2012 Bill Wendling <isanbard@gmail.com> Use 'ArrayRef<>' instead of 'std::vector<>&' for passed-in arguments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
13562a1f30df391607604fb6bf345af42b0d831d 07-Feb-2012 Bill Wendling <isanbard@gmail.com> Calculate the .size() of the vector once.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8b418685e9e4f02f4eb2a76e1ec063e07552b68d 07-Feb-2012 Chris Lattner <sabre@nondot.org> simplify a bunch of code to use the well-known LLVM IR types computed by CodeGenModule.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0b2397132efe74ee11c1b371dd9033820c54240f 06-Feb-2012 Chris Lattner <sabre@nondot.org> use cheaper llvm APIs for various bits of IR generation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
f7ccbad5d9949e7ddd1cbef43d482553b811e026 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import SmallString<> into clang namespace

(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
003eff627b3435d51b41fdbcdbbdbbfb55055bd4 31-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Don't zero terminate the bitmap twice.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
3c52d3633707453fbc08898935c45bed16953cfb 31-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> test for a v-table dispatch that consumes an
argument. twik to support the test case.
// rdar://10444476


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3c267e6262bb319c8e56c9ea1283c7087f9ac107 30-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> objc-arc: Perform null check on receiver before sending methods which
consume one or more of their arguments. If not done, this will cause a leak
as method will not consume the argument when receiver is null.
In this patch, the null path releases consumed argument.
// rdar://10444474


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4e1524babb095e70de1da882573eb6fbee98a857 29-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> revert r149184



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
de2fdc249e9c04757a7aaec029b231f4d7e6dbd7 28-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> objc-arc: Perform null check on receiver before sending methods which
consume one or more of their arguments. If not done, this will cause a leak
as method will not consume the argument when receiver is null.
// rdar://10444474


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3026348bd4c13a0f83b59839f64065e0fcbea253 20-Jan-2012 David Blaikie <dblaikie@gmail.com> More dead code removal (using -Wunreachable-code)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
65a1e6707de0d6641e70d0a6edd7593fae85df3c 18-Jan-2012 Douglas Gregor <dgregor@apple.com> Make sure to initialize ExternalProtocolPtrTy

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4c86fdb84ff016ee708e71f563ffe2a1c1b96b26 17-Jan-2012 Douglas Gregor <dgregor@apple.com> Don't eagerly deserialize the 'Protocol' type when initializing code
generation for Objective-C; it may not be needed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
6446c3e3600032c5f17ca2324a4581b9301afa59 20-Dec-2011 Bill Wendling <isanbard@gmail.com> Mark the calls to the _setjmp function as returns twice. <rdar://problem/10492556>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dc8dab6fabf4bfd4f4b94bf572ac3342a5bbfcd7 30-Nov-2011 Bob Wilson <bob.wilson@apple.com> Add bigger method type encodings to protocol objects. <rdar://problem/10492418>

The new metadata are method @encode strings with additional data.

1. Each Objective-C object is marked with its class name and protocol names.
The same is done for property @encode already.

2. Each block object is marked with its function prototype's @encoding. For
example, a method parameter that is a block object that itself returns void
and takes an int would look like:
@?<v@?i>

These new method @encode strings are stored in a single array pointed to by structs protocol_t and objc_protocol_ext.

Patch provided by Greg Parker!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a9e269e661ca7def681b69f2b88acf0c1fa3e654 29-Nov-2011 Bill Wendling <isanbard@gmail.com> The _setjmp builtin library function should have the "returns twice"
attribute. This prevents the stack slot allocator from coming along and using a
stack which it thinks is available but isn't.
<rdar://problem/10492556>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b6d7114bcfa29b262f9f043a76da7dba39d65136 10-Nov-2011 Pete Cooper <peter_cooper@apple.com> Add invariant.load metadata to loads from selector references. Allows these loads to later be moved/combined in the optimizer. Fixes <rdar://problem/6027699>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
eea64802558cc398571938b1f28cda1d4fa79ec3 31-Oct-2011 Anders Carlsson <andersca@mac.com> In x86_64, when calling an Objective-C method that returns a _Complex long double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6c29edaa6fa0bd71c9b1770647a02ae686db87bd 26-Oct-2011 Fariborz Jahanian <fjahanian@apple.com> Objective-c: fix an ir-gen crash where objc messag returns a _Complex
value and ABI requires return slot to be passed as first
argument to message sent. // rdar://10331109


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1d236ab930816f5da27bade92904914c44b73b4c 15-Oct-2011 Benjamin Kramer <benny.kra@googlemail.com> Replace vectors with arrays.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a6b8b2c09610b8bc4330e948ece8b940c2386406 10-Oct-2011 Richard Smith <richard-llvm@metafoo.co.uk> Constant expression evaluation refactoring:
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions,
and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
behaviour.
- Factor out evaluation of bitfield bit widths.
- Fix a few places which would evaluate an expression twice: once to determine
whether it is a constant expression, then again to get the value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
eb2d1f1c88836bd5382e5d7aa8f6b85148a88b27 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Removing a bunch of dead returns/breaks after llvm_unreachables.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
94da1587f7d584fc61df793229d197969f204cd9 10-Sep-2011 Douglas Gregor <dgregor@apple.com> Clean up our handling of Objective-C definitions in AST files. Rather
than having CodeGen check whether a declaration comes from an AST file
(which it shouldn't know or care about), make sure that the AST writer and
reader pass along "interesting" declarations that CodeGen needs to
know about.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
919814def90acecd25a35445862f0c0ff72a9b05 10-Sep-2011 Douglas Gregor <dgregor@apple.com> Introduce a new predicate Decl::isFromASTFile() to determine whether a
declaration was deserialized from an AST file. Use this instead of
Decl::getPCHLevel() wherever possible. This is a simple step toward
killing off Decl::getPCHLevel().



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
bcfd1f55bfbb3e5944cd5e03d07b343e280838c4 02-Sep-2011 Douglas Gregor <dgregor@apple.com> Extend the ASTContext constructor to delay the initialization of
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
01a4cf11777bb34c35f5d251a9e95eb736d0842b 11-Aug-2011 Douglas Gregor <dgregor@apple.com> Encapsulate the Objective-C id/Class/SEL "redefinition" types in
ASTContext with accessors/mutators. The only functional change is that
the AST writer won't bother writing the id/Class/SEL redefinition type
if it hasn't been explicitly set; previously, it ended up being
written as a synonym for the built-in id/Class/SEL.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
777d6e56ad9b1fed9866daf3ee6486d85c5b7d32 11-Aug-2011 John McCall <rjmccall@apple.com> Simplify EH control flow by observing that EH scopes form a simple
hierarchy of delegation, and that EH selector values are meaningful
function-wide (good thing, too, or inlining wouldn't work).
2,3d
1a
hierarchy of delegation and that EH selector values have the same
meaning everywhere in the function instead of being meaningful only
in the context of a specific selector.

This removes the need for routing edges through EH cleanups,
since a cleanup simply always branches to its enclosing scope.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
0f6ac7cf7bc6a02c1a5c19d2c90ec0d1dd7786e7 22-Jul-2011 Jay Foad <jay.foad@gmail.com> Convert IRBuilder::CreateGEP and IRBuilder::CreateInBoundsGEP to use
ArrayRef.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
ad346f4f678ab1c3222425641d851dc63e9dfa1a 12-Jul-2011 John McCall <rjmccall@apple.com> Generalize Cleanup::Emit's "isForEH" parameter into a set
of flags. No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
bf9eb88792e022e54a658657bf22e1925948e384 28-Jun-2011 Fariborz Jahanian <fjahanian@apple.com> Eliminate most uses of ShallowCollectObjCIvars which requires
a vector for collection. Use iterators where needed instead.
// rdar://6817577


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
97357602a289749d59520ac4ac31149f8d32e12e 22-Jun-2011 Jay Foad <jay.foad@gmail.com> Replace the existing forms of ConstantArray::get() with a single form
that takes an ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
7a614d8380297fcd2bc23986241905d97222948c 11-Jun-2011 Richard Smith <richard-llvm@metafoo.co.uk> Implement support for C++11 in-class initialization of non-static data members.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f968d8374791c37bc464efd9168c2d33dd73605f 27-May-2011 Douglas Gregor <dgregor@apple.com> Objective-C doesn't consider the use of incomplete types as method
parameter types to be ill-formed. However, it relies on the
completeness of method parameter types when producing metadata, e.g.,
for a protocol, leading IR generating to crash in such cases.

Since there's no real way to tighten down the semantics of Objective-C
here without breaking existing code, do something safe but lame:
suppress the generation of metadata when this happens.

Fixes <rdar://problem/9123036>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
0774cb84719f2aea3016493a2bbd9a02aa3e0541 15-May-2011 John McCall <rjmccall@apple.com> Use arrays and SmallVectors instead of std::vectors when building function
types. Also, cache a translation of 'void' in CGM and provide a ptrdiff_t
alias. No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
cba681af356e24ec4335bcf2b6bb6515072ace99 14-May-2011 John McCall <rjmccall@apple.com> Only perform the null-initialization of an aggregate result of a message
send if the receiver is null. Normally it's not worthwhile to check this,
but avoiding the null-initialization is nice, and this also avoids nasty
problems where the null-initialization is visible within the call because
we use an aliased result buffer. rdar://problem/9402992



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
944c84313da15477eb18d90babb0890d10d98082 14-May-2011 John McCall <rjmccall@apple.com> Objective-C vtables are not taking the world by storm; call them
out as "v-table" message sends and stop calling normal messages "legacy"
message sends.

Also, fix some comments to reveal the true state of affairs.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b1e8144a9620a16281a8b56a8b49d4cf37db3242 14-May-2011 John McCall <rjmccall@apple.com> Reorganize this method to avoid multiple calls for computing CGFunctionInfo
and to decrease the amount of effort in appending strings.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e0c7665b042fd1ef7aaad5074131c5ce8bfba766 06-May-2011 Fariborz Jahanian <fjahanian@apple.com> type of last arg of objc_assign_ivar is ptrdiff_t.
// rdar://9362887


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1f382510495b581e3028d670a23c7dcf5440be62 04-May-2011 Bill Wendling <isanbard@gmail.com> Pack ivar offsets together.

Ivar offsets for synthesized ivars are wrong, which could end up with a large
number of dirty pages because of ivar fixups at runtime. When we pack all of the
synthesized ivars into the same section, it limits the number of dirty pages
created. Place them in the "__DATA,__objc_ivar" section.
<rdar://problem/9374905>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
64089cece350472c04b420c497ae391443353325 23-Apr-2011 Fariborz Jahanian <fjahanian@apple.com> Fixes an instance method meta-data generation bug in
ObjC NeXt runtime where method pointer registered in
metadata belongs to an unrelated method. Ast part of this fix,
I turned at @end missing warning (for class
implementations) into an error as we can never
be sure that meta-data being generated is correct.
// rdar://9072317


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
fb67ccd9da412d652d62e2ac9675b0f1b14fdc73 14-Apr-2011 Ken Dyck <kd@kendyck.com> Replace a couple of divisions-by-'8' with divisions-by-charwidth. No change
in functionality intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
af19ac4b39ea1a545bd279df38ac65144f84e4b2 25-Mar-2011 Daniel Dunbar <daniel@zuster.org> Obj-C/NeXT: Update and reapply 108847, now that changes are more baked.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
05dc91bc772f6dc46f90d927048bbef05ba03392 25-Mar-2011 David Chisnall <csdavec@swan.ac.uk> Refactor CGObjCMac to use the shared code for EH stuff.

Sanity checked by John McCall.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
0a0d2b179085a52c10402feebeb6db8b4d96a140 23-Mar-2011 Douglas Gregor <dgregor@apple.com> Implement a new 'availability' attribute, that allows one to specify
which versions of an OS provide a certain facility. For example,

void foo()
__attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6)));

says that the function "foo" was introduced in 10.2, deprecated in
10.4, and completely obsoleted in 10.6. This attribute ties in with
the deployment targets (e.g., -mmacosx-version-min=10.1 specifies that
we want to deploy back to Mac OS X 10.1). There are several concrete
behaviors that this attribute enables, as illustrated with the
function foo() above:

- If we choose a deployment target >= Mac OS X 10.4, uses of "foo"
will result in a deprecation warning, as if we had placed
attribute((deprecated)) on it (but with a better diagnostic)
- If we choose a deployment target >= Mac OS X 10.6, uses of "foo"
will result in an "unavailable" warning (in C)/error (in C++), as
if we had placed attribute((unavailable)) on it
- If we choose a deployment target prior to 10.2, foo() is
weak-imported (if it is a kind of entity that can be weak
imported), as if we had placed the weak_import attribute on it.

Naturally, there can be multiple availability attributes on a
declaration, for different platforms; only the current platform
matters when checking availability attributes.

The only platforms this attribute currently works for are "ios" and
"macosx", since we already have -mxxxx-version-min flags for them and we
have experience there with macro tricks translating down to the
deprecated/unavailable/weak_import attributes. The end goal is to open
this up to other platforms, and even extension to other "platforms"
that are really libraries (say, through a #pragma clang
define_system), but that hasn't yet been designed and we may want to
shake out more issues with this narrower problem first.

Addresses <rdar://problem/6690412>.

As a drive-by bug-fix, if an entity is both deprecated and
unavailable, we only emit the "unavailable" diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
60be607e5d71627bf3dab8f51c3fdca74267c692 22-Mar-2011 David Chisnall <csdavec@swan.ac.uk> Simplify Mac runtime selection - it's the factory function's job to select which class to produce, not CodeGenModule's.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ab5824e97666ca7a91ed3013524cee18420866f1 22-Mar-2011 David Chisnall <csdavec@swan.ac.uk> Make the property accessor functions that take a ptrdiff_t actually take a ptrdiff_t instead of a long (should have no impact on any sane platforms, but win64 is not sane).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ba877adeb49ed6dc17f27fa3a3bcd0cca713fd68 09-Mar-2011 Abramo Bagnara <abramo.bagnara@gmail.com> Fixed InnerLocStart.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ff676cb48fe8bf7be2feaa251dc7c5fb15af4730 08-Mar-2011 Abramo Bagnara <abramo.bagnara@gmail.com> Fixed source range for all DeclaratorDecl's.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fb4eb9f56c1b7bb4fb632127a5e2d253b65758bf 04-Mar-2011 John McCall <rjmccall@apple.com> Access ivars with inbounds GEPs, even in -fwrapv. It's unlikely that
this can have any optimization effect, given the opacity of objects pointers,
but you never know.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
604da292483bc94a6a3e4700cd426d4fa7f1a4a8 04-Mar-2011 John McCall <rjmccall@apple.com> Let's do super message sends with static allocas instead of dynamic ones.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c0ddef23136368ce1bd882f7edd43591c8f30aa6 01-Mar-2011 Fariborz Jahanian <fjahanian@apple.com> objc IRGen for Next runtime message API.
The prototype for objc_msgSend() is technically variadic -
`id objc_msgSend(id, SEL, ...)`.
But all method calls should use a prototype that matches the method,
not the prototype for objc_msgSend itself().
// rdar://9048030


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
bf1f826ddadb046add4a9c7d7f7690f43feb55cf 28-Feb-2011 Fariborz Jahanian <fjahanian@apple.com> Revert r126678.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3d04a0e534b43504f6879657d47891625bd63352 28-Feb-2011 Fariborz Jahanian <fjahanian@apple.com> objc IRGen for Next runtime message API.
The prototype for objc_msgSend() is technically variadic -
`id objc_msgSend(id, SEL, ...)`.
But all method calls should use a prototype that matches the method,
not the prototype for objc_msgSend itself().
// rdar://9048030



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
448d2cdce2dd8360c09f4187cd7bbebf16ff964d 26-Feb-2011 John McCall <rjmccall@apple.com> Don't assume that whoever is asking for a message send is going
to give us a non-null return slot.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a1bcc4ddb1ed8be9be6950232941d80a04f80819 26-Feb-2011 John McCall <rjmccall@apple.com> Zero-initialize the struct-return slot of an Objective-C message
send before making the call. Fixes rdar://problem/7854674



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ec2990351335f163601b98e39b52425e2e9f931e 11-Feb-2011 Ken Dyck <kd@kendyck.com> Convert RecordLayout::DataSize to CharUnits from bits, eliminating two
unnecessary calls to RoundUpToAlignment. No changes to functionality
intended.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dd76a9ab9ea675671200f94b18ce95766841952b 11-Feb-2011 Ken Dyck <kd@kendyck.com> Add a helper function, ASTContext::toBits(), that converts sizes in
CharUnits to sizes in bits, and use it to tidy up the places where the
conversion was done explicitly.


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

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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
f96bdf409fc9e5570e35aaf8a9167265e63d58d8 03-Jan-2011 Fariborz Jahanian <fjahanian@apple.com> Consider zero-length array of structs when
computing ivar layouts for objc-gc.
Fixes // rdar://8800513


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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4c73307c74764ba99e1379677fe92af72f676531 19-Oct-2010 Fariborz Jahanian <fjahanian@apple.com> This patch implements Next's IRGen for -fconstant-string-class=class-name.
PR6056, //rdar: //8564463



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fd186ac63b427ed65bf5972ef225961afe7893ff 16-Oct-2010 John McCall <rjmccall@apple.com> Coding by inspection has its problems.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7ec404c40e42ce274d956a289ffa91e8f4befc43 16-Oct-2010 John McCall <rjmccall@apple.com> objc_exception_rethrow does not take an exception argument.
rdar://problem/8535238



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b10ce9f4fcff51bebc9efaeda2fa15b6478c6aec 16-Oct-2010 Daniel Dunbar <daniel@zuster.org> Revert r116656, "IRgen/Obj-C/NeXT: Fix the IR signature for
objc_exception_rethrow, so we don't...", since something is actually trying to
call this with the wrong signature (!). Unfortunately I don't understand the new
EH infrastructure well enough to fix it immediately.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
338ebcc57e116c2ca8c968d202ec81681a835748 16-Oct-2010 Daniel Dunbar <daniel@zuster.org> IRgen/Obj-C/NeXT: Fix the IR signature for objc_exception_rethrow, so we don't
generate unnecessary %al clear on x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
9e2213ddd5b3510fa48e3175e9d098db4224cc30 05-Oct-2010 John McCall <rjmccall@apple.com> In the fragile ObjC ABI, save the caught exception to the side if there are
both @catches and a @finally, because the second call to @objc_exception_try_enter
will clobber the exception slot. Fixes rdar://problem/8440970.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fb550312e74e2a04e93963891aa517d7acfc971b 13-Sep-2010 Fariborz Jahanian <fjahanian@apple.com> Block description for trivial block literals have
their 'isa' field scanned regardless.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
81979822cbf6347116d06dac0e5b06c451bcff05 09-Sep-2010 Fariborz Jahanian <fjahanian@apple.com> Block ivar layout must assume that the 'isa'
field of the block descriptor is GC'able (scanned)
as this what the runtime expects (one can send it
messages). Radar 8394947.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0dc7509ed7f775f74106fbac37473da39b6c8e3a 06-Sep-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> LastFieldBitfield in CGObjCCommonMac::BuildAggrIvarLayout keeps bitfields or unnamed fields but later the code
assumes that it's always a bitfield. This can lead to a crash (reported at rdar://8368320).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c5c446ccadddd541e9aa6c1c609b114080710498 03-Sep-2010 Daniel Dunbar <daniel@zuster.org> IRgen/Obj-C: Rewrite Objective-C bit-field access to compute the access strategy
using the same methods as used for normal structures.
- This fixes problems with reading past the end of the structure and with
handling straddled bit-field access.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
53b9441b5a81a24fa1f66f3f6416f1e36baa9c2f 01-Sep-2010 Ted Kremenek <kremenek@apple.com> Split ObjCInterfaceDecl::ReferencedProtocols into two lists: ReferencedProtocols and AllReferencedProtocols. ReferencedProtocols
(and thus protocol_begin(), protocol_end()) now only contains the list of protocols that were directly referenced in
an @interface declaration. 'all_referenced_protocol_[begin,end]()' now returns the set of protocols that were referenced
in both the @interface and class extensions. The latter is needed for semantic analysis/codegen, while the former is
needed to maintain the lexical information of the original source.

Fixes <rdar://problem/8380046>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
76695ca7ae85f164865c3650ca44720217aa78b3 21-Aug-2010 Daniel Dunbar <daniel@zuster.org> Simplify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6d5eb76059c6251ffbb8f0cbac8d7fe9a3efabce 21-Aug-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Move remaining MakeAddr() calls to MakeAddrLValue().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2c18bb7c9fca66c30b6eabbdcbc6399d24a54fa9 20-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> objective-c ivar refactoring patch. Iterations
over ivars for a varienty of puposes is now
consolidated into two small routines; DeepCollectObjCIvars
and ShallowCollectObjCIvars.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9b7d6701dabc24387cc152e4d13bf9aec6aa461a 18-Aug-2010 Chris Lattner <sabre@nondot.org> zap dead code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4087f27e5416c799bcb6be072f905be752acb61c 18-Aug-2010 Daniel Dunbar <daniel@zuster.org> StringRef'ication of lots stuff, patch by Peter Davies!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ba6f816d633e3b88c38c6896c2d78d19489650f2 15-Aug-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove dead code, caught by unused function warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d96a8e771ca9f406f0fa1dd4639997335ae444a7 11-Aug-2010 John McCall <rjmccall@apple.com> Fix a bug in @finally emission in both the fragile and non-fragile EH schemes
where we weren't accounting for the possibility that a @finally block might
have internal cleanups and therefore might write to the cleanup destination slot.

Fixes <rdar://problem/8293901>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9d50c0635fb213b2a1857e3f8488580f0dab2f98 09-Aug-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Support ObjC implementation decls for PCH.

Strictly speaking, implementations don't go in headers but there's no law against it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a1f024c1a5c49f87ee1d0767afc0437c4e4dbecf 06-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> Finishing up block variable layout API by supporting
union type variables and their nesting inside other
aggregate types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e1a48984f91cd8a65932f69be25f8330737e9842 05-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> Add support for block imported struct variable layout info.
(objc gc and blocks in NeXt runtime).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8ada8eb194773fb22560925a1b726971b1f76128 05-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> For now skip over aggregate non-byref block variables.
(objc gc specific).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5af1235d48d7bde471eb63fe6e1729be7c0308b8 05-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> Trying to unbreak buildbot.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b8fd2eb42a9f21c1ea65a5be37f3ce814c5cf745 05-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> Clean up of my last patch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
93ce50d0e6fda37a74033596d8c1c08e6ec27ab1 05-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> Block variable layout bitmap API generation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
44034db24bf59a53aa7699f4bbf59b939710bb3c 04-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> More objc block variable layout info. work.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
0b2517299415ab1c28b9cb87d536ccea84317a10 04-Aug-2010 John McCall <rjmccall@apple.com> Some more correctness fixes and code-size optimizations for fragile-ABI
ObjC exceptions:
- don't enter a try for the catch blocks unless there's a finally
- put the setjmp buffer in the locals set for liveness reasons
- dump the sync object into an alloca in the locals set for liveness reasons
Some of this can go away if the backend starts to properly calculate liveness
in the presence of setjmp (which would also be a *much* stabler solution).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
87bb5822bfa4baea23a3d9273df266777f3ab796 01-Aug-2010 John McCall <rjmccall@apple.com> Fix fragile-ABI ObjC exceptions in the presence of optimization with
the magic of inline assembly. Essentially we use read and write hazards
on the set of local variables to force flushing locals to memory
immediately before any protected calls and to inhibit optimizing locals
across the setjmp->catch edge. Fixes rdar://problem/8160285



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6633e3c5b33c10ebfc5a369e412bb3d3f2cb3899 30-Jul-2010 Daniel Dunbar <daniel@zuster.org> Revert "Re-apply fixed version of 108749, correctly conditionalizing the new
sections on", this change uncovered a possible linker bug which resulted in the
wrong messages getting dispatched. Backing this out while we investigate...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
cc5052999cd064584492ba15a808b6e1cee6d931 21-Jul-2010 John McCall <rjmccall@apple.com> Switch the fragile-ABI @finally/@synchronized cleanup over to using a lazy
cleanup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
35eee091f90496f5d59db62b83bfdae8258f4dc1 20-Jul-2010 Jim Grosbach <grosbach@apple.com> Re-apply fixed version of 108749, correctly conditionalizing the new sections on
ObjC ABI version 2 this time.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
af0bbea0d1ac9a79ed20845204059ed9c089d492 20-Jul-2010 Jim Grosbach <grosbach@apple.com> Temporarily revert. Some odd internal breakage is likely related.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2543dbb9d05c73dce758e48701807c8cf3714ed8 19-Jul-2010 Jim Grosbach <grosbach@apple.com> Put ObjC method names, method types and class names in separate string literal
sections. rdar://8207705



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dacf9dda17346c628fdd8c5df53c681738db0dc5 15-Jul-2010 Daniel Dunbar <daniel@zuster.org> CodeGen/ObjC/NeXT: Fix Obj-C message send to match llvm-gcc when choosing
whether to use objc_msgSend_fpret; the choice is target dependent, not Obj-C ABI
dependent.
- <rdar://problem/8139758> arm objc _objc_msgSend_fpret bug

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8e3f86193995c47ee0d229e4336c3382410f09f5 14-Jul-2010 John McCall <rjmccall@apple.com> Allow for the possibility that __cxa_end_catch might throw for a catch-all block
or a catch of a record type by value or reference. Also convert this to a
lazy cleanup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
77b89b87c3b9220fea1bc80f6d6598d2003cc8a8 27-Jun-2010 Chris Lattner <sabre@nondot.org> finally get around to doing a significant cleanup to irgen:
have CGF create and make accessible standard int32,int64 and
intptr types. This fixes a ton of 80 column violations
introduced by LLVMContextification and cleans up stuff a lot.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0c293ea13d452c1a47a05ada5a5ee9acc69c66cc 23-Jun-2010 Douglas Gregor <dgregor@apple.com> Type Type::isRealFloatingType() that vectors are not floating-point
types, updating callers of both isFloatingType() and
isRealFloatingType() accordingly. Caught at least one issue where we
allowed one to declare a vector of vectors (!), along with cleaning up
the standard-conversion logic for C++.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6afbdf52563942cbf3d68c1cc0fcf590c94a47d3 22-Jun-2010 Fariborz Jahanian <fjahanian@apple.com> Fixes a problem in generation of meta-data for
category implementation whereby property list was missing.
NeXt ObjC runtime (radar 8093297).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b9c5b3ddde5a327cd31f3aacbfc7d1e491f99fcb 22-Jun-2010 Fariborz Jahanian <fjahanian@apple.com> In fragile-abi (32bit mode abi) generate global symbol
objc_category_name_xxx for each category implementation.
(fixes PR7431) patch by Nico Weber.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7e70fb217dcdf96faf34df3e197c3831c86f8089 21-Jun-2010 Anders Carlsson <andersca@mac.com> Fix an Obj-C++ miscompile when calling an Obj-C method that returns a C++ reference.

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
69677eadf881ba02d1a36e55c3b9a520769aa3c3 28-May-2010 Fariborz Jahanian <fjahanian@apple.com> zero-cost exception API for NeXt runtime.
rethrow inside @catch block must use objc_exception_rethrow
API. Fixes radar 8037512. Test will be added to LLVM
test suite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
465d41b92b2c862f3062c412a0538db65c6a2661 11-May-2010 Abramo Bagnara <abramo.bagnara@gmail.com> Merged Elaborated and QualifiedName types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
daa3ac503e93315ed3546463c13de4856bb80ef7 29-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen/NeXT: Put the synthesized _objc_super, _message_ref_t decls in a valid DeclContext, to satisfy the invariants that should hold on a RecordDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
109dfc6ca6652f60c55ed0f2631aebf323d0200d 28-Apr-2010 Fariborz Jahanian <fjahanian@apple.com> IRGen for initialization/destruction of
ivar class objects (NeXt runtime).
(radar 7900343).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
4b429ae34d80dd21661c91009c559746e553bc1e 25-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen/NeXT: Fix several alignment issues with Objective-C metadata symbols:
- Fix some places that had the alignment hard coded.
- Use ABI type alignment, not preferred type alignment -- neither of this is exactly right, as we really want the C type alignment as required by the runtime, but the ABI alignment is a more correct choice.

This should be equivalent for x86_64, but fixes the alignment for ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fce176b051a5f6abe7464b6c75161476eceda0c5 25-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen/NeXT: Reuse EmitImageInfo for both fragile and non-fragile ABI. This fixes Clang to correctly emit the "CorrectedSynthesize" bit when using the non-fragile ABI.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f643b9b338b797a824447207d7eab5f1187f4f34 24-Apr-2010 Daniel Dunbar <daniel@zuster.org> NeXT: Clean up dispatch method policy selection.
- Replace -cc1 level -fobjc-legacy-dispatch with -fobjc-dispatch-method={legacy,non-legacy,mixed}.

- Lift "mixed" vs "non-mixed" policy choice up to driver level, instead of being buried in CGObjCMac.cpp.

- No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
b76db237b8c2080137f9dc3362712432f3150ff1 23-Apr-2010 Daniel Dunbar <daniel@zuster.org> NeXT/EH: When generating the rethrow code for a finally block, make sure to
chain outwards when inside a nested exception scope.
- A real test for this is going into LLVM test-suite.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ba6940aa58715633169aa519f6c94f5da097eba7 23-Apr-2010 Daniel Dunbar <daniel@zuster.org> NeXT/EH: Tidy up EH code a bit, don't emit the catch block EH handler if it is unreachable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
33e982bf782d851bfe5767acb1336fcf3419ac6b 22-Apr-2010 Fariborz Jahanian <fjahanian@apple.com> Support for -fno-constant-cfstrings option - wip.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
794afcb7049bdc82a2e7391e2f84d32446a7ffae 19-Apr-2010 Fariborz Jahanian <fjahanian@apple.com> Check for darwin befoer cheking for version.
(related to radar 7866951).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
776dbf9704353515b422ee13e481194c937ba01d 19-Apr-2010 Fariborz Jahanian <fjahanian@apple.com> Force clang to produce legacy api for messaging
in for pre-snowleoprd (NeXt runtime). Fixes
radar 7866951


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
afd5eda46e8e98e13e6cb0c937e39835eef5a296 17-Apr-2010 Chris Lattner <sabre@nondot.org> fix integrated assembler with i386 objc code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
900fc6388e803868a34b9483510c345e9b49d7eb 17-Apr-2010 Benjamin Kramer <benny.kra@googlemail.com> Add raw_ostream operators to NamedDecl for convenience. Switch over all users of getNameAsString on a stream.

The next step is to print the name directly into the stream, avoiding a temporary std::string copy.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2df2569679237b4979654a8663cd61aea67ab207 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Change CGBitFieldInfo to take the AccessInfo as constructor arguments, it is now an immutable object.

Also, add some checking of various invariants that should hold on the CGBitFieldInfo access.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7fb619500404129322af972aab66c369949a2a74 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Eliminate now unused fields from CGBitFieldInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f8f8ebafafa6f4469a44de7a64194f52be1b8f53 14-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen/NeXT: Simplify to use AST record layout for getting offsets instead of the
IRgen record layout, which this code doesn't need to depend on.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ab970f90ce31a53fe7e6375a37536bf0832fd922 13-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Enhance CGBitFieldInfo with enough information to fully describe the "policy" with which a bit-field should be accessed.
- For now, these policies are computed to match the current IRgen strategy, although the new information isn't being used yet (except in -fdump-record-layouts).

- Design comments appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
7f2896406c8f14bf123578610043a919ba1a1c8a 08-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Move the bit-field access type into CGBitFieldInfo, and change bit-field LValues to just store the base address of object containing the bit-field.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
efbf487da83883c2da81181cac6f040928aa4289 06-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f0fe5bc0e46038dc79cdd27fcf0c77ad4789fdff 05-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.
- Unfortunately, this requires some horrible code in CGObjCMac which always
allocats a CGBitFieldInfo because we don't currently build a proper layout
for Objective-C classes. It needs to be cleaned up, but I don't want the
bit-field cleanups to be blocked on that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2eec0b2e3e931de6cefbb266a7652a0622fe95b2 05-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen: Lift BitFieldInfo to CGBitFieldInfo at namespace level.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
56229f5889ee35495de7138f29712674f8f81ec1 05-Apr-2010 Daniel Dunbar <daniel@zuster.org> Add a FIXME and reduce nesting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
61ac1d274936d96bd7590adeff75d3466fd87e76 03-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen/NeXT: Remove my refactoring-enabling asserts, and add a FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e83be1228028f44de76cbad9d908e2dc9e261171 02-Apr-2010 Daniel Dunbar <daniel@zuster.org> IRgen/Obj-C: Eliminate FindIvarInterface, now that ivar's are in the right DeclContexts (-2 FIXMEs). We still have an annoying linear scan + hidden dependency on how Obj-C layout is done.
- This is also an algorithmic improvement in IRgen for Obj-C, although it probably doesn't matter in practice.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3a2c80fe4c1f9306b7b96241117730a29e73ea8c 02-Apr-2010 Daniel Dunbar <daniel@zuster.org> CG/NeXT: Assert some invariants on an ivar's containing decl context that I am about to refactor based on, following some testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
198bcb44b6271c92fd856403f34b518828100aac 31-Mar-2010 Daniel Dunbar <daniel@zuster.org> IRGen: Move the auxiliary data structures tracking AST -> LLVM mappings out of CodeGenTypes, to per-record CGRecordLayout structures.
- I did a cursory check that this was perf neutral, FWIW.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
11062e11236b7bc689dad150e8b490fd6b063ec3 19-Feb-2010 Fariborz Jahanian <fjahanian@apple.com> Patch removes IVars list from ObjCInterfaceDecl and
instead relies on their DeclContext for iteration, etc.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
838db383b69b9fb55f55c8e9546477df198a4faa 11-Feb-2010 Douglas Gregor <dgregor@apple.com> Eliminate a bunch of unnecessary ASTContexts from members functions of
Decl subclasses. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b2987d159a88ab0ee2e40c884eb4d77b42ab89b6 10-Feb-2010 Daniel Dunbar <daniel@zuster.org> Switch to using -fsjlj-exceptions instead of hard-coding it. Notably, this fixes
calls to the UnwindResumeOrRethrow function for C++/Obj-C exception handling,
for Darwin ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
2feefe8c195694d134b77503d67f535e04ca2a8b 01-Feb-2010 Daniel Dunbar <daniel@zuster.org> NeXT: Add support for -fobjc-legacy-dispatch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
54d76db0aa7107597cac0b80d8e138a37e6d1de9 25-Dec-2009 Benjamin Kramer <benny.kra@googlemail.com> Remove some dead variables clang-analyzer found.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
8c89ff9b0923083f4838d9c6fcf858e3aa311b40 14-Dec-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to fix 32-bit @try failure with internal assertion when compiling
an Objective-C rethrow nested inside another try/catch block. (fixes radar 7466728).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
191dcd76046ea751f21aae008df21bb3468a2188 12-Dec-2009 Fariborz Jahanian <fjahanian@apple.com> patch to add a property from a protocol to a class that adopts the protocol.
(fixes radar 7466494).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0e93d259ad19a0f70d3536d4f0f49710af52a169 01-Dec-2009 Fariborz Jahanian <fjahanian@apple.com> (objc2 nonfragile-abi specific). If the translation unit includes an implementation
of a subclass (direct or indirect) of a weak_import root class, emit a weak reference
for the root class's metaclass (should complete radar 6815425).



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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
269f8bc10a33e29e2951df7720cad0abb45c74cb 17-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> This patch finalizes implementatin of weak_import
objective-c2 classes (radar 6815425).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2cdcc4c4314b9db36028b10da8805fe02b1c85eb 17-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> More cases for weak_import objective-c2 classes.
(still radar 6815425).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a03d0dd528573d0fc340370dc30ee7767c9cae9c 17-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> More support for weak_import objective-c2 class.
(radar 6815425).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
182f2681e75565c9ec3099c90bbc4fcc7782140c 14-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> Generate the old API when sending message to super
in a category implementation (objc 32bit api related).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b0069eebb604114d5c9d37d0856fc39d1dfffd6d 12-Nov-2009 Fariborz Jahanian <fjahanian@apple.com> Fix a code gen bug in i386-apple-darwin (objc fragile abi), sending
message to 'super'. Fixes radar 7205866.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c575ce7287ed9b5a2657aa0079595ebb59490afb 19-Oct-2009 Daniel Dunbar <daniel@zuster.org> Avoid std::string concatenation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
01eb9b9683535d8a65c704ad2c545903409e2d36 18-Oct-2009 Daniel Dunbar <daniel@zuster.org> PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients
are updated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9c29bf597ee1d085ecce1e1fcbd3c6beed18127a 18-Oct-2009 Daniel Dunbar <daniel@zuster.org> Twinify CGObjCMac, this simplifies the code and should reduce std::string
trashing.

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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
dbf3cfd39dd5234f90235e263ba2ff4cc61258bd 17-Sep-2009 Fariborz Jahanian <fjahanian@apple.com> patch for generating objc'2 objc_assign_ivar. WIP.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
039e6a1b085b025c054cb66a5665ad3a77d96abd 11-Sep-2009 Fariborz Jahanian <fjahanian@apple.com> Fixes a regression in objc GC layout bitmap involving
block pointer ivars.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
736d8a66062eeb25a4b63dcac36d1d4c261a02c4 10-Sep-2009 Fariborz Jahanian <fjahanian@apple.com> Get the size of object to pass to objc_memmove_collectable()
from correct field of TypeInfo.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
5fcc88225b92179ff433c53b16f75062db949fd7 07-Sep-2009 Benjamin Kramer <benny.kra@googlemail.com> Remove unnecessary #include <sstream>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
330634933b67f917e993e7de020cf671ac614acb 07-Sep-2009 Daniel Dunbar <daniel@zuster.org> Use a SetVector for tracking some Obj-C metadata, to ensure deterministic
output.
- Also, cleanup code to output inline asm references.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
ef46d1817d5b00966f21a927a6a3b5d949aaf988 25-Aug-2009 Anders Carlsson <andersca@mac.com> Fix ivar layout map generation (hopefully).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e666b1b1fbe17ce6cc8d417690c61cd05f5b0002 25-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Remove #ifdef'out code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6d9eae69a07d6ea55bad53eff217ea2f0737e5a0 24-Aug-2009 Fariborz Jahanian <fjahanian@apple.com> Remove ivarlayout bitmap optimization, instead if all zeros,
put out the bitmap when all objects are scanned.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f42e4a6e089e8413247400fe58ad299193371f9c 24-Aug-2009 Torok Edwin <edwintorok@gmail.com> Fix build of clang with gcc-4.4: #include <cstdio> was missing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a1d5662d96465f0fddf8819d245da4d19b892eff 19-Aug-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce DeclaratorDecl and pass DeclaratorInfo through the Decl/Sema interfaces.

DeclaratorDecl contains a DeclaratorInfo* to keep type source info.
Subclasses of DeclaratorDecl are FieldDecl, FunctionDecl, and VarDecl.
EnumConstantDecl still inherits from ValueDecl since it has no need for DeclaratorInfo.

Decl/Sema interfaces accept a DeclaratorInfo as parameter but no DeclaratorInfo is created yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
e3d25abca3f0e0c92417734d6f548c5085ee1241 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> When generating cleanup blocks for Obj-C @finally, mark them as catch all blocks
from the perspective of LLVM exception handling. Otherwise the C++ personality
function may decide not to run them, if it only detects cleanup handlers.
- Test case for this is exceptions.m in llvm-test.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6bff2513b041eb84d4902b106d1b9023e5bb7c8e 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> Formatting fixes (trailing whitespace, 80-cols, indentation).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
3b144ba615c32f3cfa5309060ed5e09c89ac2871 31-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5266d2ed446e9588eb00579ddfc5a2d327a5b3ab 30-Jul-2009 Douglas Gregor <dgregor@apple.com> Eliminate an unused-variable warning

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

And remove Type::getAsReferenceType(), etc.

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
41f55d3d89d53ac242db8244f823555904200744 28-Jul-2009 Chris Lattner <sabre@nondot.org> add some fixme's


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
99438a726ed16bf1847a18a6abc114304be9a6ce 28-Jul-2009 Fariborz Jahanian <fjahanian@apple.com> Patch for objc's zero-const exception to not assume
that @catch(...) cathces all exceptions (c++ objects
are not cought by that).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
fc514abac21dbd801e2b665a1a24075c5ff62f44 24-Jul-2009 Anders Carlsson <andersca@mac.com> Don't use getLLVMFieldNo for bitfields when constructing the ivar layout maps for GC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
4cd1608ba49c456504a3a25522c54a534b6880f3 21-Jul-2009 Owen Anderson <resistor@mac.com> Update for LLVM API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
243a68551ac9ec71bf341e062418e33eb4f286ff 18-Jul-2009 Anders Carlsson <andersca@mac.com> Rename NextOffset to DataSize, which better matches the Itanium C++ ABI

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


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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1a1a6e2bd4c5aefd7fd643cf25915f9623a02e59 16-Jul-2009 Ted Kremenek <kremenek@apple.com> Add member template 'Type::getAs<T>', which converts a Type* to a respective T*.
This method is intended to eventually replace the individual
Type::getAsXXXType<> methods.

The motivation behind this change is twofold:

1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of
them are basically copy-and-paste.

2) By centralizing the implementation of the getAs<Type> logic we can more
smoothly move over to Doug Gregor's proposed canonical type smart pointer
scheme.

Along with this patch:

a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>.
b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f49545602089be5b1f744e04326b8a566f6d8773 16-Jul-2009 Steve Naroff <snaroff@apple.com> Remove ASTContext::isObjCObjectPointerType().
Convert all clients to use the new predicate on Type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
c1ab900fa5e9b8a09b042992eeca29f413b1d595 11-Jul-2009 Daniel Dunbar <daniel@zuster.org> Generate correct prototype for objc_enumerationMutation.
- This was a latent bug exposed by the recent objc type changes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
818e96f5a42b2a9adea4ac0050340469b49d70ef 11-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Fix typo (found by gcc warning).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
40b598eea1310ec9ed554d56ce3e25b34c585458 30-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove the ASTContext parameter from the attribute-related methods of Decl.
The implementations of these methods can Use Decl::getASTContext() to get the ASTContext.

This commit touches a lot of files since call sites for these methods are everywhere.
I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c0183e8281b2ddacdca87cd2f749255d06a4bfe6 26-Jun-2009 Daniel Dunbar <daniel@zuster.org> Simplify, and fix a possible crash (never happens however, because we don't ever
take this path with non-builtin floating point types).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
68584ed35ad819a1668e3f527ba7f5dd4ae6a333 18-Jun-2009 Douglas Gregor <dgregor@apple.com> Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
42f963dec21ed86f33ba34dc01140f77c7174768 10-Jun-2009 Daniel Dunbar <daniel@zuster.org> Support complex properties, ivars and message expressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
ecfbdcbaf71609ab99cdebbf2d704173070dbaf3 21-May-2009 Fariborz Jahanian <fjahanian@apple.com> Minor refactoring. Uses an existing API to lookup a class method.


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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
74d4b127d9f924ad354f47012e0d0e42ab1ee32b 16-May-2009 Daniel Dunbar <daniel@zuster.org> Classes with "+load" methods need to go in the non-lazy class list (or
else the method will not be found by the runtime at class load time).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
463b87687346d3990a9854382abfb41810f0678a 15-May-2009 Daniel Dunbar <daniel@zuster.org> Factor code for adding module-level class lists into separate method.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
be53be4551bacfe05ec93ca56d29990da0cc1db9 13-May-2009 Fariborz Jahanian <fjahanian@apple.com> Removed 4-letter :) word in comment.
Used simple array for Selector build.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4523eb0fdfb1e003c3810951d9eb3dddcf08cc24 12-May-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed typos, used DenseSet for keeping track of
selectors which need use Nonfrgile API for
message dispatch.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9820074dd47d37681085e964cd3392ac0b3e67b9 12-May-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to implement ivar synthesis of properties declared in protocols
only and used in class imllementations (objc2 Nonfragile ABI specific).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d0f8a8d17082266c1e774ca07d58bcd4811b2681 11-May-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to allow Nonfragile ABI to use 32-bit style legacy
message dispage API for all but a few messages. This is
a runtime performance improvement and there is not meant
to be a functional change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9408c45009b417e758749b3d95cdfb87dcb68ea9 09-May-2009 Duncan Sands <baldrick@free.fr> Correct for renaming PaddedSize -> AllocSize in
LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
a81419d0b53a40399a589a2fcc13f1ed2ec28f75 05-May-2009 Daniel Dunbar <daniel@zuster.org> Remove an unneeded lookup routine.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6e8575b88bfb2634d7b28c0c4d5ed2a6acc8418a 05-May-2009 Daniel Dunbar <daniel@zuster.org> Fix the field count in interface record layout (it was incorrectly
compensating for super classes). This was making the reported class
sizes for empty classes very, very wrong.
- Also, we now report the size info for an empty class like gcc (as
the offset of the start, not as 0, 0).

- Add a few more test cases we were mishandling before (padding bit
field at end of struct, for example).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b4c79e027fdcc752b5a377611fd4cfbb21611a05 04-May-2009 Daniel Dunbar <daniel@zuster.org> Compute interface instanceStart and instanceSize using the record
layout.
- This is much simpler / more efficient.

- This also properly computes the size in the presence of bit-fields.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3715328021f69ed55e7b4cd65465fc761a8b6457 04-May-2009 Daniel Dunbar <daniel@zuster.org> Don't allow clients to traverse into superclass synthesized properties
via CollectObjCIvars.
- In places where we need them, we should have the implementation and
access the properties through it.

This is a fairly substantial functionality change:
1. @encode no longer encodes synthesized ivars, ever.

2. The ivar layout bitmap no longer encodes information for
synthesized ivars in superclasses. Well, actually I had already
broken that, but it is intentional now.

We are now differing substantially from llvm-gcc and gcc
here. However, in my opinion this fundamentally *must* work if
non-fragile classes are to work. Without this change, the result of
@encode and the ivar layout depend on the order that the
implementation is seen in a file (if it is in the same file with its
superclass). Since both scenarios should work the same, our behavior
is now consistent with gcc behavior as if an implementation is never
seen following an implementation of its superclass.

Note that #2 is only a functionality change when (A) an
implementation appears in the same translation unit with the
implementation of its superclass, and (B) the superclass has
synthesized ivars. My belief is that this situation does not occur in
practice.

I am not yet sure of the role/semantics of @encode when synthesized
ivars are present... it's use is fairly unsound in a non-fragile world.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e05cc98e97ec910829beccd0d890a002ce5ab909 04-May-2009 Daniel Dunbar <daniel@zuster.org> Inline GetFieldBaseOffset into sole callsite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
900c1980de73d17cdc11b108cde7f9b68be1e5bd 04-May-2009 Daniel Dunbar <daniel@zuster.org> Avoid recomputing field offsets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
31682fd385042369d490b2f73ecff2871467ade9 04-May-2009 Daniel Dunbar <daniel@zuster.org> Normalize formatting


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5a5a803df8a8e3e567278fdfd8a6c1aff8dc6b82 03-May-2009 Daniel Dunbar <daniel@zuster.org> Use the implementation decl for looking up offset while building the
ivar layout.
- The layout needs access to synthesized ivars.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7c9f6c51be1c0bbfe59b64e92587d2e37ce73a7d 03-May-2009 Daniel Dunbar <daniel@zuster.org> It turns out BuildAggrIvarLayout wasn't even using the shadow struct,
just computing it!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
25d583ec27cc2fe4d0dccaa5d41b6c3b645beda0 03-May-2009 Daniel Dunbar <daniel@zuster.org> Lift common subexpression, remove dead "base" variable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d58edcb49140b4e82f8b1e2f2e6ab35b9d401c99 03-May-2009 Daniel Dunbar <daniel@zuster.org> Factor out BuildAggrIvarRecordLayout routine.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5e563dd38d6ec9f367cfd4b55d3efaf88a97cc09 03-May-2009 Daniel Dunbar <daniel@zuster.org> Lift out GetGCAttrTypeForType routine.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8b2926c23645627d60d62667fc0e7a310e40815e 03-May-2009 Daniel Dunbar <daniel@zuster.org> Add constructors for GC_IVAR and SKIP_SCAN, tighten up uses.

Lift up a size calculation and note some asymmetries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
487993b90d432e9c866475ff0ffb8915e21c3904 03-May-2009 Daniel Dunbar <daniel@zuster.org> Normalize style, remove a dead assert.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
532d4daa038d972240138e2fd6e1122517340833 03-May-2009 Daniel Dunbar <daniel@zuster.org> Use ASTRecordLayout for computing ivar offsets instead of shadow
struct.
- We still need to do more lookup than necessary because ivars don't
live in a reasonable DeclContext.

- The only remaining client of the interface shadow struct is the
ivar layout bitmap.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9f89f2bc111339ee7fa0df3c2f18e39493b460c4 03-May-2009 Daniel Dunbar <daniel@zuster.org> Add a ComputeIvarBaseOffset overload taking an implementation
decl. Only this routine will be suitable for computing the offset of a
synthesized ivar.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
5384b0990ea6995121fd4bad0855e96d41dcad18 03-May-2009 Daniel Dunbar <daniel@zuster.org> Remove unused argument.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
e38df86a6ddc48d4a6d37478ac7d20e92edfb63a 03-May-2009 Daniel Dunbar <daniel@zuster.org> Use type from ivar instead of from shadow struct field.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
70b51c7e112757fa958f696c6b90e6c3e48922a3 01-May-2009 Fariborz Jahanian <fjahanian@apple.com> Remove a warning when this file is compiled optimized.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5b2bad017b5f86c83aeb80d186696a4c8d59f68f 30-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> API for message dispatch of methods returning floats
to match gcc's closely.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
65257cafb2cdf353d017c3860e15b813b9244bca 30-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Undid setting of the flag for msg_Send for 32bit code gen.
It seems to effect code gen. Add a FIXME instead.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
679cd7fcbd341fa3747e598f537601db421b1002 29-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Export lazy references of .objc_class_name of class names
referenced in a category implementation meta-data
(Next objc 32bit abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2f87216d26d2fce02d2aa6d6dd0a37d61f75fdfb 29-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Type of msgSend message dispatch API is a vararg.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9a901bb63990574ff0bcc12ff851d7a71cff8ddb 26-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Remove getIntegerConstantExprValue in favor of using EvaluateAsInt.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
d019d96e1ea39cec32f1320b1f9f772aae28247e 24-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Minor refactoring. No intended change in behavior.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8c2f2d1849247ebf7b2c0dbf1ebba15fe163664b 24-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Minor refactoring. No change in functionality.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
81adc058eaf450b43671633b2ad92e8bfa08d9b3 24-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Some code clean up of objc2's bitmap layout.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2eada631e99ae5239c55572d65b41433db6fa172 23-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Removed bunch of FIXMEs no longer needed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
325f75896d346605a00b9cc3494ed20a2a5dfb4e 23-Apr-2009 Daniel Dunbar <daniel@zuster.org> Mark IMAGE_INFO as constant on x86_64-darwin.
- This shouldn't change anything, we never actually access it, but
this is consistent with llvm-gcc (and 32-bit)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0941b49af3b7204ddb69ed21f07c966b8d949cf4 23-Apr-2009 Daniel Dunbar <daniel@zuster.org> Use std::sort instead of qsort.
- Notably, there was a memory error here, SkipIvars does not have to
be the same size as IvarsInfo.

- Fariborz, please check.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
c71303de3e295d19c3617b6738da009f6e679337 23-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> ivar layout bitmap is alive!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a80a0f6398df06c018af779a7ca82a29172c45d1 22-Apr-2009 Daniel Dunbar <daniel@zuster.org> Reapply r69771, with updates & fixes:

Rework the shadow struct that is layed out for Objective-C classes.

- Superclasses are now always laid out in their shadow structure at
the first field.

- Prior to this, the entire class heirarchy was flattened into a
single structure which meant that alignment, padding, and bitfields
were incorrect (the ASTRecordLayout was correct however, which
meant our debug info didn't coincide with ivar offsets, for
example).

- This is still very suboptimal (for example, ivar are looked up
recursively, but I believe the ivar layout itself is now at least
close to correct.

- <rdar://problem/6773388> error: objc[29823]: layout bitmap sliding
backwards


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a24357887dc2e6971fb84286be4484953565dc4d 22-Apr-2009 Daniel Dunbar <daniel@zuster.org> Remove lookupFieldDeclFromIvar from ObjCIvarDecl interface.
- This is only used by CGObjCRuntime now.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
412f59b23fc502b199b9ca96c72ef5d5ad21d62b 22-Apr-2009 Daniel Dunbar <daniel@zuster.org> Don't convert interface types (to structs) as part of CodeGenTypes.
- This has pros and cons, but for now the pros seem to significantly
outway the con.

The con is that we will always need to cast in the runtime
implementation to a struct type, if we wish to access an interface
directly.

The pros are:
- Avoid the cost of generating types which are used. Most
manipulation of Objective-C objects is done through messages, and
only the implementation of a class will directly access
memory. Previously, we would convert the type even if it only
appear as a function parameter, for example.

- We don't need to worry about incomplete types, and
UpdateCompletedType for interfaces is gone.

- It becomes easier to narrow the interface to the shadow struct for
Objective-C interfaces (so it can be eliminated).

Currently the runtimes still use the CodeGenTypes machinery to
generate the LLVM structure they need via ConvertTagDecl, but this can
eventually be replaced.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
3fea0c01e178e46eb20e81de4907a3d144c21fd6 22-Apr-2009 Daniel Dunbar <daniel@zuster.org> Emit meta data using the Ivar, not a looked up FieldDecl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
d4ae6c038ea8dd2faaadd1f9da725ec37b4f7ef9 22-Apr-2009 Daniel Dunbar <daniel@zuster.org> Revert r69771, I missed some (obvious) details. :/


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0c45793173ebdf15ba7345a1f71919c47abbeed0 22-Apr-2009 Daniel Dunbar <daniel@zuster.org> Rework the shadow struct that is layed out for Objective-C classes.

- Superclasses are now always laid out their shadow structure at the
first field.

- Prior to this, the entire class heirarchy was flattened into a
single structure which meant that alignment, padding, and bitfields
weren't packed correctly (the ASTRecordLayout was correct however,
which meant our debug info didn't coincide with ivar offsets, for
example).

- This is still very suboptimal, but I believe the ivar layout itself
is now at least close to correct.

- <rdar://problem/6773388> error: objc[29823]: layout bitmap sliding
backwards


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1c02f86f5be46f36d6c5facb88c2d15e0e19266c 22-Apr-2009 Chris Lattner <sabre@nondot.org> move 64-bit abi functions to lazy model, everything is lazy now, yay.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
72db6c3db7b3f992f06c880f9039f03b4cdeb517 22-Apr-2009 Chris Lattner <sabre@nondot.org> remove the last of the non-lazy objc runtime functions for the 32-bit ABI,
7 left for 64-bit ABI.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
bbccd611bb3ccf36703992592ef5209327f259b9 22-Apr-2009 Chris Lattner <sabre@nondot.org> number of non-lazy runtime functions from 9 -> 4.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4176b0c632b166548f5d0437efff10a748cd62c4 22-Apr-2009 Chris Lattner <sabre@nondot.org> make message send functions lazy, we're down from 14 non-lazy functions to 9.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
34b02a11576fd6123a703102fc0405a5bb29f6a9 22-Apr-2009 Chris Lattner <sabre@nondot.org> move more EH stuff to being lazily created. An empty .m file now
produces just 14 dead "declares" in llvm ir instead of 19.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8a56911956aa875922a5faa3787c6829e7f7011f 22-Apr-2009 Chris Lattner <sabre@nondot.org> make try/catch objc runtime functions be lazily generated.
rdar://6809612



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
24c8991f4dd0ab86678b5ab11f05586687b55be9 21-Apr-2009 Daniel Dunbar <daniel@zuster.org> Make sure to mark the interface as completed when we see an
@implementation that closes a @class delcaration.
- I don't know how to make a test case for this, but this strengthens
the invariants that hold internally. The functionality change here
is the edit to SemaDeclObjC.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7fb162785f42d74d419db3d0d37ba698bca780a1 21-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> More objc2's ivar layout bitmap. No change in functionality.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
3d2ad66b47d19fb771276a66ab8ac7c9c38694b7 21-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> ObjC2's Ivar bitmap layout work. No change in functionality.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6c1aac8883ef2732a2d8543d7ac2a5ca9a199f86 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Move countInheritedIvars to within striking distance of
GetClassSizeInfo

Reduce nesting in GetInterfaceDeclStructLayout.

Tweak some comments.

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6ec07164b4c678645036c0e43007cc9663d2af74 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Inline GetFirstIvarInRecord into sole caller.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c7c6dc0c7ad547f03778502a63a18c3277dd93b5 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Set a bit in IMAGE_INFO to indicate that we don't contain any
@synthesized ivars for superclasses.
- <rdar://problem/6806371> [clang] Mark code without miscompiled
@synthesized properties


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3e5f0d88d7eda79b7a679188d1e6da54cec72f5d 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Lift out GetNamedIvarList.

Drop uses of GetFirstInvarInRecord, instead we lookup the ivars we
know are in the record.
- This is somewhat less efficient, but I need to detangle this code
first...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3eec8aac935eda70975d7d88f1f4a09be90f33c9 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Don't emit ivar offsets for unnamed bit fields.

Also, added assertion that the field matches what would be looked up.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
91636d6c4c07fd2edf19a510b02c6e793a28741f 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Comment fixes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b02532a9e34d23de996cbf1f46fc978ef556c0e5 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Lift GetClassSizeInfo out of GenerateClass, add a FIXME.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
48fa064aa62526def4a0d804c43ed08ef44136eb 19-Apr-2009 Daniel Dunbar <daniel@zuster.org> Fix bug in computation of ivar offsets for (adjacent) bitfields.
- The confusing IRgen bitfield interface is partly to blame here;
fixing the functional error for now, cleanups to the interface to
follow.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
737c502a3f259fc3790542366597c7e3fccad6fd 19-Apr-2009 Daniel Dunbar <daniel@zuster.org> Reuse ObjcIvarOffsetVariable instead of duplicating code.
- No functionality change (but added a FIXME).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5e88beaa0a86b162dfb9f53891adfdfbe925cc64 19-Apr-2009 Daniel Dunbar <daniel@zuster.org> Remove some unnecessary complexity.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1139452ae326e96a11f9740e5fda7f995fd3a6be 18-Apr-2009 Daniel Dunbar <daniel@zuster.org> Fix a bug found by inspection, class/meta references could be emitted
into the wrong section (they shared the same lookup table).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
96508e1fea58347b6401ca9a4728c0b268174603 18-Apr-2009 Chris Lattner <sabre@nondot.org> fix a crash compiling code with its own definition of objc_assign_weak.
rdar://6800430



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8a81e1e858f9bb75c295c12b5b05e17b49fcd279 17-Apr-2009 Daniel Dunbar <daniel@zuster.org> Don't put msgrefs in used globals (in particular, we don't want
no-dead-strip set on them).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
51123fe78c92a4d1e76b6599db9db6a87db7b679 17-Apr-2009 Chris Lattner <sabre@nondot.org> Fix rdar://6800926 - crash compiling non-fragile _Bool bitfield ivar,
the functional change here is changing ConvertType -> ConvertTypeForMem
so that we handle i1 fields properly as memory.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fdb5e1c5317fb59415b8eea10a584030cf997627 16-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Removed a no longer needed FIXME comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1e9aef31545b2312ddfc5ac2593ad8e48754e2c6 16-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Category method synbols must be qualified by gategory name to
match gcc's.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7595fb1418243ac715d729b4dc62d995a7a1d5a5 15-Apr-2009 Daniel Dunbar <daniel@zuster.org> Don't use \01 in symbol name if unnecessary.
- This was particularly bad since I fixed one instance of this name
and not another, meaning we got an LLVM module with the same
effective name in two different globals!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f59c1a6d27ff23fb0ea1f5b94be0e1dc866f68b9 15-Apr-2009 Daniel Dunbar <daniel@zuster.org> Fix alignment on obj_msgrefs to match llvm-gcc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
33af70f0f003d9765b92621f4fdd801e2b6c0ae7 15-Apr-2009 Daniel Dunbar <daniel@zuster.org> Add test case for superrefs section (and make spacing consistent).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
93ae2c780e2ab6382f60610866217213a9fa182a 15-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> __objc_superrefs belongs to __DATA segment.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0bf2199b79b1ca2dcbb0d0406fd90335c8575752 15-Apr-2009 Daniel Dunbar <daniel@zuster.org> Tweaks to Objective-C metadata (32 & 64-bit) to match llvm-gcc.
- Set alignment on property lists.
- 32-bit:
o Set section on property lists.
o Fix section name for category class methods.
o Fix symbol name for property lists.
o Fix section name for class method.
o Set alignment and section on class extension structure.
o Set alignment on a number of things: instance variables, methods,
method descriptions, the symbols structure.
- 64-bit:
o Fix section flags for protocol list.

I doubt most of these were problems in practice, but it is nice to
match llvm-gcc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b90bb0099e9c8914ba18ddb2d30f9369b6de74d5 15-Apr-2009 Daniel Dunbar <daniel@zuster.org> Set alignment on __cstring metadata variables to 1 (matching
llvm-gcc).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dd1319879fedf30690fbbb63d5330ad4e54ffe9f 15-Apr-2009 Daniel Dunbar <daniel@zuster.org> Avoid use of magic \01 prefix when unneeded.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0f9029406b4dcdcf740cf99edc8652c43c9350cd 14-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Do not dead code strip global meta-data objects.
This will match gcc's behavior in the arena.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c15830694f2bd01080e6c39a88c5b8ff2288af18 14-Apr-2009 Daniel Dunbar <daniel@zuster.org> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
04d4078425614bf9fd58d606335c1f5f74ee7fa4 14-Apr-2009 Daniel Dunbar <daniel@zuster.org> Clean up handling of visibility.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b11fa0d25d86169f0e0a29d5398116c0212bb787 13-Apr-2009 Daniel Dunbar <daniel@zuster.org> Update to use hasAttr() instead of getAttr().
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
960cd06eab1325071d331b462553c9e4135c926e 10-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to generate meta-data for prtocol used
in @protocol expression.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
8158a2f78c47bf332dbd8b0b680de8a9b8d0511e 08-Apr-2009 Daniel Dunbar <daniel@zuster.org> Implementation definition of interfaces with __objc_exception attribute.
- Complete <rdar://problem/6635883> Support __objc_exception__
attribute


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
cf71dd4242fd00ab155b5430a4c6c9f88fe5c4be 07-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Propagte -fvisibility to objc2's class symbols.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7e075cb62c06e0b0023fd12875c95da9c5ddefb7 07-Apr-2009 Daniel Dunbar <daniel@zuster.org> Handle use side of __objc_exception__ attribute; when using an
exception with this attribute we don't need to emit a weak definition
for the exception type information.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6ab187a49a42de6d351248d8a6e0206e39743a0c 07-Apr-2009 Daniel Dunbar <daniel@zuster.org> Various fixes to symbols used for Obj-C x86_64 metadata.
- Changed method names to match gcc (categories names still aren't
mangled in).

- Expose correct name for class and metadata symbols (although
-fvisibility=hidden isn't yet correct).

- Remove several things from llvm.used that didn't need to be there
(I suspect this can still be trimmed).

- Don't use asm-prefix extension for _objc_empty_{cache,vtable} (not
needed).

- Hide EH type class info with -fvisibility=hidden

- Change setGlobal[Option]Visibility to not change the visibility of
functions with internal linkage.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
77c9fd2eee4cdac3c5a38a353788f308990598af 06-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed visibility issues related to objc2's synthesized
ivars.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b02e53b5a859f12ad1e3f90a22b6fb711901a172 06-Apr-2009 Chris Lattner <sabre@nondot.org> Fix a couple of cases where Constant* pointers can dangle in
ObjCNonFragileABITypesHelper by converting them to dynamic
getters. This fixes a crash on rdar://6757213. The others
should be converted over as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d09a456e466597fe1667ea5e757bfe53be2cba7d 02-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Fix up lookup rules for properties declared in
objc's continuation class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
99eee3675e830ff367ae1fe35ce19fb49e7e4114 01-Apr-2009 Fariborz Jahanian <fjahanian@apple.com> Nonfragile ivar synthesis with property is in a continuation
class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8d4141f83d9de379547cf05bd75d4c6cf894b189 01-Apr-2009 Steve Naroff <snaroff@apple.com> More "prep" work for handling UTF16 CFString.

Patch by Jean-Daniel Dupas. Thanks!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
03d9f34a96ea28eaa698cc779462a1ce1dc79105 01-Apr-2009 Chris Lattner <sabre@nondot.org> remove ASTContext::buildObjCInterfaceType, which breaks canonical
types. It is no longer needed now that the code generator
re-lays-out interfaces if they are defines after being laid out
from a forward decl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
18191886554407b4260c40165bc294c3ea732033 31-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen support for nonfragile abi's synthesized ivars.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5a4b45354cf81b27c1835c035a29c18eb101e686 31-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More toward nonfragile abi's synthesized ivars.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
f1690858344968358131f8d5690d9ee458883000 31-Mar-2009 Chris Lattner <sabre@nondot.org> fill in temporary smallvectors instead of vectors for performance.
Fix BuildAggrIvarLayout to not access vectors out of range.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
cd0ee14a3b8ba7293670f760c982063f4615e105 31-Mar-2009 Chris Lattner <sabre@nondot.org> small cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dbf15cb5709067b3d23b3cdd8d014610ba4a8783 26-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> - Minor change to dump of ivar layout map.
- Temporarily undef'ed __OBJC2__ in nonfragile objc abi mode
as it was forcing ivar synthesis in a certain project which clang
does not yet support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
667423a545c1f62efc32b48e5ce19c1c90181d4a 25-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More for for objc2's ivar layout map (currently
is not in use).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0a855d0bad7a32d5d0f8a03ac9ce7660c8c98b26 23-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> Must allow for strong cast of floats as well (objc2 gc).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
74391b48b4791cded373683a3baf67314f358d50 22-Mar-2009 Chris Lattner <sabre@nondot.org> pull "runtime globals" into the same framework as other functions/global variables.
No intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ebf9ed3193e3e2f32141781bd517369a58dbab61 20-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> Fix a crash during meta-data generation of objc2's nonfragile abi.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
73f697f1f94fb59999c37a16bcf4703001ae3ebb 15-Mar-2009 Daniel Dunbar <daniel@zuster.org> Remove a FIXME.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3b8a652d60ddc4419c1fab5c7b5347560283cdc1 13-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed an ir-gen bug related to strong-cast generation of
source being a non-pointer.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c8ce9c8c0b24e45aac06795a0222d8d1dbdeafcc 12-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More objc2's ivar layout bitmap.
bitmap generation for basic ivars seem to
work now. This is work in progress.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
21e6f176015f8ffa0f162618c03f6d63746361ef 11-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> Code refactoring. No change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
9397e1dd41cb52fb3f49e1872d48897dcfb14859 11-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More of objc2's ivar layout bitmap (Next: specific).
Work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
820e0203079afd64b0de422832f9e0b31a27c0c8 11-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More Next objc2's gc ivar layout bitmap work.
Work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a5a10c37a02ac65f88624a29d1f7ad1d196fc7ea 10-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More objc2's gc meta-data work related to ivar layout bitmap.
Work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
58a29128005f6e54c7d3aa39797d86ada8d40006 09-Mar-2009 Daniel Dunbar <daniel@zuster.org> NeXT: Set alignment on a number of ObjC metadata variables (matching llvm-gcc).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
63c5b50d80b9843acaea0a89d425b77454ac88d9 09-Mar-2009 Daniel Dunbar <daniel@zuster.org> NeXT: Move some routines over to CreateMetadataVar.
- No intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
35bd763b9438b53f7920521ed19c1ef74c7a6795 09-Mar-2009 Daniel Dunbar <daniel@zuster.org> Tweak CreateMetadataVar, take the exact alignment instead of relying
on LLVM TargetData.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a6681ae9bb1578b7a5be65eb34e22b026ecbe884 09-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More fix for bitfield ivar meta-data and code gen accessing it.
Now, we can actually execute dejagnu test with bitfield ivars
in non-fragile abi mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d6e941d37dbf75a20f94b94af377e44c38ab0070 09-Mar-2009 Daniel Dunbar <daniel@zuster.org> Fix typo in pref commit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fd65d370b14209e35cdbf7bb3b899b60ef207eab 09-Mar-2009 Daniel Dunbar <daniel@zuster.org> NeXT: Add CreateMetadataVar utility method to encapsulate creation of
Obj-C metadata variables (which generally should be handled the same,
although they aren't currently).
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b21f07e056b6c9918bf938f19ca561c60f778695 08-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> Code refactoring. No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
11894a4ad600a4919008b2693143cde395b9e9de 07-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> correct bitfield ivar offset in ivar meta-data.
(objc abi specific).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
286acbdbe0c82e9a6bcad5fca3c4fa582f3f1a2c 07-Mar-2009 Mike Stump <mrs@apple.com> Fixup our uses of various linkages to match how llvm now works. I think they are all
correct, but an extra set of ObjC eyes would be good.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8339b35ca05dd040a9a0ecfc92e7b49d80c5a96b 07-Mar-2009 Eli Friedman <eli.friedman@gmail.com> Back out the patch in r66302, and re-fix it properly. We assume for
performance that the type of the returned llvm::Value for an expression
matches the converted type of the clang::Expr; mismatches will cause all
sorts of errors and silent miscompilations.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ede8de95ebea858e65c79e54aa2455a394f27f13 06-Mar-2009 Daniel Dunbar <daniel@zuster.org> Cleanup EH a bit given changes to ObjCCatchStmt.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d61a50a84d87a317cf929c6c1babf27d404b1e29 05-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> More function stop for objc2's ivar layout bit map.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d80d81b53c08db00078c14d30aba4fa259a20ae0 05-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> Adds a template for a function for objc2's gc's ivar layout
bitmap.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7794bb8271d97bea5d0bf52f4f050fbfff1a7420 04-Mar-2009 Devang Patel <dpatel@apple.com> Refactor code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7ba138abd329e591a8f6d5001f60dd7082f71b3b 03-Mar-2009 Steve Naroff <snaroff@apple.com> Fix <rdar://problem/6640991> Exception handling executes wrong clause (Daniel, please verify).

Also necessary to fix:

<rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements
<rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4ff36847f44b35c2677330c39e87dff1d745944a 02-Mar-2009 Daniel Dunbar <daniel@zuster.org> First cut at zero-cost EH support.
- Still manually generates the EH code; the parts related to cleanup
need to be integrated into the cleanup stack (for proper
interaction with VLAs, etc.).

- Some differences vs gcc in corner cases; I believe our behavior is
correct but need to verify/file bugs vs gcc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
cec4c77bf422528f4536d30574b82f878bc705b3 02-Mar-2009 Daniel Dunbar <daniel@zuster.org> Make sure to invoke (not call) to objc_exception_throw if necessary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dfff23060b4a3add79a3bb68ccec606ade4f39bf 02-Mar-2009 Daniel Dunbar <daniel@zuster.org> Fix completely broken thinko in GetClassGlobal.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8def799ef5b006d4a28f9466e4637a90dcab2b0d 01-Mar-2009 Daniel Dunbar <daniel@zuster.org> Obj-C non fragile ABI: Use GetClassGlobal in one more instance I missed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e588b9924fb36975fada46d48e74a948653e7526 01-Mar-2009 Daniel Dunbar <daniel@zuster.org> Obj-C non fragile ABI: Add GetInterfaceEHType for getting the Obj-C
exception typeinfo metadata, and a few other EH related types/functions.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5a7379a0d7a89d646322cfa61d80c60ef23d4569 01-Mar-2009 Daniel Dunbar <daniel@zuster.org> NeXT: Unify code for creating a class global.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
93b2bdb866d49e3dab4623a822db281042e87382 01-Mar-2009 Daniel Dunbar <daniel@zuster.org> ObjCAtCatchStmt's ParamStmt is always a DeclStmt.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
5a1edf6c0dc70bd555e51bedba782da8e3552f94 28-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Alignment of pointers in __objc_classlist must be on their
natural alignment. Otherwise, the excess hole confuses the
objc2 runtime (this is darwin specific).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
21228b7753c6579d1ea273b52316239bf059ab75 26-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Couple of meta-data segments were wrong. This patch fixes them.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fab98c4e24a55960322c0f5e349df22c48597a73 26-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Fix an inconsistance in objc2's meta-data related to
the symbol for the root meta-data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
66a5c2c0da225d45334c8062f10e73b7dee50681 25-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> patch for two things.
make sure objc2's nonfragile abi is enacted for Leopard too.
add -fobjc-gc-only flag to the image_info symbol.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
067986e534121a0226b5580d026c7afaf5ee514d 24-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Set flag for -fobjc-gc in IMAGE_INFO variable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8ecbaf25c1373be6fb5a9d332b08b6be16d9fd4e 24-Feb-2009 Daniel Dunbar <daniel@zuster.org> Some initial Obj-C zero cost EH support.
- Only handles cases with @try with no @catch blocks, and there are a
number of problems with the implementation. Nevertheless, this is
good enough to handled @synchronized correctly, and some other
basic uses.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1c56667febcf8e2d78bd8c1c720eca1888ff1d60 24-Feb-2009 Daniel Dunbar <daniel@zuster.org> Fix two @synchronized bugs found by inspection: the expression to sychronize on should only be evaluated once, and it is evaluated outside the cleanup scope.

Also, lift SyncEnter and SyncExit up in nervous anticipation of x86-64
zero cost EH.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
a223cca7751637f8ec1a860010c4148757fb4752 20-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> More objc's gc ir-gen stuff.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f57c5b2ef767223f349be6adba9bf1b4f9d19283 16-Feb-2009 Anders Carlsson <andersca@mac.com> Add support for throwing exceptions to the nonfragile ABI

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
6948aea3664832416031eaac6fb55af3efb99b48 16-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Added implementation of objc2's gc API calls for
nonfragile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
28ed0847480b76ce76a7e605156608b1cea80e53 16-Feb-2009 Daniel Dunbar <daniel@zuster.org> assert/ErrorUnsupported in unimplemented stub functions instead of
miscompiling.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
948e2589505aa1b334b2cff81b28a741db49f701 15-Feb-2009 Daniel Dunbar <daniel@zuster.org> Obj-C non-fragile ABI: Fix types of a few globals; these were not
creating valid LLVM structures (although they work fined).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3ab75bde6d8d2798a1f400b9335d359e25fb1765 14-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed a bad ir-gen bug which caused a dejagnu test to fail.
Now we are pretty close to be in sync with objc's classic
abi when it comes to passing dejagnu objc executable tests.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f3710babc1ba40779c0fc64e6657cfc84dee7545 14-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed a problem caused by foreward @class use
which consequently caused a Seg fault. during meta-data
generation. It also addresses an issue related to
late binding of newly synthesize ivars (when we support it).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
943ed6ff5fafabc5ee1ea6a015908562688fbd47 13-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed a 64bit code gen bug of a cateogory
implementation with no category declaration!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
01a0c3624aaa976ccba08b6cee1606521b8378d2 12-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Fix a bug whereby, an ivar used to synthesize a property belongs
to a base class (nonfragile abi ir gen bug).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
389bf46ae41241a656ed71b00ac2177d7f385651 12-Feb-2009 Steve Naroff <snaroff@apple.com> Several cleanups:
- rename isObjCIdType/isObjCClassType -> isObjCIdStructType/isObjCClassStructType. The previous name didn't do what you would expect.
- add back isObjCIdType/isObjCClassType to do what you would expect. Not currently used, however many of the isObjCIdStructType/isObjCClassStructType clients could be converted over time.
- move static Sema function areComparableObjCInterfaces to ASTContext (renamed to areComparableObjCPointerTypes, since it now operates on pointer types).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
26cc89ffb1cc57313371b4175ceac56a2f975641 11-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> ir-gen for objc's @selector expression in nonfragile abi mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3afdfd70616b5ba569dc4e78f41063d35b127464 10-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> This patch is all it takes to pass all objc2's fast-enumeration
tests in the dejagnu test suite in the nonfragile abi mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ed157d3952637afe0ec38bf850b4d025b9a701ac 10-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Generate ir for ivar offset. This will pass
type-nsobject-attribute.m in the dejagnu test suite
in the nonfragile abi mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
fa1f756f88f4e6f3da2673082fdc1e8f54bccd6f 10-Feb-2009 Anders Carlsson <andersca@mac.com> Remove the last remnants of the Obj-C EH stack code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f3a79a96eecff0fba4de8e29831a5ec0eaf90385 09-Feb-2009 Anders Carlsson <andersca@mac.com> Use the new cleanup infrastructure for @try/@finally

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
48de1012a2d8525362b417efce6fbfdf1c2b36e1 08-Feb-2009 Anders Carlsson <andersca@mac.com> Add a simplified EmitJumpThroughFinally and use it in CGObjC in preparation of making it use the cleanup stack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
273558fbd891a0872e620e0d3d109b92c1160d72 07-Feb-2009 Anders Carlsson <andersca@mac.com> Split the exception object out into its own stack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
190d00e1396214c77539c7095756b9ea38160463 07-Feb-2009 Anders Carlsson <andersca@mac.com> Simplify the Objective-C exception handling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
169c7f8fa6d1d361f44708609cf0cd0780c4f6fb 07-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Fixed an objc2 nonfragile-abi code gen bug.
Now we can say 'hello world' objective-c style
in the nonfragile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
7a06aae468c94a21c267106ec16bd2c79dab2857 06-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> objc2's nonfragile abi API for messages sent to 'super'.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0e81f4b58d4e9767efbca7f3e856dcbc2192b1b5 05-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> objc2's nonfragile-abi - API selection for when receiver is a class


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1a6b3686bf5671075c5b217fcfc1840cb0aae172 05-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> More objc2's API chanes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c170852db6af081810c6fca01e2f434cb8709209 05-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> #ifdef'out out objc2 API selection which is not done in gcc (unlike
the documentation to the contrary).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ef163782d227f064df5988d46487609324a0169e 05-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> This patch generates messaging code for objc2's non-fragile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
83a8a7534c6766c2df2745eca35effa3e6f9d092 04-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Some early code for objc2's nonfragile abi messaging.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
34c94a2babcac200c8e0fd778e549afcc43e2df1 04-Feb-2009 Daniel Dunbar <daniel@zuster.org> Change construction of common ObjC functions to use CGCall
infrastructure to construct function type.
- For consistencty, we should probably always use this to construct
function types, but these are absolutely necessary to ensure that
we can emit calls to these functions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4655112d1c64a098c5f7d665175063f4664a7cf6 04-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Some function stub added for new abi messaging.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2e4672b53107245deb998f55fb9dd77650d610dd 04-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Several new declarations for objc2 nonfragile
abi messaging.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
07da367ca230b88d4b056dd79fefa4f10ab88b7a 03-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Minor objc2 bug fix.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
09796d6a23c683413470efd19dd5ad331d91af7d 31-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Use target alignment API to set objc2's meta-data
alignment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
725ad31086e3d6c41afa10c43db44f2e7060a961 31-Jan-2009 Daniel Dunbar <daniel@zuster.org> Kill off CGCallInfo, always use CGFunctionInfo for encapsulating
function/call info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dd0db2a60b65e7eaa852b77c8b9f607640eb50b9 31-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> class meta-data belong to __objc_data section (in objc2
nonfragile abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
cf55516a2f8db4790e4f291fd94fe9e887d2464a 31-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Recognize class's visibility attribute and set its linkage
to private extern (in objc2 nonfragile abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
fdbe11db007c20222951dae6265a1c7ab4aaeb57 31-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Missed another mis-alignment of an objc2 meta-data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
014858b69f063cbf7b6513eebe964a9f6224970d 31-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Setting correct alignent for objc2 meta-data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
0f6610e41701e7d7a9b65c52e1a0926530ac3ce1 30-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> add imag_info section and data (for objc2 nonfragile abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f87a0ccb05eb2aa095ea835fdcdf4a0363637b28 30-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Generate list of implemented classes and categories in their
own sections (related to objc2 nonfragile abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8cfd397d5f1dfb0a0242c428f7d9cb24dceb5760 30-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Code gen. for @protocol expression in the new nonfragile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3819a0bf47f43fc6e496c1d0257a1658424ab6a5 30-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Bug fixing involving method-list in protocol meta-data
(objc2 nonfragile-abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
eb732131505dd9710b35e32077143962dab52cab 30-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Random bug fix related to protocl metadata in categories in
non-fragile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
8448c2cdab6e3d4b15725921735243c77b06623d 29-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Set protocol linkage and visibility correctly and
build protocol translation table meta-data (objc2
non-fragile abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
da3200986d9ec2ed0920e4d84ac210c889136946 29-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Protocol meta-data for objc2's non-fragile abi.
Lot more to do in this area.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
939abced90071beb750041ee9c2cf57f827e024a 28-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Add setter/getter methods to the list of methods
of class's meta-data (related to objc2 nonfragile abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5de14dc87966ab98730cfacffe0b7d3198a91a62 28-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> property metadata for objc2's nonfragile abi



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
46b86c610ede6d9abdec254f39663db86c9c88e0 28-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Some refactoring of common code. No change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2fa5a27f38b2c4abc26e86895fdcef3ec84af39d 28-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Set visibility of ivar offset symbols according to
accessibility of the ivar (related to objc2's
non-fragile abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1bf0afbb08a23412d1607505c092a537f305d8c7 28-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Generation of ivar-offset symbols in objc2's non-fragile abi.
Changed section names for meta-data (to match current gcc).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
07236ba8d3cf1d2aa8cd173c440f3e7dc1249fd0 27-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> After talking to our runtime guru, I added a comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
98abf4bd3526a00a0e5cf71a9462c181f97b1c81 27-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> ivar meta-data generation for nonfragile-abi.
Still more work to do in this area.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
528473335419f072f6eff25a4af07925c1692121 27-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Added a FIXME.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f6317dd7da4a3de06a45cba3ed9d47e6877b4cca 26-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Build method-description-list for category meta-data
as well (for nonfragile-abi).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
493dab7fe59303d8bb2120bc2556f355344f65bd 26-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Method decription meta-data and its setting in class_ro_t
meta-data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
eb062d922f10f7e649c2a18fab6c65bc169c77d5 26-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Meta-data for nonfragile-abi's categories


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f6a077edbbfc88d63b43d43f22db93017685c130 25-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Compute instaceStart/instanceSize fields of the class_ro_t meta-data
for objc2's non-fragile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
84394a50e307e2f056e270e1eeadd4f26913cd1e 24-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to build class meta-data for each implementation
of class in objc2's nonfragile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
058a1b7f9d7d3498783f7d24e73235c4ba7ee851 24-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> This patch builds the meta-class object for each
implemented class in objc2's nonfrigile abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
aa23b570b059e8d29c69a656bbdc42f652f7c308 24-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Some very early work for new objc's
meta-data generation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f31c7293ff626c8f235c62991617084a100300c4 23-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Checked in an oops!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
45c2ba0c13f353a8bab6cc01b30b3a13f3404c1e 23-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Another missing LLVM type for objc2's new abi defined.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d55b6fc5f3304e97621b4d5a2d9376ad63d74179 23-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Define LLVM types for nonfragile abi metadata.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
30bc57187be7535c57ef1ca8ff3e765653e94332 23-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Use NonFragileABI as name of new Next abi. More comments
for the new meta-data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
db2868616b966c96a5014e58892c27cea377477c 22-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> More refactoring of common API to the common class for
the two Next's objc runtimes. More comments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
56210f780b3d7e6533b3dd968ad9ba007cdbe7b4 22-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Moved whole bunch of common APIs to the common class.
No change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ee0af74d1e0990c7b66d32657f3e4e54b8691552 21-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Refactoring ObjC Next's runtime classes in preparation for
the new ObjC's abi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
10a4231e73017e70231acebd55de2d2e48930a91 21-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Commented objective-c's metadata types. Minor clean up.
No change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4afa39deaa245592977136d367251ee2c173dd8d 20-Jan-2009 Douglas Gregor <dgregor@apple.com> Remove ScopedDecl, collapsing all of its functionality into Decl, so
that every declaration lives inside a DeclContext.

Moved several things that don't have names but were ScopedDecls (and,
therefore, NamedDecls) to inherit from Decl rather than NamedDecl,
including ObjCImplementationDecl and LinkageSpecDecl. Now, we don't
store empty DeclarationNames for these things, nor do we try to insert
them into DeclContext's lookup structure.

The serialization tests are temporarily disabled. We'll re-enable them
once we've sorted out the remaining ownership/serialiazation issues
between DeclContexts and TranslationUnion, DeclGroups, etc.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
f54b19497cb832da78700a6c86473231f35fba65 17-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Patch to re-implement ivar-list meta-data generation to fix
cases of unnamed ivar bitfields.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
482b77d1cb4ca08391d1f749436f092a4cc24427 13-Jan-2009 Douglas Gregor <dgregor@apple.com> Cleanup DeclContext::addDecl and DeclContext::insert interface, from Piotr Rak

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
93983f8fa120330bf212bfde7e65da2709fb3be8 11-Jan-2009 Steve Naroff <snaroff@apple.com> Convert property implementation to DeclContext::addDecl().
This completes the ObjCContainerDecl AST cleanup (for now).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
09c4719788a5cea09897525e528fa00420f1677b 09-Jan-2009 Steve Naroff <snaroff@apple.com> Move property API's up to ObjCContainerDecl (removing a lot of duplicate code).
Add isa/cast/dyncast support for ObjCContainerDecl.
Renamed classprop_iterator/begin/end to prop_iterator/begin/end (the class prefix was confusing).
More simplifications to Sema::ActOnAtEnd()...
Added/changed some FIXME's as a result of the above work.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
b0d27943e133f099a39abc26a49d1130b5a8f5af 07-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Another nasty code gen. bug with trivial fix. Calling class
method on 'super' receiver in a category implementation.
Other simpler cases were working by accident.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
43822eaeddeaa419b90f23c68af6b23c46788a58 20-Dec-2008 Fariborz Jahanian <fjahanian@apple.com> More encoding support. This time for
@encode of classes and bitfields.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
44b4321feab46299d3f5cfd404680884752a0fcf 11-Dec-2008 Douglas Gregor <dgregor@apple.com> Unifies the name-lookup mechanisms used in various parts of the AST
and separates lexical name lookup from qualified name lookup. In
particular:
* Make DeclContext the central data structure for storing and
looking up declarations within existing declarations, e.g., members
of structs/unions/classes, enumerators in C++0x enums, members of
C++ namespaces, and (later) members of Objective-C
interfaces/implementations. DeclContext uses a lazily-constructed
data structure optimized for fast lookup (array for small contexts,
hash table for larger contexts).

* Implement C++ qualified name lookup in terms of lookup into
DeclContext.

* Implement C++ unqualified name lookup in terms of
qualified+unqualified name lookup (since unqualified lookup is not
purely lexical in C++!)

* Limit the use of the chains of declarations stored in
IdentifierInfo to those names declared lexically.

* Eliminate CXXFieldDecl, collapsing its behavior into
FieldDecl. (FieldDecl is now a ScopedDecl).

* Make RecordDecl into a DeclContext and eliminates its
Members/NumMembers fields (since one can just iterate through the
DeclContext to get the fields).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
565c99f45e758406f26404e92fadd15d8b84a8c4 10-Dec-2008 Anders Carlsson <andersca@mac.com> Append an extra newline to the module inline asm if it's not empty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
f2878e5dffd20bf0a97fb0b30a376f2d60963593 21-Nov-2008 Fariborz Jahanian <fjahanian@apple.com> Fixed bugzilla bug# 3095 related to code gen. for @synchronized.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
dbd32c20c529430fe1d22d87317f039849b8b0bb 19-Nov-2008 Fariborz Jahanian <fjahanian@apple.com> Few more changes due to Daniel's feedback.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
6d657c4809d9128be88705d32768de007b988212 18-Nov-2008 Fariborz Jahanian <fjahanian@apple.com> Some basic support toward objective-c's GC code gen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
a448fb2da03ece39978784793eea68760e8205a1 12-Nov-2008 Daniel Dunbar <daniel@zuster.org> Rework IRgen invariant w.r.t. current insert point.
- EmitStmt is no longer required to finish with a current insertion
point defined (i.e. it does not need to make dummy
blocks). Instead, it can clear the insertion point in the builder
which indicates that the current insertion point is unreachable.
- CodeGenFunction provides HaveInsertPoint and EnsureInsertPoint
which respectively test if there is an insert point and ensure an
insertion point exists (by making a dummy block).
- Clearly mark functions in CodeGenFunction which can be called with
no insertion point defined. Currently this is a limited set, and
EmitStmt simply EnsureInsertPoint()s before emitting subsequent IR.

Remove EmitDummyBlock, which is no longer needed. Clients who haven't
already cleared the insertion point (typically via EmitBranch) can do
so by hand.

Remove isDummyBlock, which has effectively been renamed to
HaveInsertPoint.

The main thrust of this change is that we no longer have create dummy
blocks just to destroy them a short time later in EmitBlock in the
common case that there is no unreachable code following something like
a goto.

Additionally, this means that we are not using the hokey condition in
isDummyBlock that a block without a name is a dummy block. Guess how
well that works when we never emit block names!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
d57a871339c7c98d58d93108b806f59bdf4e13e2 11-Nov-2008 Daniel Dunbar <daniel@zuster.org> Add CodeGenFunction::EmitBranch.
- Emits an unconditional branch, with extra logic to avoid generating
spurious branches out of dummy blocks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
824e3bd76b2e32db2ec6e4d2d113413e518d1c63 11-Nov-2008 Daniel Dunbar <daniel@zuster.org> Add CodeGenFunction::EmitDummyBlock for marking places where we make
"dummy" blocks (blocks just used to make sure we have a place to dump
code to).


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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
0c0e7a65214d0b4af68336d6d2fdce525695146a 29-Oct-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit protocol objects lazily.
- That is, the metadata for a protocol is only emitted if that
protocol is actually used in the translation unit. This is
important because Objective-C headers frequently contain a large
number of protocol definitions, only a few of which will be used in
any given file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
d96b35bc6becf8db00d140c11e3d0e53f27567a1 17-Oct-2008 Daniel Dunbar <daniel@zuster.org> More Obj-C type encoding improvements.
- Encode unions and bit-fields correctly.
- Accept option to name record fields (used for NeXT runtime).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
5669e57b4a74d26e9e2fb70d778141d0d849388b 17-Oct-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Use objc_msgSend_fpret for calling functions which return
floating point. This is only correct for x86-32 at the moment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
de3b8fb02bd86a592fe5073020e6bdaf97902ffc 06-Oct-2008 Ted Kremenek <kremenek@apple.com> Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when processing the Decl of a @catch statement.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
91cd320ea2b7da98227869b0dd803a4953c076d0 02-Oct-2008 Daniel Dunbar <daniel@zuster.org> (LLVM up) Rename IRBuilder::IsNonNull -> IsNotNull.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ad2dc71a6f40e94331e72c18b2cffa0320b18eb3 01-Oct-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Update to use CreateRuntimeFunction for the routines it imports.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
898d508d4c9e9d45914952473e39196b20830a9f 30-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add infrastructure for proper @finally support.
- Provides a basic primitive to jump to an arbitrary basic block,
through the finally code.

- Only used for return statements and rethrow currently. Still need
to handle break, continue and goto.

- Code still needs to be shuffled around to live elsewhere.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
18ccc7776ad6288c5f630dc7967fb99d099c9cd9 28-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add support for implicit rethrows in @catch blocks.

Comment exception-handling code generation strategy.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e4b5ee06153777c6899d20797dce1d4d236eb4bc 28-Sep-2008 Daniel Dunbar <daniel@zuster.org> (Update LLVM) Clean up obj-c exception generation to be a bit more
readable and to generate more readable IR.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
97f61d14c89c26b9ae8e8f1faa8e8fcc6ec00b77 28-Sep-2008 Daniel Dunbar <daniel@zuster.org> Bug fix, codegen @catch(id<X> ...) acceptably.
- This should be rejected by sema (IMHO) but that needs some
investigation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
129271a42975f8b9d42adc707be9883db91c8a5d 27-Sep-2008 Daniel Dunbar <daniel@zuster.org> Simplify generate code for exceptions:
- There is no need to branch on the rethrow variable to determine if
we need to call objc_exception_try_exit. We know whether an
exception was thrown, so just branch to a different target if we
want to skip the try_exit.

This is a slight semantic departure from gcc, but only for throwing
nil, which is undefined (and for which gcc emits broken code).

- Also fixes a bug in current code which was calling try_exit too
many times when an exception was uncaught (but there were some
handlers).

Fix bug introduced in prev. commit, the type of the @catch parameter
was uninitialized.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
55e40721e7c27611174e52378f50435c9ded27db 27-Sep-2008 Daniel Dunbar <daniel@zuster.org> Bug fix, make sure to initialize exception object (to rethrow) even
when there are no @catch blocks.

Also, eliminated unneeded alloca for the rethrow object.

Also, avoid generating code to rethrow exception if the exception will
trivially always be caught.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
10004916dbda1f6f5d3d0dbea8c1e70b6466ab63 27-Sep-2008 Daniel Dunbar <daniel@zuster.org> Easy fix for nasty bug, exception data buffer had wrong type == wrong
(smaller) size == garbage on stack == heisenbugs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
86957eb200492e95a09bce1b2c76f66345468f84 24-Sep-2008 Daniel Dunbar <daniel@zuster.org> Implement Obj-C synthesized setters for copy / retain.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
dde0a94120915fa925d1ffcdb997c7b44dc9fa21 11-Sep-2008 Anders Carlsson <andersca@mac.com> Make sure to store the exception in the catch parameter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
1452f5599d4de1d97a71ad61786126b91da9da69 11-Sep-2008 Anders Carlsson <andersca@mac.com> Make sure to emit the catch parameter as well as the catch body.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
4b7ff6ebd7879ebf86cf6d0108d35d817135d513 11-Sep-2008 Anders Carlsson <andersca@mac.com> Fix stupid mistake I made in the exception handling code

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
62d5c1b5038cdaa4a887a03c37fe1e8d00166ea0 10-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add CodeGenTypes::GetFunctionType overload for getting the effective
type of a call.

Change NeXT runtime to use this instead of trying to bitcasting
internally (which doesn't respect the ABI).

Fix subtle bug, use of ConvertTypeRecursive instead of ConvertType is
bad inside GetFunctionType.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
b768807c49a1c7085def099b848631856af766fa 10-Sep-2008 Daniel Dunbar <daniel@zuster.org> Tweak CGCall functions again:
- Realized these functions will eventually need access to more data,
moved to CodeGenModule. Eventually they should probably live
together in some other helper class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3913f184c84135fb4612743f1faa6c1edd2dd055 10-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add CodeGenFunction::ReturnTypeUsesSret
- Hook so NeXT runtime doesn't depend on ABI.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
80f2567e30959b4428c14b3cb872a91be10b69f9 09-Sep-2008 Anders Carlsson <andersca@mac.com> Check in half-assed implementation of @try/@catch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
2b1e311009cf682b7b5adb8ba97a0816f727bfb7 09-Sep-2008 Anders Carlsson <andersca@mac.com> Simple @throw support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
124526b72f35978e4c9d5e1af8ee125a65c1b917 09-Sep-2008 Anders Carlsson <andersca@mac.com> Add types and functions related to exceptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
4b7c98378ae0c1a3635f0b7756848b4a9923f8bc 05-Sep-2008 Ted Kremenek <kremenek@apple.com> Change struct forward declarations and definitions to use unique RecordDecls, as opposed to creating a single RecordDecl and reusing it.

This change effects both RecordDecls and CXXRecordDecls, but does not effect EnumDecls (yet).

The motivation of this patch is as follows:
- Capture more source information, necessary for refactoring/rewriting clients.

- Pave the way to resolve ownership issues with RecordDecls with the forthcoming
addition of DeclGroups.

Current caveats:
- Until DeclGroups are in place, we will leak RecordDecls not explicitly
referenced by the AST. For example:

typedef struct { ... } x;

The RecordDecl for the struct will be leaked because the TypedefDecl doesn't
refer to it. This will be solved with DeclGroups.

- This patch also (temporarily) breaks CodeGen. More below.

High-level changes:
- As before, TagType still refers to a TagDecl, but it doesn't own it. When
a struct/union/class is first referenced, a RecordType and RecordDecl are
created for it, and the RecordType refers to that RecordDecl. Later, if
a new RecordDecl is created, the pointer to a RecordDecl in RecordType is
updated to point to the RecordDecl that defines the struct/union/class.

- TagDecl and RecordDecl now how a method 'getDefinition()' to return the
TagDecl*/RecordDecl* that refers to the TagDecl* that defines a particular
enum/struct/class/union. This is useful from going from a RecordDecl* that
defines a forward declaration to the RecordDecl* that provides the actual
definition. Note that this also works for EnumDecls, except that in this case
there is no distinction between forward declarations and definitions (yet).

- Clients should no longer assume that 'isDefinition()' returns true from a
RecordDecl if the corresponding struct/union/class has been defined.
isDefinition() only returns true if a particular RecordDecl is the defining
Decl. Use 'getDefinition()' instead to determine if a struct has been defined.

- The main changes to Sema happen in ActOnTag. To make the changes more
incremental, I split off the processing of enums and structs et al into two
code paths. Enums use the original code path (which is in ActOnTag) and
structs use the ActOnTagStruct. Eventually the two code paths will be merged,
but the idea was to preserve the original logic both for comparison and not to
change the logic for both enums and structs all at once.

- There is NO CHAINING of RecordDecls for the same RecordType. All RecordDecls
that correspond to the same type simply have a pointer to that type. If we
need to figure out what are all the RecordDecls for a given type we can build
a backmap.

- The diff in CXXRecordDecl.[cpp,h] is actually very small; it just mimics the
changes to RecordDecl. For some reason 'svn' marks the entire file as changed.

Why is CodeGen broken:
- Codegen assumes that there is an equivalence between RecordDecl* and
RecordType*. This was true before because we only created one RecordDecl* for
a given RecordType*, but it is no longer true. I believe this shouldn't be too
hard to change, but the patch was big enough as it is.

I have tested this patch on both the clang test suite, and by running the static analyzer over Postgresql and a large Apple-internal project (mix of Objective-C and C).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
df042e6c2bf06b2d9ed53c52469599ac1bd93a3f 05-Sep-2008 Ted Kremenek <kremenek@apple.com> Remove "NextDecl" from RecordDecl. This change touches many files that where RecordDecl or CXXRecordDecl was constructed, always with an argument of 'NULL' for the previous declaration.

The motivation behind this change is that chaining the RecordDecls is simply unnecessary. Once we create multiple RecordDecls for the same struct/union/class, clients that care about all the declarations of the same struct can build a back map by seeing which Decls refer to the same RecordType.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c67876d6886219983881e1304a761b113ae1aec0 04-Sep-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit lazy reference to Protocol class for forward protocol
references (to match gcc).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e66f4e3e3ae9d7d11b0c302211066fad69228aba 03-Sep-2008 Daniel Dunbar <daniel@zuster.org> Fix ObjCPropertRefExpr to be able to encode all the information for
uses which refer to methods not properties.
- Not yet wired in Sema.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
662174c82ef46b19a2329c7d37208e1d12dfb7b3 29-Aug-2008 Daniel Dunbar <daniel@zuster.org> Downgrade a number of FIXME asserts to ErrorUnsupported.
- Notably VLAs


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c56f34a1c1779de15330bdb3eec39b3418802d47 28-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit mostly-correct property type encoding.
- Added ASTContext::getObjCEncodingForPropertyDecl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
ae226fa1141e22d1b997f19bd92c7223079d03f4 27-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Refactor protocol method metadata emission.

Also, fix category protocol list metadata.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
86e2f40071ca8c29284a3294fe2f20a01ec88971 27-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit correct properties for category.
- Was emitting duplicates of class properties instead of the category
properties.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
c45ef600ed6f1544e8dfca2a3fa554eb7d6a9908 26-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit metadata for synthetsized properties.

Also, fix method lookup to not use LLVM module symbol table.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
af05bb9073319d8381b71c4325188853fd4b8ed6 26-Aug-2008 Daniel Dunbar <daniel@zuster.org> Objective-C @synthesize support.
- Only supports simple assignment and atomic semantics are ignored.
- Not quite usable yet because the methods do not actually get added
to the class metadata.
- Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain).
- Rearrange CodeGenFunction so synthesis can reuse function prolog /
epilog code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
242d4dce3ab9a649866066b44c5a32cd2c09b6b8 25-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit symbols used to manage linking of Obj-C classes.
- This ensures that references to undefined classes cause link
errors.
- NOTE: This relies on platform specific asm directives currently,
this should be factored out.

Also, don't emit a SYMBOLS metadata entry if there are no symbols.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
3e9df9920db8de8ec93a424b0c1784f9bff301ea 23-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Clean up constant CFString handling.
- Use CodeGenModule::GetAddrOfConstantCFString

Some tweaks of CodeGenModule::GetAddrOfConstantCFString


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
14c80b7ed64e0eddfbe81adf5113d5be5f9964bf 23-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Fix message sends which return structures.
- Simplify the sending code a bit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
e8b470d40c4d44b77c2efab3cb977beb23344ff6 23-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Implement super message sends.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
c8ef551615e7c7e4aae7c2e845f998be42daef4f 23-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit property metadata (classes, protocols, categories).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
86e253a0cb438b118eb598abb0225d431c8798d2 22-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit category metadata.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
dbc933701d20918add13b6a3c9d47ff8c75419cf 21-Aug-2008 Daniel Dunbar <daniel@zuster.org> NeXT: Emit [meta]class protocol references.

Updated ObjCProtocolDecl::protocol_iterator to match that of
ObjCInterfaceDecl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
27f9d77b61b377b21ccda536122f2be6fa715751 21-Aug-2008 Daniel Dunbar <daniel@zuster.org> Preliminary support for Obj-C classes in NeXT runtime.
- Functional for simple cases but there are some glaring omissions
(protocols, properties, and other language extensions).
- The code needs a fair bit of cleaning.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.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/CGObjCMac.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/CGObjCMac.cpp
6efc0c559b5f9861d4bbd4aef5b4897c02b2ae74 13-Aug-2008 Daniel Dunbar <daniel@zuster.org> Implement Obj-C protocol metadata generation for NeXT.
- Near complete, only properties are missing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
4e2d7d03b2e07ad5f4eb56be67f066ed1427b3a5 12-Aug-2008 Daniel Dunbar <daniel@zuster.org> Emit OBJC_MODULE_INFO and OBJC_SYMBOLS metadata
- Matches llvm-gcc and seem to be expected by otool.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
259d93d1e1f820d5ee7251e875fdb7c883102f16 12-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add NeXT support for (simple) message sends.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.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/CGObjCMac.cpp
f77ac86f4eca528a04b817d7ad7f045a47d52712 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add LangOptions::NeXTRuntime.
- Wired to -fnext-runtime and -fgnu-runtime options.
- Defaults to GNU, no autoselection for NeXT.

Emit NeXT OBJC_IMAGE_INFO marker.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGObjCMac.cpp
acc5f3e42334525bf28c86471551f83dfce222d5 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> More #include cleaning
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.


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