summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Use ComputeIvarBaseOffset instead of looking up by hand.Daniel Dunbar2009-04-221-7/+2
| | | | llvm-svn: 69789
* Merge ivar access amongst the three runtimes.Daniel Dunbar2009-04-223-147/+124
| | | | | | | | | - 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. llvm-svn: 69787
* implement debug info support for id<proto> and interface<proto>Chris Lattner2009-04-221-9/+9
| | | | llvm-svn: 69784
* ObjCQualifiedClass is dead, remove it.Chris Lattner2009-04-222-2/+0
| | | | llvm-svn: 69783
* Make ObjCInterfaceDecl's const in some more places.Daniel Dunbar2009-04-225-11/+10
| | | | llvm-svn: 69775
* Revert r69771, I missed some (obvious) details. :/Daniel Dunbar2009-04-221-16/+49
| | | | llvm-svn: 69773
* Mark another TypeForDecl const and make getObjCInterfaceType's argument const.Daniel Dunbar2009-04-221-2/+1
| | | | llvm-svn: 69772
* Rework the shadow struct that is layed out for Objective-C classes.Daniel Dunbar2009-04-221-49/+16
| | | | | | | | | | | | | | | | | | | - 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 llvm-svn: 69771
* move 64-bit abi functions to lazy model, everything is lazy now, yay.Chris Lattner2009-04-221-75/+81
| | | | llvm-svn: 69767
* remove the last of the non-lazy objc runtime functions for the 32-bit ABI,Chris Lattner2009-04-221-54/+56
| | | | | | 7 left for 64-bit ABI. llvm-svn: 69766
* number of non-lazy runtime functions from 9 -> 4.Chris Lattner2009-04-221-44/+47
| | | | llvm-svn: 69765
* make message send functions lazy, we're down from 14 non-lazy functions to 9.Chris Lattner2009-04-221-64/+65
| | | | llvm-svn: 69764
* move more EH stuff to being lazily created. An empty .m file now Chris Lattner2009-04-221-52/+54
| | | | | | produces just 14 dead "declares" in llvm ir instead of 19. llvm-svn: 69763
* make try/catch objc runtime functions be lazily generated.Chris Lattner2009-04-221-22/+26
| | | | | | rdar://6809612 llvm-svn: 69762
* Fix some mishandling of the attr(gnu_inline) mode when used withChris Lattner2009-04-221-16/+13
| | | | | | | | | | extern. Previously we would warn about it and ignore the attribute. This is incorrect, it should be handled as a c89 "extern inline" function. Many thanks to Matthieu Castet for pointing this out and beating me over the head until I got it. PR3988: extern inline function are not externally visible llvm-svn: 69756
* fix PR4026: Clang can't codegen __func__ without implicit castChris Lattner2009-04-211-6/+9
| | | | llvm-svn: 69747
* Make sure to mark the interface as completed when we see anDaniel Dunbar2009-04-211-5/+2
| | | | | | | | | @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. llvm-svn: 69728
* Fix emission of static tentative definitions referenced from other static ↵Douglas Gregor2009-04-211-9/+11
| | | | | | functions llvm-svn: 69699
* More objc2's ivar layout bitmap. No change in functionality.Fariborz Jahanian2009-04-211-5/+26
| | | | llvm-svn: 69695
* don't bother emitting a zero byte memset at all. We used to get themChris Lattner2009-04-211-2/+5
| | | | | | | | | | | | | | | | | in cases like this: typedef struct { short instance; char name[0]; } ATTR_LIST_ENTRY2; void test() { ATTR_LIST_ENTRY2 X = (ATTR_LIST_ENTRY2) { .instance = 7, }; } While it is safe to emit them, it is pretty silly. llvm-svn: 69687
* Explictly track tentative definitions within Sema, then hand thoseDouglas Gregor2009-04-213-25/+20
| | | | | | | | | | | | | | | tentative definitions off to the ASTConsumer at the end of the translation unit. Eliminate CodeGen's internal tracking of tentative definitions, and instead hook into ASTConsumer::CompleteTentativeDefinition. Also, tweak the definition-deferal logic for C++, where there are no tentative definitions. Fixes <rdar://problem/6808352>, and will make it much easier for precompiled headers to cope with tentative definitions in the future. llvm-svn: 69681
* Pass and return aggregate types directly to function calls.Sanjiv Gupta2009-04-211-0/+41
| | | | llvm-svn: 69668
* use of predefined identifiers like __func__ at global scope warn in sema,Chris Lattner2009-04-211-1/+1
| | | | | | | but crashed codegen. Fix this to report the name of the llvm function. This fixes rdar://6808051 llvm-svn: 69658
* Remove unnused variable.Daniel Dunbar2009-04-211-1/+0
| | | | llvm-svn: 69650
* Kill ASTContext::[gs]etFieldForDecl, instead we just lookup thingsDaniel Dunbar2009-04-216-23/+9
| | | | | | | | when we need them -- which is exactly what some code was already doing! - No intended functionality change. llvm-svn: 69648
* Remove LateBoundIVars() runtime interface, it is unused.Daniel Dunbar2009-04-213-24/+3
| | | | llvm-svn: 69641
* Assert on a few conditions that (I believe) should holdDaniel Dunbar2009-04-212-0/+3
| | | | | | | w.r.t. ASTContext::[gs]etFieldDecl, and the Field argument to EmitObjCValueForIvar). llvm-svn: 69639
* ObjC2's Ivar bitmap layout work. No change in functionality.Fariborz Jahanian2009-04-201-17/+29
| | | | llvm-svn: 69629
* Move countInheritedIvars to within striking distance ofDaniel Dunbar2009-04-201-39/+34
| | | | | | | | | | | | GetClassSizeInfo Reduce nesting in GetInterfaceDeclStructLayout. Tweak some comments. No functionality change. llvm-svn: 69621
* the __gnuc_inline__ attribute is actually named __gnu_inline__,Chris Lattner2009-04-201-1/+1
| | | | | | PR4023 llvm-svn: 69618
* Inline GetFirstIvarInRecord into sole caller.Daniel Dunbar2009-04-201-28/+9
| | | | | | - No functionality change. llvm-svn: 69582
* Set a bit in IMAGE_INFO to indicate that we don't contain anyDaniel Dunbar2009-04-201-3/+12
| | | | | | | | @synthesized ivars for superclasses. - <rdar://problem/6806371> [clang] Mark code without miscompiled @synthesized properties llvm-svn: 69581
* Lift out GetNamedIvarList.Daniel Dunbar2009-04-201-30/+40
| | | | | | | | | 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... llvm-svn: 69579
* Don't emit ivar offsets for unnamed bit fields.Daniel Dunbar2009-04-201-5/+8
| | | | | | Also, added assertion that the field matches what would be looked up. llvm-svn: 69572
* PR3247: Handle a couple of cases where we weren't emitting VLA sizes (and Eli Friedman2009-04-202-1/+9
| | | | | | subsequently crashed). llvm-svn: 69567
* PR3248: Make sure the evaluate the operand of a sizeof when it has a VLA type.Eli Friedman2009-04-201-0/+4
| | | | | | Adapted from patch by Tim Northover. llvm-svn: 69566
* Remove non-const form of lookupFieldDeclForIvar.Daniel Dunbar2009-04-203-4/+7
| | | | llvm-svn: 69563
* Comment fixes.Daniel Dunbar2009-04-201-6/+6
| | | | llvm-svn: 69562
* Lift GetClassSizeInfo out of GenerateClass, add a FIXME.Daniel Dunbar2009-04-191-29/+37
| | | | | | - No functionality change. llvm-svn: 69561
* PR3853: Add CodeGen support for __thread.Eli Friedman2009-04-192-11/+6
| | | | llvm-svn: 69545
* Silence gcc warning.Eli Friedman2009-04-191-1/+1
| | | | llvm-svn: 69541
* silence a warning, it isn't clear what the right answer is here,Chris Lattner2009-04-191-1/+1
| | | | | | will talk to steve. llvm-svn: 69519
* silence a warning, I need to talk to Devang about this code.Chris Lattner2009-04-191-1/+1
| | | | llvm-svn: 69517
* Fix rdar://6804402 - crash on objc implementations declared withChris Lattner2009-04-192-10/+23
| | | | | | | @class but no implementation. This was broken in all 3 runtime impls. llvm-svn: 69512
* Fix bug in computation of ivar offsets for (adjacent) bitfields.Daniel Dunbar2009-04-191-10/+13
| | | | | | | | - The confusing IRgen bitfield interface is partly to blame here; fixing the functional error for now, cleanups to the interface to follow. llvm-svn: 69503
* revert david's patch, which causes a testsuite failure.Chris Lattner2009-04-191-3/+2
| | | | llvm-svn: 69501
* Reuse ObjcIvarOffsetVariable instead of duplicating code.Daniel Dunbar2009-04-191-22/+9
| | | | | | - No functionality change (but added a FIXME). llvm-svn: 69496
* Remove some unnecessary complexity.Daniel Dunbar2009-04-191-11/+5
| | | | | | - No functionality change. llvm-svn: 69495
* "This patch fixes message sends to super in class methods for the GNU ↵Chris Lattner2009-04-181-2/+3
| | | | | | | | runtime (currently an instance method lookup is being performed)." Patch by David Chisnall! llvm-svn: 69493
* Use EmitCallArgs in EmitObjCMessageExpr.Anders Carlsson2009-04-181-4/+1
| | | | llvm-svn: 69471
OpenPOWER on IntegriCloud