Ver Fonte

* tailrecursion optimization enabled for for sparc, i386, x86-64 and arm

git-svn-id: trunk@4860 -
florian há 19 anos atrás
pai
commit
e8d5dc4ab2

+ 2 - 2
compiler/arm/cpuinfo.pas

@@ -83,10 +83,10 @@ Const
    );
 
    { Supported optimizations, only used for information }
-   supported_optimizerswitches = [cs_opt_regvar,cs_opt_loopunroll];
+   supported_optimizerswitches = [cs_opt_regvar,cs_opt_loopunroll,cs_opt_tailrecursion];
 
    level1optimizerswitches = [cs_opt_level1];
-   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2,cs_opt_regvar,cs_opt_stackframe];
+   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2,cs_opt_regvar,cs_opt_stackframe,cs_opt_tailrecursion];
    level3optimizerswitches = level2optimizerswitches + [cs_opt_level3{,cs_opt_loopunroll}];
 
 Implementation

+ 2 - 2
compiler/i386/cpuinfo.pas

@@ -96,10 +96,10 @@ Const
 
    { Supported optimizations, only used for information }
    supported_optimizerswitches = [cs_opt_peephole,cs_opt_regvar,cs_opt_stackframe,
-     cs_opt_asmcse,cs_opt_loopunroll,cs_opt_uncertain];
+     cs_opt_asmcse,cs_opt_loopunroll,cs_opt_uncertain,cs_opt_tailrecursion];
 
    level1optimizerswitches = [cs_opt_level1,cs_opt_peephole];
-   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2,cs_opt_regvar,cs_opt_stackframe,cs_opt_asmcse];
+   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2,cs_opt_regvar,cs_opt_stackframe,cs_opt_asmcse,cs_opt_tailrecursion];
    level3optimizerswitches = level2optimizerswitches + [cs_opt_level3{,cs_opt_loopunroll}];
 
 Implementation

+ 2 - 2
compiler/sparc/cpuinfo.pas

@@ -71,10 +71,10 @@ const
    );
 
    { Supported optimizations, only used for information }
-   supported_optimizerswitches = [cs_opt_regvar,cs_opt_loopunroll];
+   supported_optimizerswitches = [cs_opt_regvar,cs_opt_loopunroll,cs_opt_tailrecursion];
 
    level1optimizerswitches = [cs_opt_level1];
-   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2,cs_opt_regvar];
+   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2,cs_opt_regvar,cs_opt_tailrecursion];
    level3optimizerswitches = level2optimizerswitches + [cs_opt_level3{,cs_opt_loopunroll}];
 
 implementation

+ 2 - 2
compiler/x86_64/cpuinfo.pas

@@ -80,10 +80,10 @@ Const
    sse_doublescalar : set of tfputype = [fpu_sse64];
 
    { Supported optimizations, only used for information }
-   supported_optimizerswitches = [cs_opt_regvar,cs_opt_loopunroll,cs_opt_stackframe];
+   supported_optimizerswitches = [cs_opt_regvar,cs_opt_loopunroll,cs_opt_stackframe,cs_opt_tailrecursion];
 
    level1optimizerswitches = [cs_opt_level1];
-   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2{,cs_opt_regvar},cs_opt_stackframe];
+   level2optimizerswitches = level1optimizerswitches + [cs_opt_level2{,cs_opt_regvar},cs_opt_stackframe,cs_opt_tailrecursion];
    level3optimizerswitches = level2optimizerswitches + [cs_opt_level3{,cs_opt_loopunroll}];
 
 Implementation