I did some hacking on gcc (2.95.2) a while back to try to make the
message passing code more efficient and did some benchmarking. For the
common case of a local, valid selector, calling an empty method took ~45
cycles on a PII. After trying to make the generated code in the caller
smaller and rewriting objc_msg_lookup* in assembly by hand (tried to
optimize the common path through it), and making some other changes, I
got it down to ~22 cycles. I could probably gain some more speed by
sacrificing the smaller code, and possibly some more by more careful
assembly.
Anyway, gnustep base and gui compiled and worked fine with the new
gcc/libobjc (well, not on the first try, but eventually). Once I get
around to installing gcc 3.0, I'll probably try to move the changes
over. If anyone's interested I could upload patches to 2.95.2 somewhere,
or (given some time) change it to use the old call style and the new
objc_msg_lookup, which is what I think would give the best performance.
- Alexander Malmberg
_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
http://mail.gnu.org/mailman/listinfo/discuss-gnustep