codetools: identifier completion: $optimization directive

git-svn-id: trunk@50161 -
This commit is contained in:
mattias 2015-10-25 09:17:25 +00:00
parent 06c04debf6
commit 105b3e0652
2 changed files with 31 additions and 0 deletions

View File

@ -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;

View File

@ -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);