[cfe-dev] Objective-C Code Generation
David Chisnall
csdavec at swansea.ac.uk
Mon Feb 25 03:34:15 PST 2008
On 25 Feb 2008, at 04:43, Chris Lattner wrote:
> What specifically do you need to do? In the next runtime, message
> expressions are all pretty simple: they are llvm Function's with
> internal linkage and names that contain the selector. I assume you
> would like to factor out the argument lowering code? Is there
> anything else?
I'm talking about method definitions, rather than message sends.
These methods are implemented as functions with two hidden arguments
(id self and SEL _cmd on the GNU and NeXT runtimes, id self and struct
objc_call _call on the Étoilé runtime so, at some point, factoring out
the argument lowering code will be useful). A pointer to this
function is then installed in the relevant objc_class structure.
Obviously this last step will require some new code (and be completely
runtime-specific. I think Apple have at least two ways of doing it
for their various runtimes), but generating the function body ought to
be possible with existing code (since everything that's valid as an
Objective-C method is also valid as a function).
The hidden parameters and the function name (I don't think any
existing runtimes rely on name mangling for lookup, but it's possible
a future one will) should probably be specified in some runtime-
specific code. After this, it can be generated exactly as a function
would.
David
More information about the cfe-dev
mailing list