~ chicken-core (chicken-5) 92548940accf74d9d3350604c6988b6b5cdcf19d
commit 92548940accf74d9d3350604c6988b6b5cdcf19d Author: felix <felix@call-with-current-continuation.org> AuthorDate: Thu Sep 9 02:56:57 2010 -0400 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Thu Sep 9 02:56:57 2010 -0400 -O2 enables unboxing, docd unsafe-specialized-arithmetic decl diff --git a/chicken.scm b/chicken.scm index a2aa4fa4..441bd072 100644 --- a/chicken.scm +++ b/chicken.scm @@ -85,7 +85,7 @@ (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 diff --git a/manual/Declarations b/manual/Declarations index cc172cde..8805f91f 100644 --- a/manual/Declarations +++ b/manual/Declarations @@ -380,6 +380,18 @@ expressions are evaluated before A's. Furthermore, the used symbols are registered as features during compile-time, so {{cond-expand}} knows about them. + +=== unsafe-specialized-arithmetic + + [declaration specifier] (unsafe-specialized-arithmetic) + +Assume specialized arithmetic operations like {{fp+}}, {{fpsin}}, etc. +are always called with arguments of correct type and perform +unboxing of intermediate results if possible and if the {{-unboxing}} +compiler-option has been enabled (done by default on optimization +levels 2 and higher). + + --- Previous: [[Modules]] diff --git a/manual/Using the compiler b/manual/Using the compiler index 952cb7ec..8609467f 100644 --- a/manual/Using the compiler +++ b/manual/Using the compiler @@ -157,7 +157,7 @@ the source text should be read from standard input. -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 -inline-global + -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 -lambda-lift -disable-interrupts -no-trace -no-lambda-infoTrap