~ chicken-core (chicken-5) 62fbbf0c10b76bac1079898796481bf8d602866c
commit 62fbbf0c10b76bac1079898796481bf8d602866c Author: unknown <felix@.(none)> AuthorDate: Thu Nov 5 09:52:10 2009 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Mon Nov 23 17:56:49 2009 +0100 removed benchmark mode, added -O5 Signed-off-by: felix <felix@call-with-current-continuation.org> diff --git a/chicken.scm b/chicken.scm index 9b2afd93..e3fffd7f 100644 --- a/chicken.scm +++ b/chicken.scm @@ -93,7 +93,13 @@ [(4) (set! options (cons* 'optimize-leaf-routines 'inline 'local 'unsafe options) ) ] - [else (compiler-warning 'usage "invalid optimization level ~S - ignored" (car rest))] ) + [else + (when (>= level 5) + (set! options + (cons* 'disable-interrupts 'no-trace 'unsafe 'block + 'optimize-leaf-routines 'lambda-lift 'no-lambda-info + 'inline + options) ) ) ] ) (loop (cdr rest)) ) ] [(eq? 'debug-level o) (let ([level (string->number (car rest))]) @@ -103,13 +109,6 @@ [(2) #f] [else (compiler-warning 'usage "invalid debug level ~S - ignored" (car rest))] ) (loop (cdr rest)) ) ] - [(eq? 'benchmark-mode o) - (set! options - (cons* 'fixnum-arithmetic 'disable-interrupts 'no-trace 'unsafe - 'optimize-leaf-routines 'block 'lambda-lift 'no-lambda-info - 'inline - options) ) - (loop rest) ] [(memq o valid-compiler-options) (loop rest)] [(memq o valid-compiler-options-with-argument) (if (pair? rest) diff --git a/csc.scm b/csc.scm index eafad0a3..ecd82cc1 100644 --- a/csc.scm +++ b/csc.scm @@ -124,7 +124,7 @@ (define-constant simple-options '(-explicit-use -no-trace -no-warnings -no-usual-integrations -optimize-leaf-routines -unsafe -block -disable-interrupts -fixnum-arithmetic -to-stdout -profile -raw -accumulate-profile - -check-syntax -case-insensitive -benchmark-mode -shared -compile-syntax -no-lambda-info + -check-syntax -case-insensitive -shared -compile-syntax -no-lambda-info -lambda-lift -dynamic -disable-stack-overflow-checks -local -emit-external-prototypes-first -inline -release -scrutinize -analyze-only -keep-shadowed-macros -inline-global -ignore-repository @@ -146,7 +146,6 @@ (-S "-scrutinize") (|-P| "-check-syntax") (|-V| "-version") - (|-Ob| "-benchmark-mode") (-f "-fixnum-arithmetic") (|-D| "-feature") (-i "-case-insensitive") @@ -343,7 +342,7 @@ Usage: csc FILENAME | OPTION ... Optimization options: - -O -O1 -O2 -O3 -O4 -optimize-level NUMBER + -O -O1 -O2 -O3 -O4 -O5 -optimize-level NUMBER enable certain sets of optimization options -optimize-leaf-routines enable leaf routine optimization -N -no-usual-integrations standard procedures may be redefined @@ -353,9 +352,6 @@ Usage: csc FILENAME | OPTION ... -b -block enable block-compilation -disable-interrupts disable interrupts in compiled code -f -fixnum-arithmetic assume all numbers are fixnums - -Ob -benchmark-mode equivalent to '-block -optimize-level 4 - -debug-level 0 -fixnum-arithmetic - -lambda-lift -inline -disable-interrupts' -lambda-lift perform lambda-lifting -unsafe-libraries link with unsafe runtime system -disable-stack-overflow-checks disables detection of stack-overflows @@ -639,6 +635,14 @@ EOF [(|-O2|) (set! rest (cons* "-optimize-level" "2" rest))] [(|-O3|) (set! rest (cons* "-optimize-level" "3" rest))] [(|-O4|) (set! rest (cons* "-optimize-level" "4" rest))] + [(|-O5|) + (set! rest (cons* "-optimize-level" "5" rest)) + (t-options "-unsafe-libraries") + (set! library-files unsafe-library-files) + (set! shared-library-files unsafe-shared-library-files) + (when (memq (build-platform) '(mingw32 cygwin gnu)) + (set! compile-options + (cons* "-O3" "-fomit-frame-pointer" compile-options)) ) ] [(-d0) (set! rest (cons* "-debug-level" "0" rest))] [(-d1) (set! rest (cons* "-debug-level" "1" rest))] [(-d2) (set! rest (cons* "-debug-level" "2" rest))] diff --git a/manual/Using the compiler b/manual/Using the compiler index 89dad9bb..2fdb5d77 100644 --- a/manual/Using the compiler +++ b/manual/Using the compiler @@ -26,8 +26,6 @@ Possible options are: ; -analyze-only : Stop compilation after first analysis pass. -; -benchmark-mode : Equivalent to {{-no-trace -no-lambda-info -optimize-level 4}} {{-fixnum-arithmetic -disable-interrupts -block -inline -lambda-lift}}. - ; -block : Enable block-compilation. When this option is specified, the compiler assumes that global variables are not modified outside this compilation-unit. Specifically, toplevel bindings are not seen by {{eval}} and unused toplevel bindings are removed. ; -case-insensitive : Enables the reader to read symbols case insensitive. The default is to read case sensitive (in violation of R5RS). This option registers the {{case-insensitive}} feature identifier. @@ -169,6 +167,7 @@ Possible options are: -optimize-level 2 is currently the same as -optimize-level 1 -inline -optimize-level 3 is equivalent to -optimize-leaf-routines -local -inline -optimize-level 4 is equivalent to -optimize-leaf-routines -local -inline -unsafe + -optimize-level 5 is equivalent to -optimize-leaf-routines -block -inline -unsafe -lambda-lift -disable-interrupts -no-trace -no-lambda-info ; -output-file FILENAME : Specifies the pathname of the generated C file. Default is {{FILENAME.c}}.Trap