~ 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-info
Trap