~ chicken-core (chicken-5) 17f79a6647636b0ddfe5bc3302af2cb844f34792
commit 17f79a6647636b0ddfe5bc3302af2cb844f34792 Merge: dc683fc0 ad16d1de Author: felix <felix@call-with-current-continuation.org> AuthorDate: Wed Mar 23 07:09:54 2011 -0400 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Wed Mar 23 07:09:54 2011 -0400 resolved conflicts§ diff --cc batch-driver.scm index ba0280bf,0946f4ce..8ad64d8d --- a/batch-driver.scm +++ b/batch-driver.scm @@@ -540,42 -535,13 +541,15 @@@ (set! first-analysis #f) (set! db (analyze 'scrutiny node0)) (print-db "analysis" '|0| db 0) - (end-time "pre-analysis") + (end-time "pre-analysis (scrutiny)") (begin-time) (debugging 'p "performing scrutiny") - (scrutinize node0 db) + (scrutinize node0 db do-scrutinize do-specialize) (end-time "scrutiny") + (when do-specialize + (print-node "specialization" '|P| node0)) (set! first-analysis #t) ) ) - (when do-lambda-lifting - (begin-time) - (unless do-scrutinize ; no need to do analysis if already done - (set! first-analysis #f) ; (and not specialized) - (set! db (analyze 'lift node0)) - (print-db "analysis" '|0| db 0) - (end-time "pre-analysis (lambda-lift)")) - (begin-time) - (perform-lambda-lifting! node0 db) - (end-time "lambda lifting") - (print-node "lambda lifted" '|L| node0) - (set! first-analysis #t) ) - - ;; lambda-lifting - (when do-lambda-lifting - (begin-time) - (unless do-scrutinize ; no need to do analysis if already done above - (set! first-analysis #f) - (set! db (analyze 'lift node0)) - (print-db "analysis" '|0| db 0) - (end-time "pre-analysis (lambda-lift)")) - (begin-time) - (perform-lambda-lifting! node0 db) - (end-time "lambda lifting") - (print-node "lambda lifted" '|L| node0) - (set! first-analysis #t) ) - (set! ##sys#line-number-database #f) (set! constant-table #f) (set! inline-table #f) diff --cc c-platform.scm index 12e86254,cc1e8f48..b3546c49 --- a/c-platform.scm +++ b/c-platform.scm @@@ -84,8 -84,8 +84,8 @@@ check-syntax to-stdout no-usual-integrations case-insensitive no-lambda-info profile inline keep-shadowed-macros ignore-repository fixnum-arithmetic disable-interrupts optimize-leaf-routines - lambda-lift compile-syntax tag-pointers accumulate-profile + compile-syntax tag-pointers accumulate-profile - disable-stack-overflow-checks raw + disable-stack-overflow-checks raw specialize emit-external-prototypes-first release local inline-global analyze-only dynamic scrutinize no-argc-checks no-procedure-checks no-procedure-checks-for-toplevel-bindings module diff --cc chicken.scm index 8b35e7cc,fa65cbea..72c17a99 --- a/chicken.scm +++ b/chicken.scm @@@ -85,29 -85,23 +85,42 @@@ (set! options (cons 'optimize-leaf-routines options)) ) ((2) (set! options -- (cons* 'optimize-leaf-routines 'inline 'unboxing ++ (cons* 'optimize-leaf-routines ++ 'inline ++ 'unboxing options)) ) ((3) (set! options - (cons* 'optimize-leaf-routines 'inline 'inline-global - (cons* 'optimize-leaf-routines 'inline 'inline-global 'unboxing 'local ++ (cons* 'optimize-leaf-routines ++ 'inline ++ 'inline-global + 'unboxing 'local + 'specialize options) ) ) ((4) (set! options - (cons* 'optimize-leaf-routines 'inline 'inline-global - (cons* 'optimize-leaf-routines 'inline 'inline-global 'unboxing ++ (cons* 'optimize-leaf-routines ++ 'inline ++ 'inline-global + 'unboxing + 'specialize 'local 'unsafe options) ) ) (else (when (>= level 5) (set! options -- (cons* 'disable-interrupts 'no-trace 'unsafe 'block - 'optimize-leaf-routines 'lambda-lift - 'optimize-leaf-routines 'no-lambda-info - 'inline 'inline-global 'unboxing ++ (cons* 'disable-interrupts ++ 'no-trace ++ 'unsafe ++ 'block ++ 'optimize-leaf-routines + 'no-lambda-info + 'specialize - 'inline 'inline-global 'unboxing ++ 'optimize-leaf-routines ++ 'no-lambda-info ++ 'inline ++ 'inline-global ++ 'unboxing options) ) ) ) ) (loop (cdr rest)) ) ) ((eq? 'debug-level o) diff --cc compiler-namespace.scm index 6246570f,b158a2dd..de3869ad --- a/compiler-namespace.scm +++ b/compiler-namespace.scm @@@ -97,7 -97,7 +97,11 @@@ display-analysis-database display-line-number-database display-real-name-table ++<<<<<<< HEAD + do-lambda-lifting ++======= + do-scrutinize ++>>>>>>> experimental dump-defined-globals dump-global-refs dump-nodes diff --cc manual/Using the compiler index c42e25be,00d8c079..ea782275 --- a/manual/Using the compiler +++ b/manual/Using the compiler @@@ -50,11 -49,8 +49,9 @@@ the source text should be read from sta x display information about experimental features D when printing nodes, use node-tree output N show the real-name mapping table - 0 show database before lambda-lifting pass S show applications of compiler syntax T show expressions after converting to node tree + P show expressions after specialization - L show expressions after lambda-lifting U show expressions after unboxing M show syntax-/runtime-requirements 1 show source expressions @@@ -161,9 -155,9 +156,9 @@@ -optimize-level 0 is equivalent to -no-usual-integrations -no-compiler-syntax -optimize-level 1 is equivalent to -optimize-leaf-routines -optimize-level 2 is equivalent to -optimize-leaf-routines -inline -unboxing - -optimize-level 3 is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing - -optimize-level 4 is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing -unsafe - -optimize-level 5 is equivalent to -optimize-leaf-routines -block -inline -inline-global -unsafe -unboxing -disable-interrupts -no-trace -no-lambda-info + -optimize-level 3 is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing -specialize + -optimize-level 4 is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing -specialize -unsafe - -optimize-level 5 is equivalent to -optimize-leaf-routines -block -inline -inline-global -unboxing -specialize -unsafe -lambda-lift -disable-interrupts -no-trace -no-lambda-info ++ -optimize-level 5 is equivalent to -optimize-leaf-routines -block -inline -inline-global -unboxing -specialize -unsafe -disable-interrupts -no-trace -no-lambda-info ; -output-file FILENAME : Specifies the pathname of the generated C file. Default is {{FILENAME.c}}.Trap