Author: theraven
Date: Tue Jan 26 15:58:39 2010
New Revision: 5871
URL: http://svn.gna.org/viewcvs/etoile?rev=5871&view=rev
Log:
Added LKObject.h, which provides an Objective-C interface for dealing with
LanguageKit objects (which are either ObjC objects or small ints hidden inside
pointers).
LanguageKit will continue to adopt the types for selectors and ivars declared
in Objective-C, however for new ivars and new selectors will all use LKObject
instead of id. This means that LK methods can pass SmallInts between each
other without boxing.
What does this mean for the user? Not so much. You may now get SmallInts
where previously you got objects and your code will now be faster. The
fibonacci benchmark (with the JIT) now takes 1.6 seconds instead of 16 to
calculate fib(30) on my machine. Recursive calls will return SmallInts for
values that fit in a SmallInt and BigInts for objects that don't.
Added:
trunk/Etoile/Languages/LanguageKit/Runtime/LKObject.h
Modified:
trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenLexicalScope.cpp
trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenModule.cpp
trunk/Etoile/Languages/LanguageKit/CodeGen/LLVMCodeGen.cpp
trunk/Etoile/Languages/LanguageKit/CodeGen/LLVMCodeGen.m
trunk/Etoile/Languages/LanguageKit/LKModule.m
trunk/Etoile/Languages/LanguageKit/Runtime/GNUmakefile
_______________________________________________
Etoile-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-cvs