* Stack overflow is reinstated. fibc and other call/cc intensive

benchmarks now work.
This commit is contained in:
Abdulaziz Ghuloum 2007-07-13 13:54:25 +03:00
parent 61edf6d5a2
commit 33c087a867
4 changed files with 102 additions and 2 deletions

View File

@ -8130,3 +8130,63 @@ Words allocated: 6553342
Words reclaimed: 0 Words reclaimed: 0
Elapsed time...: 3454 ms (User: 2052 ms; System: 1399 ms) Elapsed time...: 3454 ms (User: 2052 ms; System: 1399 ms)
Elapsed GC time: 8 ms (CPU: 9 in 25 collections.) Elapsed GC time: 8 ms (CPU: 9 in 25 collections.)
****************************
Benchmarking Larceny-r6rs on Fri Jul 13 13:49:43 AST 2007 under Darwin Vesuvius.local 8.9.1 Darwin Kernel Version 8.9.1: Thu Feb 22 20:55:00 PST 2007; root:xnu-792.18.15~1/RELEASE_I386 i386 i386
Testing ctak under Larceny-r6rs
Compiling...
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
>
>
Running...
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
>
Words allocated: 265286850
Words reclaimed: 0
Elapsed time...: 4836 ms (User: 4824 ms; System: 10 ms)
Elapsed GC time: 369 ms (CPU: 363 in 1012 collections.)
****************************
Benchmarking Larceny-r6rs on Fri Jul 13 13:50:43 AST 2007 under Darwin Vesuvius.local 8.9.1 Darwin Kernel Version 8.9.1: Thu Feb 22 20:55:00 PST 2007; root:xnu-792.18.15~1/RELEASE_I386 i386 i386
Testing fibc under Larceny-r6rs
Compiling...
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
>
>
Running...
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
>
Words allocated: 192411298
Words reclaimed: 0
Elapsed time...: 4098 ms (User: 4087 ms; System: 9 ms)
Elapsed GC time: 280 ms (CPU: 270 in 734 collections.)
****************************
Benchmarking Larceny-r6rs on Fri Jul 13 13:53:01 AST 2007 under Darwin Vesuvius.local 8.9.1 Darwin Kernel Version 8.9.1: Thu Feb 22 20:55:00 PST 2007; root:xnu-792.18.15~1/RELEASE_I386 i386 i386
Testing mbrot under Larceny-r6rs
Compiling...
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
>
>
Running...
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
>
Words allocated: 551809361
Words reclaimed: 0
Elapsed time...: 2246 ms (User: 2230 ms; System: 15 ms)
Elapsed GC time: 753 ms (CPU: 762 in 2105 collections.)

View File

@ -4,8 +4,6 @@
* slatex needs char-alphabetic? * slatex needs char-alphabetic?
* compiler needs string-downcase * compiler needs string-downcase
* ctak crashes with a bus error.
* fibc crashes with a segfault.
* ntakl kinda slow * ntakl kinda slow
* string too slow * string too slow
* nbody does not work * nbody does not work

Binary file not shown.

View File

@ -192,6 +192,47 @@
(include "pass-specify-rep.ss") (include "pass-specify-rep.ss")
(define (insert-stack-overflow-check x)
(define who 'insert-stack-overflow-check)
(define (Tail x) #t)
(define (insert-check x)
(make-seq
(make-shortcut
(make-conditional
(make-primcall '<
(list esp (make-primcall 'mref (list pcr (make-constant 16)))))
(make-primcall 'interrupt '())
(make-primcall 'nop '()))
(make-forcall "ik_stack_overflow" '()))
x))
(define (ClambdaCase x)
(record-case x
[(clambda-case info body)
(make-clambda-case info (Main body))]))
;;;
(define (Clambda x)
(record-case x
[(clambda label case* free*)
(make-clambda label (map ClambdaCase case*) free*)]))
;;;
(define (Main x)
(if (Tail x)
(insert-check x)
x))
;;;
(define (Program x)
(record-case x
[(codes code* body)
(make-codes (map Clambda code*) (Main body))]))
;;;
(Program x))
(define parameter-registers '(%edi)) (define parameter-registers '(%edi))
(define return-value-register '%eax) (define return-value-register '%eax)
(define cp-register '%edi) (define cp-register '%edi)
@ -2737,6 +2778,7 @@
(let* ([x (introduce-primcalls x)] (let* ([x (introduce-primcalls x)]
[x (eliminate-fix x)] [x (eliminate-fix x)]
[x (specify-representation x)] [x (specify-representation x)]
[x (insert-stack-overflow-check x)]
[x (impose-calling-convention/evaluation-order x)] [x (impose-calling-convention/evaluation-order x)]
[x (time-it "frame" (lambda () (assign-frame-sizes x)))] [x (time-it "frame" (lambda () (assign-frame-sizes x)))]
[x (time-it "register" (lambda () (color-by-chaitin x)))] [x (time-it "register" (lambda () (color-by-chaitin x)))]