mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 02:51:37 +01:00 
			
		
		
		
	* Added optimization option cs_opt_unused_para. It is enabled for -O2 and higher. The parentfp optimization is tied to cs_opt_unused_para.
git-svn-id: trunk@45666 -
This commit is contained in:
		
							parent
							
								
									7bffafdf8b
								
							
						
					
					
						commit
						4e1e35aef5
					
				| @ -342,7 +342,8 @@ interface | |||||||
|          cs_opt_constant_propagate, |          cs_opt_constant_propagate, | ||||||
|          cs_opt_dead_store_eliminate, |          cs_opt_dead_store_eliminate, | ||||||
|          cs_opt_forcenostackframe, |          cs_opt_forcenostackframe, | ||||||
|          cs_opt_use_load_modify_store |          cs_opt_use_load_modify_store, | ||||||
|  |          cs_opt_unused_para | ||||||
|        ); |        ); | ||||||
|        toptimizerswitches = set of toptimizerswitch; |        toptimizerswitches = set of toptimizerswitch; | ||||||
| 
 | 
 | ||||||
| @ -400,7 +401,8 @@ interface | |||||||
|          'DFA','STRENGTH','SCHEDULE','AUTOINLINE','USEEBP','USERBP', |          'DFA','STRENGTH','SCHEDULE','AUTOINLINE','USEEBP','USERBP', | ||||||
|          'ORDERFIELDS','FASTMATH','DEADVALUES','REMOVEEMPTYPROCS', |          'ORDERFIELDS','FASTMATH','DEADVALUES','REMOVEEMPTYPROCS', | ||||||
|          'CONSTPROP', |          'CONSTPROP', | ||||||
|          'DEADSTORE','FORCENOSTACKFRAME','USELOADMODIFYSTORE' |          'DEADSTORE','FORCENOSTACKFRAME','USELOADMODIFYSTORE', | ||||||
|  |          'UNUSEDPARA' | ||||||
|        ); |        ); | ||||||
|        WPOptimizerSwitchStr : array [twpoptimizerswitch] of string[14] = ( |        WPOptimizerSwitchStr : array [twpoptimizerswitch] of string[14] = ( | ||||||
|          'DEVIRTCALLS','OPTVMTS','SYMBOLLIVENESS' |          'DEVIRTCALLS','OPTVMTS','SYMBOLLIVENESS' | ||||||
| @ -425,7 +427,7 @@ interface | |||||||
| 
 | 
 | ||||||
|        { switches being applied to all CPUs at the given level } |        { switches being applied to all CPUs at the given level } | ||||||
|        genericlevel1optimizerswitches = [cs_opt_level1,cs_opt_peephole]; |        genericlevel1optimizerswitches = [cs_opt_level1,cs_opt_peephole]; | ||||||
|        genericlevel2optimizerswitches = [cs_opt_level2,cs_opt_remove_empty_proc]; |        genericlevel2optimizerswitches = [cs_opt_level2,cs_opt_remove_empty_proc,cs_opt_unused_para]; | ||||||
|        genericlevel3optimizerswitches = [cs_opt_level3,cs_opt_constant_propagate,cs_opt_nodedfa{$ifndef llvm},cs_opt_use_load_modify_store{$endif},cs_opt_loopunroll]; |        genericlevel3optimizerswitches = [cs_opt_level3,cs_opt_constant_propagate,cs_opt_nodedfa{$ifndef llvm},cs_opt_use_load_modify_store{$endif},cs_opt_loopunroll]; | ||||||
|        genericlevel4optimizerswitches = [cs_opt_level4,cs_opt_reorder_fields,cs_opt_dead_values,cs_opt_fastmath]; |        genericlevel4optimizerswitches = [cs_opt_level4,cs_opt_reorder_fields,cs_opt_dead_values,cs_opt_fastmath]; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -841,13 +841,13 @@ implementation | |||||||
|         pd: tprocdef; |         pd: tprocdef; | ||||||
|       begin |       begin | ||||||
|         { The parameter can be optimized as unused when: |         { The parameter can be optimized as unused when: | ||||||
|             optimization level 1 and higher |             this optimization is enabled | ||||||
|             this is a direct call to a routine, not a procvar |             this is a direct call to a routine, not a procvar | ||||||
|             and the routine is not an exception filter |             and the routine is not an exception filter | ||||||
|             and the parameter is not used by the routine |             and the parameter is not used by the routine | ||||||
|             and implementation of the routine is already processed. |             and implementation of the routine is already processed. | ||||||
|         } |         } | ||||||
|         result:=(cs_opt_level1 in current_settings.optimizerswitches) and |         result:=(cs_opt_unused_para in current_settings.optimizerswitches) and | ||||||
|           assigned(parasym.Owner) and |           assigned(parasym.Owner) and | ||||||
|           (parasym.Owner.defowner.typ=procdef); |           (parasym.Owner.defowner.typ=procdef); | ||||||
|         if not result then |         if not result then | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 yury
						yury