|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| | where RecordDecl or CXXRecordDecl was constructed, always with an argument of 'NULL' for the previous declaration.
The motivation behind this change is that chaining the RecordDecls is simply unnecessary.  Once we create multiple RecordDecls for the same struct/union/class, clients that care about all the declarations of the same struct can build a back map by seeing which Decls refer to the same RecordType.
llvm-svn: 55821 | 
| | 
| 
| 
| 
| 
| | references (to match gcc).
llvm-svn: 55760 | 
| | 
| 
| 
| 
| 
| 
| | uses which refer to methods not properties.
 - Not yet wired in Sema.
llvm-svn: 55681 | 
| | 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | - Notably VLAs
llvm-svn: 55544 | 
| | 
| 
| 
| 
| 
| | - Added ASTContext::getObjCEncodingForPropertyDecl.
llvm-svn: 55461 | 
| | 
| 
| 
| 
| 
| | Also, fix category protocol list metadata.
llvm-svn: 55405 | 
| | 
| 
| 
| 
| 
| 
| | - Was emitting duplicates of class properties instead of the category
   properties.
llvm-svn: 55395 | 
| | 
| 
| 
| 
| 
| | Also, fix method lookup to not use LLVM module symbol table.
llvm-svn: 55390 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Only supports simple assignment and atomic semantics are ignored.
 - Not quite usable yet because the methods do not actually get added
   to the class metadata.
 - Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain).
 - Rearrange CodeGenFunction so synthesis can reuse function prolog /
   epilog code.
llvm-svn: 55365 | 
| | 
| 
| 
| 
| 
| 
| | - NeXT loads the super class at runtime; this required changing the
   runtime interface to pass more information down.
llvm-svn: 55307 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - This ensures that references to undefined classes cause link
   errors.
 - NOTE: This relies on platform specific asm directives currently,
   this should be factored out.
Also, don't emit a SYMBOLS metadata entry if there are no symbols.
llvm-svn: 55302 | 
| | 
| 
| 
| 
| 
| 
| 
| | - Use CodeGenModule::GetAddrOfConstantCFString
Some tweaks of CodeGenModule::GetAddrOfConstantCFString
llvm-svn: 55243 | 
| | 
| 
| 
| 
| 
| | - Simplify the sending code a bit.
llvm-svn: 55232 | 
| | 
| 
| 
| | llvm-svn: 55225 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - 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 | 
| | 
| 
| 
| | llvm-svn: 55209 | 
| | 
| 
| 
| | llvm-svn: 55197 | 
| | 
| 
| 
| 
| 
| 
| | Updated ObjCProtocolDecl::protocol_iterator to match that of
ObjCInterfaceDecl.
llvm-svn: 55143 | 
| | 
| 
| 
| 
| 
| 
| 
| | - Functional for simple cases but there are some glaring omissions
   (protocols, properties, and other language extensions).
 - The code needs a fair bit of cleaning.
llvm-svn: 55108 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Change CodeGenFunction::EmitParmDecl to take either a ParmVarDecl or an
  ImplicitParamDecl.
Drop hasAggregateLLVMType from CodeGenModule.cpp (use version in
  CodeGenFunction).
Change the Objective-C method generation to use EmitParmDecl for
  implicit parameters.
llvm-svn: 54838 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | - Near complete, only properties are missing.
llvm-svn: 54715 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | - Matches llvm-gcc and seem to be expected by otool.
llvm-svn: 54669 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | - Was unused and generated a unnecessary load of self
Update NeXT runtime to get proper object & selector types from
       ASTContext.
llvm-svn: 54667 | 
| | 
| 
| 
| | llvm-svn: 54664 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Changed CGObjCRuntime::GenerateConstantString interface to take
       std::string instead of char* and size.
Change ObjC functions which call on GenerateConstantString to bitcast
       result to appropriate type.
llvm-svn: 54659 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | - Wired to -fnext-runtime and -fgnu-runtime options.
 - Defaults to GNU, no autoselection for NeXT.
Emit NeXT OBJC_IMAGE_INFO marker.
llvm-svn: 54651 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Kill unnecessary #includes in .cpp files. This is an automatic
   sweep so some things removed are actually used, but happen to be
   included by a previous header. I tried to get rid of the obvious
   examples and this was the easiest way to trim the #includes in one
   fell swoop.
 - We now return to regularly scheduled development.
llvm-svn: 54632 | 
| | 
| 
| 
| 
| 
| 
| 
| | - Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and
   SourceLocation.h)
 - Move ASTContext constructor into implementation
llvm-svn: 54627 | 
|  | - Not currently accessible and completely non-functional.
llvm-svn: 54624 |