[Stackless] Stackless CVS on Sparc - typo in switch_sparc_sun_gcc.h

Lars Immisch lars at ibp.de
Wed Jan 14 16:59:29 CET 2004


Hi,

I just compiled Stackless for Sparc. I suspect I am on the bleeding edge 
here :-)

Compilation failed because "cst" was undeclared in switch_sparc_sun_gcc.h.

My guess was that cst should be _cst.

After having renamed cst to _cst, stackless compiled. I ran some tests. 
They produced output; the output looked good, but I didn't do any 
analysis to determine if the output actually *was* ok.

I also ran taskspeed.py (on a SunFire V100 @ 550 MHz and 1 GB RAM). 
Since the output might be interesting, I have attached the results[1].

For the sake of completeness, also attached is a patch[2]. Sun's diff 
aparently does not understand -u. Grrr.

- Lars

[1]
2.2.3 Stackless 3.0 040108 (#1, Jan 14 2004, 15:39:22)
[GCC 3.3]
10000000 frame switches      took 111.71000 seconds, rate =      89517/s
10000000 frame softswitches  took   8.86000 seconds, rate =    1128668/s
10000000 cfunction calls     took   7.33000 seconds, rate =    1364256/s
10000000 cframe softswitches took   2.73000 seconds, rate =    3663003/s
10000000 function calls      took  18.71000 seconds, rate =     534473/s
10000000 generator calls     took   9.95000 seconds, rate =    1005025/s
10000000 cframe switches     took  79.97000 seconds, rate =     125046/s
10000000 cframe 100 words    took 122.89000 seconds, rate =      81373/s
10000000 cframe from outside took 559.79000 seconds, rate =      17863/s
The penalty per stack word is about 3.555 percent of raw switching.
Stack size of initial stub   = 112
Stack size of frame tasklet  = 356
Stack size of cframe tasklet = 230



[2]
*** switch_sparc_sun_gcc.h.~1.3.~       Sun Nov 24 16:37:10 2002
--- switch_sparc_sun_gcc.h      Wed Jan 14 15:35:05 2004
***************
*** 53,59 ****
           "ld [%0+60], %%i7\n\t"
           "add %1, %%sp, %%sp\n\t"
           "add %1, %%fp, %%fp"
!         : : "r" (cst->stack), "r" (stsizediff)
           : "%l0", "%l1", "%l2", "%l3", "%l4", "%l5", "%l6", "%l7",
             "%i0", "%i1", "%i2", "%i3", "%i4", "%i5");

--- 53,59 ----
           "ld [%0+60], %%i7\n\t"
           "add %1, %%sp, %%sp\n\t"
           "add %1, %%fp, %%fp"
!         : : "r" (_cst->stack), "r" (stsizediff)
           : "%l0", "%l1", "%l2", "%l3", "%l4", "%l5", "%l6", "%l7",
             "%i0", "%i1", "%i2", "%i3", "%i4", "%i5");



_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless



More information about the Stackless mailing list