| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 101786
|
|
|
|
| |
llvm-svn: 101759
|
|
|
|
|
|
| |
runtime)
llvm-svn: 101758
|
|
|
|
| |
llvm-svn: 101052
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 99920
|
|
|
|
| |
llvm-svn: 99077
|
|
|
|
|
|
| |
declared on the class, not the protocols declared on the category.
llvm-svn: 98455
|
|
|
|
| |
llvm-svn: 97199
|
|
|
|
|
|
| |
the ABI-computation interface. Fixes <rdar://problem/7691046>.
llvm-svn: 97197
|
|
|
|
|
|
|
|
| |
constructor call.
This maybe fixes some of the errors GCC 4.5 gives on this code.
llvm-svn: 95684
|
|
|
|
|
|
|
|
|
|
|
|
| |
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().
llvm-svn: 95436
|
|
|
|
|
|
| |
working code, for no apparent reason.
llvm-svn: 95244
|
|
|
|
|
|
|
|
| |
constructed, GC flag not set.
Please don't try using this yet - the runtime support is still very immature and your code will almost certainly crash if you do.
llvm-svn: 95222
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
llvm-svn: 95189
|
|
|
|
|
|
| |
runtime-specific code is a bit ugly. It would be a good idea to hoist all of the string / protocol uniqueing code up into CGObjCRuntime or CodeGenModule and only handle emitting the original versions in the runtime-specific code.
llvm-svn: 94676
|
|
|
|
|
|
| |
constant Objective-C strings.
llvm-svn: 94274
|
|
|
|
|
|
| |
broken way that can give conflicts on method names containing underscores, but is needed for gdb to work because gdb does not know how to read ObjC class tables and relies on the mangling).
llvm-svn: 93427
|
|
|
|
| |
llvm-svn: 93169
|
|
|
|
| |
llvm-svn: 92973
|
|
|
|
| |
llvm-svn: 92846
|
|
|
|
| |
llvm-svn: 92138
|
|
|
|
|
|
|
|
| |
This fixes throwing exceptions inside @catch blocks nested inside outer @try blocks and also fixes jumping from an inner @finally to an outer @finally (via any relevant @catch blocks).
The code exhibiting this bug was based on code from CGObjCMac. I believe that this bug may still be present on the Mac runtimes, although the test case in the bug contains a few GNUisms and won't compile without some minor tweaks with Apple's libobjc.
llvm-svn: 92117
|
|
|
|
|
|
| |
worrying about the lifetime.
llvm-svn: 90052
|
|
|
|
| |
llvm-svn: 89457
|
|
|
|
|
|
| |
GNU ABI.
llvm-svn: 89133
|
|
|
|
|
|
| |
structures for the GNU runtime.
llvm-svn: 88937
|
|
|
|
|
|
| |
Fix the clang build.
llvm-svn: 84107
|
|
|
|
| |
llvm-svn: 83964
|
|
|
|
|
|
| |
(objc GC's API).
llvm-svn: 82724
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 82501
|
|
|
|
|
|
| |
which will be going away (ie. it's becoming a required parameter) later today.
llvm-svn: 82323
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 82118
|
|
|
|
| |
llvm-svn: 82117
|
|
|
|
| |
llvm-svn: 81778
|
|
|
|
| |
llvm-svn: 81570
|
|
|
|
| |
llvm-svn: 81462
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
| |
API for copying GC'able aggregates (Next runtime only).
llvm-svn: 80607
|
|
|
|
|
|
|
| |
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
llvm-svn: 80591
|
|
|
|
|
|
|
|
|
|
| |
Objective-C code.
This currently breaks test/SemaObjC/id-isa-ref.m and issues some spurious warnings when you attempt to assign a struct objc_class* value to a Class variable. The test case probably should fail as it's written, because without the definition of Class the compiler should not assume struct objc_class* is a valid receiver type, but it's left broken because it would be nice if we could get that passing too for the special case of isa.
Approved by snaroff.
llvm-svn: 79248
|
|
|
|
| |
llvm-svn: 78957
|
|
|
|
| |
llvm-svn: 78946
|
|
|
|
| |
llvm-svn: 78259
|
|
|
|
| |
llvm-svn: 78161
|
|
|
|
| |
llvm-svn: 77731
|
|
|
|
| |
llvm-svn: 77722
|
|
|
|
| |
llvm-svn: 77638
|
|
|
|
| |
llvm-svn: 77514
|
|
|
|
| |
llvm-svn: 77492
|
|
|
|
| |
llvm-svn: 77349
|