summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjCMac.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* objective-C blocks: bring back the CharUnit patch forFariborz Jahanian2012-11-071-45/+46
| | | | | | | captured block variable layout meta-data. No intended change in functionality. llvm-svn: 167549
* Back out 167431+167437+167487; I didn't realize how incomplete our testEli Friedman2012-11-061-114/+121
| | | | | | coverage of this code is. llvm-svn: 167495
* Fix a silly mistake in r167437.Eli Friedman2012-11-061-2/+2
| | | | llvm-svn: 167487
* Propagate CharUnits through CGObjCMac.cpp.Eli Friedman2012-11-061-84/+78
| | | | llvm-svn: 167437
* Minor fix to ObjC layout bitmap metadata. Found while I was trying toEli Friedman2012-11-061-1/+1
| | | | | | refactor the code. llvm-svn: 167436
* Propagate CharUnits into ObjC CodeGen. No intended functional change.Eli Friedman2012-11-061-46/+45
| | | | llvm-svn: 167431
* Fixes liftime of captured block variables in mrr mode, per John's feedback, asFariborz Jahanian2012-11-041-17/+12
| | | | | | well as couple of tests which were not being excercised because of TYPOs. llvm-svn: 167374
* objective-C mrr block. Block variable layout metadata inFariborz Jahanian2012-11-021-5/+26
| | | | | | mrr mode. llvm-svn: 167331
* Silence -Wformat on platforms where uint64_t is unsigned long.Matt Beaumont-Gay2012-11-011-1/+1
| | | | llvm-svn: 167249
* objective-C block meta-data. This patch completes meta-dataFariborz Jahanian2012-11-011-16/+162
| | | | | | | | 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. llvm-svn: 167241
* objective-C arc/mrr: Another patch for the new captured block variable Fariborz Jahanian2012-10-301-23/+191
| | | | | | layout meta-data. It is currently off (so no tests). This is wip. llvm-svn: 167047
* objective-C arc/mrr: Patch for the new block variable layout meta-data.Fariborz Jahanian2012-10-271-3/+164
| | | | | | It is currently off (so no tests). This is wip. llvm-svn: 166892
* Add some new types in preparation of encoding of captured block variableFariborz Jahanian2012-10-251-0/+69
| | | | | | layout meta-data work. wip. llvm-svn: 166717
* Set a special flag in class metadata when an Objective-C classJohn McCall2012-10-171-4/+26
| | | | | | | | | 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. llvm-svn: 166088
* Organize and rename the magic constants for class flags.John McCall2012-10-171-48/+54
| | | | | | No functionality change. llvm-svn: 166087
* Use the Attributes::get method which takes an AttrVal value directly to ↵Bill Wendling2012-10-161-6/+2
| | | | | | simplify the code a bit. No functionality change. llvm-svn: 166010
* Move the Attributes::Builder outside of the Attributes class and into its ↵Bill Wendling2012-10-151-2/+2
| | | | | | own class named AttrBuilder. No functionality change. llvm-svn: 165961
* Attributes RewriteBill Wendling2012-10-151-2/+4
| | | | | | | | 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. llvm-svn: 165918
* objective-C IRgen: When sending a method to 'super'Fariborz Jahanian2012-10-101-9/+2
| | | | | | | | | 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 llvm-svn: 165674
* Remove the final bits of Attributes being declared in the AttributeBill Wendling2012-10-101-2/+6
| | | | | | | namespace. Use the attribute's enum value instead. No functionality change intended. llvm-svn: 165611
* Move TargetData to DataLayout.Micah Villmow2012-10-081-37/+37
| | | | llvm-svn: 165395
* Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. ↵Sylvestre Ledru2012-09-271-2/+2
| | | | | | See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164766 llvm-svn: 164769
* Fix a typo 'iff' => 'if'Sylvestre Ledru2012-09-271-2/+2
| | | | llvm-svn: 164766
* Fixing the return type information for objc_sync_enter and objc_sync_exit. ↵Aaron Ballman2012-09-061-4/+4
| | | | | | Patch thanks to Joe Ranieri! llvm-svn: 163330
* Dont cast away const needlessly. Found by gcc48 -Wcast-qual.Roman Divacky2012-09-061-2/+2
| | | | llvm-svn: 163325
* Remove deprecated getNameAsCString methods.Benjamin Kramer2012-07-311-1/+1
| | | | llvm-svn: 161044
* Add the ObjFW runtime. Patch by Jonathan Schleifer!John McCall2012-07-121-0/+1
| | | | llvm-svn: 160102
* Distinguish more carefully between free functions and C++ instance methodsJohn McCall2012-07-071-16/+16
| | | | | | | | 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. llvm-svn: 159894
* Rename the GCC Objective-C runtime to gcc from gnu-fragile and the GNUstepDavid Chisnall2012-07-031-2/+2
| | | | | | runtime to gnustep from gnu. Fix EH for the GCC runtime. llvm-svn: 159684
* Restructure how the driver communicates information about theJohn McCall2012-06-201-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 158793
* PR13064: Store whether an in-class initializer uses direct or copyRichard Smith2012-06-101-4/+6
| | | | | | | initialization, and use that information to produce the right kind of initialization during template instantiation. llvm-svn: 158288
* Revert Decl's iterators back to pointer value_type rather than reference ↵David Blaikie2012-06-061-5/+5
| | | | | | | | | | | | | | 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. llvm-svn: 158104
* Remove the ref/value inconsistency in filter_decl_iterator.David Blaikie2012-04-301-5/+8
| | | | | | | | | | | | | 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) llvm-svn: 155808
* Add a flag to the image info section indicating that the program is compiled forBill Wendling2012-04-241-1/+10
| | | | | | a simulator. llvm-svn: 155436
* Fix a pair of invalidation bugs when emitting protocol definitionsJohn McCall2012-03-301-2/+6
| | | | | | | in the fragile and non-fragile Mac ObjC runtimes. No useful test case. Fixes rdar://problem/11072576. llvm-svn: 153778
* Unify naming of LangOptions variable/get function across the Clang stack ↵David Blaikie2012-03-111-18/+18
| | | | | | | | | | (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner llvm-svn: 152536
* Add clang support for new Objective-C literal syntax for NSDictionary, NSArray,Ted Kremenek2012-03-061-1/+52
| | | | | | | | | | | | | 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. llvm-svn: 152137
* Remove stray semi-colons.Daniel Dunbar2012-02-281-2/+2
| | | | llvm-svn: 151631
* Use an ArrayRef when we can instead of passing in a SmallVectorImpl reference.Bill Wendling2012-02-221-7/+7
| | | | llvm-svn: 151150
* objc IRGen: force CSE of load of ivar offsets by settingFariborz Jahanian2012-02-201-1/+6
| | | | | | | the 'invariant.load' metadata tag onto those loads. // rdar://10840980 llvm-svn: 150994
* Whether an argument is required (in contrast with being anJohn McCall2012-02-171-36/+26
| | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 150788
* Use the new method for specifying garbage collection metadata in the module.Bill Wendling2012-02-161-25/+40
| | | | | | | | | | 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> llvm-svn: 150648
* objc-arc: For arc's ivar layout, treat __unsafe_unretained ivarsFariborz Jahanian2012-02-161-0/+4
| | | | | | as unscanned. // rdar://10832643 llvm-svn: 150639
* Remove evil const_cast that's not needed anymore.Bill Wendling2012-02-091-3/+1
| | | | llvm-svn: 150210
* Use SmallVector when we can instead of std::vector.Bill Wendling2012-02-091-23/+23
| | | | | | | This looks like it had a small, but measurable performance improvement on -O0 compile time for our ObjC tests. llvm-svn: 150208
* Switch the ObjC*Decl raw_stream overloads to take a reference, for ↵Benjamin Kramer2012-02-071-1/+1
| | | | | | consistency with NamedDecls. llvm-svn: 149981
* Use SmallVector instead of std::vector.Bill Wendling2012-02-071-4/+4
| | | | llvm-svn: 149976
* Use 'ArrayRef<>' instead of 'std::vector<>&' for passed-in arguments.Bill Wendling2012-02-071-39/+38
| | | | llvm-svn: 149975
* Calculate the .size() of the vector once.Bill Wendling2012-02-071-5/+5
| | | | llvm-svn: 149974
* simplify a bunch of code to use the well-known LLVM IR types computed by ↵Chris Lattner2012-02-071-16/+11
| | | | | | CodeGenModule. llvm-svn: 149943
OpenPOWER on IntegriCloud