summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjCMac.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Lift out GetGCAttrTypeForType routine.Daniel Dunbar2009-05-031-20/+23
| | | | llvm-svn: 70776
* Add constructors for GC_IVAR and SKIP_SCAN, tighten up uses.Daniel Dunbar2009-05-031-47/+35
| | | | | | Lift up a size calculation and note some asymmetries. llvm-svn: 70775
* Normalize style, remove a dead assert.Daniel Dunbar2009-05-031-32/+16
| | | | llvm-svn: 70771
* Use ASTRecordLayout for computing ivar offsets instead of shadowDaniel Dunbar2009-05-031-41/+43
| | | | | | | | | | | 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. llvm-svn: 70756
* Add a ComputeIvarBaseOffset overload taking an implementationDaniel Dunbar2009-05-031-10/+20
| | | | | | | | decl. Only this routine will be suitable for computing the offset of a synthesized ivar. - No functionality change. llvm-svn: 70696
* Compute Objective-C metadata size information from the record layout,Daniel Dunbar2009-05-031-8/+8
| | | | | | not the shadow structure. llvm-svn: 70691
* Remove unused argument.Daniel Dunbar2009-05-031-3/+1
| | | | llvm-svn: 70684
* Coalesce the ivar offset calculation further.Daniel Dunbar2009-05-031-36/+28
| | | | llvm-svn: 70683
* Use type from ivar instead of from shadow struct field.Daniel Dunbar2009-05-031-3/+3
| | | | | | - No functionality change. llvm-svn: 70674
* Remove a warning when this file is compiled optimized.Fariborz Jahanian2009-04-301-1/+2
| | | | llvm-svn: 70518
* API for message dispatch of methods returning floatsFariborz Jahanian2009-04-301-5/+12
| | | | | | to match gcc's closely. llvm-svn: 70493
* Undid setting of the flag for msg_Send for 32bit code gen.Fariborz Jahanian2009-04-291-3/+2
| | | | | | It seems to effect code gen. Add a FIXME instead. llvm-svn: 70423
* Export lazy references of .objc_class_name of class namesFariborz Jahanian2009-04-291-0/+1
| | | | | | | referenced in a category implementation meta-data (Next objc 32bit abi). llvm-svn: 70407
* Type of msgSend message dispatch API is a vararg.Fariborz Jahanian2009-04-291-1/+3
| | | | llvm-svn: 70404
* Remove getIntegerConstantExprValue in favor of using EvaluateAsInt.Eli Friedman2009-04-261-2/+2
| | | | llvm-svn: 70145
* split ObjC and C++ Statements out into their own headers.Chris Lattner2009-04-261-0/+1
| | | | llvm-svn: 70105
* Minor refactoring. No intended change in behavior.Fariborz Jahanian2009-04-241-3/+3
| | | | llvm-svn: 69988
* Minor refactoring. No change in functionality.Fariborz Jahanian2009-04-241-2/+1
| | | | llvm-svn: 69979
* Some code clean up of objc2's bitmap layout.Fariborz Jahanian2009-04-241-30/+28
| | | | llvm-svn: 69970
* Removed bunch of FIXMEs no longer needed.Fariborz Jahanian2009-04-231-8/+0
| | | | llvm-svn: 69896
* Mark IMAGE_INFO as constant on x86_64-darwin.Daniel Dunbar2009-04-231-0/+1
| | | | | | | - This shouldn't change anything, we never actually access it, but this is consistent with llvm-gcc (and 32-bit) llvm-svn: 69880
* Use std::sort instead of qsort.Daniel Dunbar2009-04-231-15/+7
| | | | | | | | | - Notably, there was a memory error here, SkipIvars does not have to be the same size as IvarsInfo. - Fariborz, please check. llvm-svn: 69850
* Eliminate the three SmallVectors in ObjCImplDecl (for instanceDouglas Gregor2009-04-231-20/+30
| | | | | | | | | | | 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). llvm-svn: 69849
* ivar layout bitmap is alive!Fariborz Jahanian2009-04-221-10/+20
| | | | llvm-svn: 69838
* Reapply r69771, with updates & fixes:Daniel Dunbar2009-04-221-8/+21
| | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 69811
* Remove lookupFieldDeclFromIvar from ObjCIvarDecl interface.Daniel Dunbar2009-04-221-2/+18
| | | | | | - This is only used by CGObjCRuntime now. llvm-svn: 69800
* Don't convert interface types (to structs) as part of CodeGenTypes.Daniel Dunbar2009-04-221-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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. llvm-svn: 69797
* Add CGObjCRuntime::GetConcreteClassStruct to encapsulate access to theDaniel Dunbar2009-04-221-26/+13
| | | | | | underlying llvm::StructType for an interface. llvm-svn: 69796
* Emit meta data using the Ivar, not a looked up FieldDecl.Daniel Dunbar2009-04-221-8/+6
| | | | llvm-svn: 69790
* Merge ivar access amongst the three runtimes.Daniel Dunbar2009-04-221-124/+99
| | | | | | | | | - 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
* Make ObjCInterfaceDecl's const in some more places.Daniel Dunbar2009-04-221-6/+5
| | | | llvm-svn: 69775
* Revert r69771, I missed some (obvious) details. :/Daniel Dunbar2009-04-221-16/+49
| | | | llvm-svn: 69773
* 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
* 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
* More objc2's ivar layout bitmap. No change in functionality.Fariborz Jahanian2009-04-211-5/+26
| | | | llvm-svn: 69695
* Kill ASTContext::[gs]etFieldForDecl, instead we just lookup thingsDaniel Dunbar2009-04-211-9/+4
| | | | | | | | when we need them -- which is exactly what some code was already doing! - No intended functionality change. llvm-svn: 69648
* Assert on a few conditions that (I believe) should holdDaniel Dunbar2009-04-211-0/+2
| | | | | | | 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
* 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
* Remove non-const form of lookupFieldDeclForIvar.Daniel Dunbar2009-04-201-1/+2
| | | | llvm-svn: 69563
OpenPOWER on IntegriCloud