| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
working code, for no apparent reason.
llvm-svn: 95244
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
constant Objective-C strings.
llvm-svn: 94274
|
|
|
|
|
|
| |
(objc GC's API).
llvm-svn: 82724
|
|
|
|
| |
llvm-svn: 82117
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
| |
API for copying GC'able aggregates (Next runtime only).
llvm-svn: 80607
|
|
|
|
|
|
|
|
| |
llvm.used, just
populate CGM's list directly.
llvm-svn: 76266
|
|
|
|
|
|
|
| |
when struct variables with GC'able members are copied into.
Will provide a test case later.
llvm-svn: 74984
|
|
|
|
|
|
|
|
|
| |
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'.
llvm-svn: 74008
|
|
|
|
| |
llvm-svn: 71937
|
|
|
|
|
|
| |
Patch by David Chisnall.
llvm-svn: 71023
|
|
|
|
|
|
|
|
| |
decl. Only this routine will be suitable for computing the offset of a
synthesized ivar.
- No functionality change.
llvm-svn: 70696
|
|
|
|
|
|
| |
not the shadow structure.
llvm-svn: 70691
|
|
|
|
| |
llvm-svn: 70683
|
|
|
|
|
|
| |
underlying llvm::StructType for an interface.
llvm-svn: 69796
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 69775
|
|
|
|
|
|
|
|
| |
when we need them -- which is exactly what some code was already
doing!
- No intended functionality change.
llvm-svn: 69648
|
|
|
|
| |
llvm-svn: 69641
|
|
|
|
|
|
|
|
| |
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).
llvm-svn: 68114
|
|
|
|
|
|
|
|
| |
variables.
No intended functionality change.
llvm-svn: 67478
|
|
|
|
|
|
|
| |
message to 'super' in a class method declared in
cateogy (darwin specific).
llvm-svn: 65709
|
|
|
|
|
|
| |
in preparation for nonfragile ivar offset work.
llvm-svn: 64225
|
|
|
|
| |
llvm-svn: 63644
|
|
|
|
| |
llvm-svn: 63578
|
|
|
|
|
|
| |
objc2 nonfragile ivar access code gen.
llvm-svn: 63541
|
|
|
|
|
|
| |
for the new meta-data.
llvm-svn: 62806
|
|
|
|
|
|
| |
the new ObjC's abi.
llvm-svn: 62721
|
|
|
|
|
|
|
|
| |
not merging protocol properties into the classes which
use those protocols. With this patch, all my exceutable
test pass again.
llvm-svn: 62030
|
|
|
|
| |
llvm-svn: 61097
|
|
|
|
|
|
| |
code gen. method.
llvm-svn: 59767
|
|
|
|
| |
llvm-svn: 59740
|
|
|
|
|
|
| |
Also, took care of Daniel's commments.
llvm-svn: 59575
|
|
|
|
|
|
| |
__weak objects.
llvm-svn: 59560
|
|
|
|
| |
llvm-svn: 59553
|
|
|
|
|
|
| |
Patch by Fariborz!
llvm-svn: 59377
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 58546
|
|
|
|
|
|
| |
implementing property access.
llvm-svn: 56542
|
|
|
|
| |
llvm-svn: 55983
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
llvm-svn: 55970
|
|
|
|
| |
llvm-svn: 55583
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
llvm-svn: 55561
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
llvm-svn: 55560
|
|
|
|
|
|
|
| |
- NeXT loads the super class at runtime; this required changing the
runtime interface to pass more information down.
llvm-svn: 55307
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
llvm-svn: 55223
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
llvm-svn: 54833
|
|
|
|
|
|
|
|
|
| |
- 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).
llvm-svn: 54824
|
|
|
|
|
|
|
|
|
|
|
| |
ObjCProtocolDecl directly.
Implement CodeGen support for forward protocol decls (no-ops are so
nice to implement).
Also moved CGObjCRuntime.h out of CodeGenModule.h
llvm-svn: 54709
|
|
|
|
|
|
|
|
|
| |
- Was unused and generated a unnecessary load of self
Update NeXT runtime to get proper object & selector types from
ASTContext.
llvm-svn: 54667
|