summaryrefslogtreecommitdiff
path: root/compiler/arm
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-01-29 22:21:07 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-01-29 22:21:07 +0000
commit0ca06123284cbc329598fae8949d66095bfabfd7 (patch)
treebcfea2564393524382844914256732c188628b17 /compiler/arm
parente7838ddcc12f2f7d44ae073dfb9c19bff40b0188 (diff)
downloadfpc-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.pas4
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 + [];