mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 16:34:24 +01:00 
			
		
		
		
	codetools: identifier completion: $optimization directive
git-svn-id: trunk@50161 -
This commit is contained in:
		
							parent
							
								
									06c04debf6
								
							
						
					
					
						commit
						105b3e0652
					
				@ -2108,6 +2108,7 @@ var
 | 
			
		||||
  Directive: String;
 | 
			
		||||
  ms: TCompilerModeSwitch;
 | 
			
		||||
  cm: TCompilerMode;
 | 
			
		||||
  OptimizerSwitch: TOptimizerSwitch;
 | 
			
		||||
begin
 | 
			
		||||
  Result:=false;
 | 
			
		||||
  Line:=CursorPos.Code.GetLine(CursorPos.Y-1,false);
 | 
			
		||||
@ -2348,6 +2349,9 @@ begin
 | 
			
		||||
        end else if Directive='interfaces' then begin
 | 
			
		||||
          AddKeyWord('COM');
 | 
			
		||||
          AddKeyWord('CORBA');
 | 
			
		||||
        end else if Directive='optimization' then begin
 | 
			
		||||
          for OptimizerSwitch in TOptimizerSwitch do
 | 
			
		||||
            AddKeyWord(OptimizerSwitchStr[OptimizerSwitch]);
 | 
			
		||||
        end;
 | 
			
		||||
      end;
 | 
			
		||||
      exit;
 | 
			
		||||
 | 
			
		||||
@ -230,6 +230,33 @@ const
 | 
			
		||||
     cmsISOLike_unary_minus]
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
  // see fpcsrc/compiler/globtype.pas toptimizerswitch
 | 
			
		||||
  TOptimizerSwitch = (
 | 
			
		||||
    cs_opt_none,
 | 
			
		||||
    cs_opt_level1,cs_opt_level2,cs_opt_level3,cs_opt_level4,
 | 
			
		||||
    cs_opt_regvar,cs_opt_uncertain,cs_opt_size,cs_opt_stackframe,
 | 
			
		||||
    cs_opt_peephole,cs_opt_loopunroll,cs_opt_tailrecursion,cs_opt_nodecse,
 | 
			
		||||
    cs_opt_nodedfa,cs_opt_loopstrength,cs_opt_scheduler,cs_opt_autoinline,cs_useebp,cs_userbp,
 | 
			
		||||
    cs_opt_reorder_fields,cs_opt_fastmath,
 | 
			
		||||
    cs_opt_dead_values,
 | 
			
		||||
    cs_opt_remove_emtpy_proc,
 | 
			
		||||
    cs_opt_constant_propagate,
 | 
			
		||||
    cs_opt_dead_store_eliminate,
 | 
			
		||||
    cs_opt_forcenostackframe
 | 
			
		||||
  );
 | 
			
		||||
  toptimizerswitches = set of toptimizerswitch;
 | 
			
		||||
const
 | 
			
		||||
  OptimizerSwitchStr : array[toptimizerswitch] of string[17] = ('',
 | 
			
		||||
    'LEVEL1','LEVEL2','LEVEL3','LEVEL4',
 | 
			
		||||
    'REGVAR','UNCERTAIN','SIZE','STACKFRAME',
 | 
			
		||||
    'PEEPHOLE','LOOPUNROLL','TAILREC','CSE',
 | 
			
		||||
    'DFA','STRENGTH','SCHEDULE','AUTOINLINE','USEEBP','USERBP',
 | 
			
		||||
    'ORDERFIELDS','FASTMATH','DEADVALUES','REMOVEEMPTYPROCS',
 | 
			
		||||
    'CONSTPROP',
 | 
			
		||||
    'DEADSTORE','FORCENOSTACKFRAME'
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
  TPascalCompiler = (pcFPC, pcDelphi);
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user