diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-01-29 22:21:07 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-01-29 22:21:07 +0000 |
commit | 0ca06123284cbc329598fae8949d66095bfabfd7 (patch) | |
tree | bcfea2564393524382844914256732c188628b17 /compiler/arm | |
parent | e7838ddcc12f2f7d44ae073dfb9c19bff40b0188 (diff) | |
download | fpc-0ca06123284cbc329598fae8949d66095bfabfd7.tar.gz |
* disable cs_opt_regvar on all platforms when compiled for LLVM (LLVM does
that itself, our LLVM code generator can't handle it, and if it did then
afterwards we would have to spill 90% of those register variables again
to make them SSA)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@44062 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/arm')
-rw-r--r-- | compiler/arm/cpuinfo.pas | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/arm/cpuinfo.pas b/compiler/arm/cpuinfo.pas index 2c5127b809..73710f6fc7 100644 --- a/compiler/arm/cpuinfo.pas +++ b/compiler/arm/cpuinfo.pas @@ -1041,12 +1041,12 @@ Const genericlevel3optimizerswitches- { no need to write info about those } [cs_opt_level1,cs_opt_level2,cs_opt_level3]+ - [cs_opt_regvar,cs_opt_loopunroll,cs_opt_tailrecursion, + [{$ifndef llvm}cs_opt_regvar,{$endif}cs_opt_loopunroll,cs_opt_tailrecursion, cs_opt_stackframe,cs_opt_nodecse,cs_opt_reorder_fields,cs_opt_fastmath,cs_opt_forcenostackframe]; level1optimizerswitches = genericlevel1optimizerswitches; level2optimizerswitches = genericlevel2optimizerswitches + level1optimizerswitches + - [cs_opt_regvar,cs_opt_stackframe,cs_opt_tailrecursion,cs_opt_nodecse]; + [{$ifndef llvm}cs_opt_regvar,{$endif}cs_opt_stackframe,cs_opt_tailrecursion,cs_opt_nodecse]; level3optimizerswitches = genericlevel3optimizerswitches + level2optimizerswitches + [cs_opt_scheduler{,cs_opt_loopunroll}]; level4optimizerswitches = genericlevel4optimizerswitches + level3optimizerswitches + []; |