Browse Source

Improve inlining of generic routines (no matter whether they belong to a generic type or a generics themselves).

psub.pas, read_proc_body: 
  * also try to generate pending specializations before generating a routine's code so that these might be inlined as well

git-svn-id: trunk@33827 -
svenbarth 9 years ago
parent
commit
ac95dcd7fa
1 changed files with 6 additions and 1 deletions
  1. 6 1
      compiler/psub.pas

+ 6 - 1
compiler/psub.pas

@@ -2028,7 +2028,12 @@ implementation
         if not isnestedproc then
           begin
             if not(df_generic in current_procinfo.procdef.defoptions) then
-              tcgprocinfo(current_procinfo).generate_code_tree;
+              begin
+                { also generate the bodies for all previously done
+                  specializations so that we might inline them }
+                generate_specialization_procs;
+                tcgprocinfo(current_procinfo).generate_code_tree;
+              end;
           end;
 
         { reset _FAIL as _SELF normal }