Browse Source

- disable -Ooregvar for the LLVM-based x86-64 code generator, as it causes
internalerrors there and fixing it doesn't make sense since LLVM will take
care of that anywaya

git-svn-id: trunk@35058 -

Jonas Maebe 8 years ago
parent
commit
2e9c6f35ae
2 changed files with 6 additions and 2 deletions
  1. 4 0
      compiler/dirparse.pas
  2. 2 2
      compiler/x86_64/cpuinfo.pas

+ 4 - 0
compiler/dirparse.pas

@@ -137,6 +137,10 @@ implementation
             end;
             end;
           if found then
           if found then
             begin
             begin
+{$ifdef llvm}
+             { -Ooregvar is not supported, llvm will take care of that }
+             if opt<>cs_opt_regvar then
+{$endif llvm}
               if doset then
               if doset then
                 include(a,opt)
                 include(a,opt)
               else
               else

+ 2 - 2
compiler/x86_64/cpuinfo.pas

@@ -138,12 +138,12 @@ Const
                                  genericlevel3optimizerswitches-
                                  genericlevel3optimizerswitches-
                                  { no need to write info about those }
                                  { no need to write info about those }
                                  [cs_opt_level1,cs_opt_level2,cs_opt_level3]+
                                  [cs_opt_level1,cs_opt_level2,cs_opt_level3]+
-                                 [cs_opt_regvar,cs_opt_loopunroll,cs_opt_stackframe,cs_userbp,
+                                 [{$ifndef llvm}cs_opt_regvar,{$endif}cs_opt_loopunroll,cs_opt_stackframe,cs_userbp,
 				  cs_opt_tailrecursion,cs_opt_nodecse,cs_opt_reorder_fields,cs_opt_fastmath];
 				  cs_opt_tailrecursion,cs_opt_nodecse,cs_opt_reorder_fields,cs_opt_fastmath];
 
 
    level1optimizerswitches = genericlevel1optimizerswitches;
    level1optimizerswitches = genericlevel1optimizerswitches;
    level2optimizerswitches = genericlevel2optimizerswitches + level1optimizerswitches + 
    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_loopunroll}];
    level3optimizerswitches = genericlevel3optimizerswitches + level2optimizerswitches + [{,cs_opt_loopunroll}];
    level4optimizerswitches = genericlevel4optimizerswitches + level3optimizerswitches + [cs_userbp];
    level4optimizerswitches = genericlevel4optimizerswitches + level3optimizerswitches + [cs_userbp];