Daniel Dunbar
89da6ad1db
Change ObjCRuntime GenerateProtocol[Ref] methods to take
...
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
2008-08-13 00:59:25 +00:00
Daniel Dunbar
5d71559c01
Drop Sender from GenerateMessageSend*
...
- Was unused and generated a unnecessary load of self
Update NeXT runtime to get proper object & selector types from
ASTContext.
llvm-svn: 54667
2008-08-12 05:28:47 +00:00
Daniel Dunbar
8b8683f9f6
Add ObjC constant string support for NeXT.
...
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
2008-08-12 00:12:39 +00:00
Daniel Dunbar
221fa94e40
More #include cleaning
...
- Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and
SourceLocation.h)
- Move ASTContext constructor into implementation
llvm-svn: 54627
2008-08-11 04:54:23 +00:00
Daniel Dunbar
303e2c2f1f
Add dummy Mac Objective-C runtime interface.
...
- Not currently accessible and completely non-functional.
llvm-svn: 54624
2008-08-11 02:45:11 +00:00
Chris Lattner
c893a67fe3
update to make IRBuilder API change.
...
llvm-svn: 54548
2008-08-08 19:57:58 +00:00
Chris Lattner
f1c149db9f
don't pass in null as the Name for GenerateClassStructure,
...
it goes and makes std::strings out of them, which is not
defined.
llvm-svn: 53843
2008-07-21 06:31:05 +00:00
Chris Lattner
bf231a61fd
refactor more objc codegen interfaces to pass around selectors so
...
we don't push strings into LLVM IR and then have to read them back out.
llvm-svn: 52765
2008-06-26 05:08:00 +00:00
Chris Lattner
882034dd99
indenting and other minor things.
...
llvm-svn: 52764
2008-06-26 04:52:29 +00:00
Chris Lattner
da35bc8e53
refactor interface to GenerateClassStructure to avoid converting a
...
string to LLVM IR and then regenerating the string from IR.
llvm-svn: 52762
2008-06-26 04:47:04 +00:00
Chris Lattner
d9b98863c4
remove the old getSelector implementation, which removes some
...
calls to getStringValue
llvm-svn: 52761
2008-06-26 04:44:19 +00:00
Chris Lattner
6cfec78e48
avoid a lot of unneeded selector processing work by passing around
...
selectors instead of Value*'s.
llvm-svn: 52760
2008-06-26 04:42:20 +00:00
Chris Lattner
9a05d04a0d
use cheaper/simpler getselector call for @selector exprs.
...
llvm-svn: 52759
2008-06-26 04:38:58 +00:00
Chris Lattner
6d522c0133
start avoid doing lots of unneeded work handling selectors
...
llvm-svn: 52758
2008-06-26 04:37:12 +00:00
Chris Lattner
42587147d4
improve indentation, avoid thrashing on maps and recalculating strings as much.
...
llvm-svn: 52757
2008-06-26 04:24:57 +00:00
Chris Lattner
87ab27d42f
give CreateObjCRuntime a full CGM so it can get whatever state it needs,
...
instead of passing in just a couple random things it currently
happens to use.
llvm-svn: 52756
2008-06-26 04:19:03 +00:00
Chris Lattner
63dd337fc2
Fix 80 col violations, assert on assumptions.
...
llvm-svn: 52755
2008-06-26 04:10:42 +00:00
Chris Lattner
d46944d639
a temporary minimal hack to get clang building after the getStringValue changes in llvm mainline.
...
llvm-svn: 52753
2008-06-26 04:05:20 +00:00
Chris Lattner
b1d329da07
"Support for Objective-C message sends which return structures. Also includes a small fix for constant string handling that should have been in the last patch (sorry!) and a hook for generating selectors (rest of this implementation to follow in the next patch)."
...
Patch by David Chisnall!
llvm-svn: 52681
2008-06-24 17:04:18 +00:00
Chris Lattner
6447ed3a1f
"This is a small fix for a bug where static object instances were being incorrectly generated. The bug was caused by my inability to read the GNU libobjc source and is only apparent when JITing code (static compilation does not expose the bug due to the data layout of other globals)."
...
Patch by David Chisnall!
llvm-svn: 52680
2008-06-24 17:01:28 +00:00
Chris Lattner
091f698d29
"this patch adds code generation hooks for Objective-C constant strings. It also modifies Sema so that Objective-C constant strings are treated as untyped objects if the interface for the constant string class can not be found. This is consistent with Apple GCC. I thought it was consistent with GNU GCC, since this was causing failures when trying to compile GNUstep with (GNU) GCC, but it appears that this is not the case when attempting to produce a simple test case to demonstrate it. Possibly there is a way of making the error go away, but I haven't found out what it is yet."
...
Patch by David Chisnall!
llvm-svn: 52599
2008-06-21 21:44:18 +00:00
Eli Friedman
327944b343
Basic support for volatile loads and stores. Stores the volatile
...
qualifier in the lvalue, and changes lvalue loads/stores to honor
the volatile flag. Places which need some further attention are marked
with FIXMEs.
Patch by Cédric Venet.
llvm-svn: 52264
2008-06-13 23:01:12 +00:00
Eli Friedman
412c66839e
Don't name the ObjC types if there aren't any ObjC objects in the file.
...
Patch by David Chisnall.
llvm-svn: 51840
2008-06-01 16:00:02 +00:00
Anton Korobeynikov
3b6dd58ee7
Remove spurious == 0
...
llvm-svn: 51836
2008-06-01 15:14:46 +00:00
Anton Korobeynikov
1200aca763
Support for code generation of Objective-C top-level language constructs.
...
Implemented by David Chisnall!
llvm-svn: 51835
2008-06-01 14:13:53 +00:00
Chris Lattner
dbcc2ca6b2
simplify some builder calls.
...
llvm-svn: 50694
2008-05-06 00:56:42 +00:00
Chris Lattner
61705c1a6e
update to follow mainline llvm API change.
...
llvm-svn: 49607
2008-04-13 07:32:11 +00:00
Ted Kremenek
43e0633048
The dtor CGObjCRuntime::~CGObjCRuntime() was implemented twice, once
...
in CGObjCGNU.cpp and once in CGObjCEtoile.cpp. Moved its definition to
CGObjC.cpp. This resolves a build error in Xcode, and also cleans things up.
llvm-svn: 49429
2008-04-09 15:51:31 +00:00
Gabor Greif
d36afd7d65
tracking API changes arising from r49277
...
llvm-svn: 49279
2008-04-06 20:42:52 +00:00
Chris Lattner
4bd5596d08
Add initial support for objc codegen for methods, ivars, and the
...
etoile runtime, patch by David Chisnall!
llvm-svn: 48969
2008-03-30 23:03:07 +00:00
Chris Lattner
554221e9fb
simplify code by using the variadic StructType::get method.
...
llvm-svn: 48535
2008-03-19 05:24:56 +00:00
Chris Lattner
7a51313d8a
Make a major restructuring of the clang tree: introduce a top-level
...
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402
2008-03-15 23:59:48 +00:00