Mercurial > hg > CbC > CbC_gcc
comparison gcc/tree-pass.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
1 /* Definitions for describing one tree-ssa optimization pass. | 1 /* Definitions for describing one tree-ssa optimization pass. |
2 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 | 2 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 |
3 Free Software Foundation, Inc. | 3 Free Software Foundation, Inc. |
4 Contributed by Richard Henderson <rth@redhat.com> | 4 Contributed by Richard Henderson <rth@redhat.com> |
5 | 5 |
6 This file is part of GCC. | 6 This file is part of GCC. |
7 | 7 |
36 TDI_original, /* dump each function before optimizing it */ | 36 TDI_original, /* dump each function before optimizing it */ |
37 TDI_generic, /* dump each function after genericizing it */ | 37 TDI_generic, /* dump each function after genericizing it */ |
38 TDI_nested, /* dump each function after unnesting it */ | 38 TDI_nested, /* dump each function after unnesting it */ |
39 TDI_vcg, /* create a VCG graph file for each | 39 TDI_vcg, /* create a VCG graph file for each |
40 function's flowgraph. */ | 40 function's flowgraph. */ |
41 TDI_ada, /* dump declarations in Ada syntax. */ | |
41 TDI_tree_all, /* enable all the GENERIC/GIMPLE dumps. */ | 42 TDI_tree_all, /* enable all the GENERIC/GIMPLE dumps. */ |
42 TDI_rtl_all, /* enable all the RTL dumps. */ | 43 TDI_rtl_all, /* enable all the RTL dumps. */ |
43 TDI_ipa_all, /* enable all the IPA dumps. */ | 44 TDI_ipa_all, /* enable all the IPA dumps. */ |
44 | 45 |
45 TDI_end | 46 TDI_end |
78 #define TDF_ASMNAME (1 << 18) /* display asm names of decls */ | 79 #define TDF_ASMNAME (1 << 18) /* display asm names of decls */ |
79 #define TDF_EH (1 << 19) /* display EH region number | 80 #define TDF_EH (1 << 19) /* display EH region number |
80 holding this gimple statement. */ | 81 holding this gimple statement. */ |
81 #define TDF_NOUID (1 << 20) /* omit UIDs from dumps. */ | 82 #define TDF_NOUID (1 << 20) /* omit UIDs from dumps. */ |
82 #define TDF_ALIAS (1 << 21) /* display alias information */ | 83 #define TDF_ALIAS (1 << 21) /* display alias information */ |
84 #define TDF_ENUMERATE_LOCALS (1 << 22) /* Enumerate locals by uid. */ | |
85 #define TDF_CSELIB (1 << 23) /* Dump cselib details. */ | |
83 | 86 |
84 | 87 |
85 /* In tree-dump.c */ | 88 /* In tree-dump.c */ |
86 | 89 |
87 extern char *get_dump_file_name (int); | 90 extern char *get_dump_file_name (int); |
270 #define TODO_update_ssa_no_phi (1 << 12) | 273 #define TODO_update_ssa_no_phi (1 << 12) |
271 | 274 |
272 /* Insert PHI nodes everywhere they are needed. No pruning of the | 275 /* Insert PHI nodes everywhere they are needed. No pruning of the |
273 IDF is done. This is used by passes that need the PHI nodes for | 276 IDF is done. This is used by passes that need the PHI nodes for |
274 O_j even if it means that some arguments will come from the default | 277 O_j even if it means that some arguments will come from the default |
275 definition of O_j's symbol (e.g., pass_linear_transform). | 278 definition of O_j's symbol. |
276 | 279 |
277 WARNING: If you need to use this flag, chances are that your pass | 280 WARNING: If you need to use this flag, chances are that your pass |
278 may be doing something wrong. Inserting PHI nodes for an old name | 281 may be doing something wrong. Inserting PHI nodes for an old name |
279 where not all edges carry a new replacement may lead to silent | 282 where not all edges carry a new replacement may lead to silent |
280 codegen errors or spurious uninitialized warnings. */ | 283 codegen errors or spurious uninitialized warnings. */ |
307 /* Rebuild aliasing info. */ | 310 /* Rebuild aliasing info. */ |
308 #define TODO_rebuild_alias (1 << 20) | 311 #define TODO_rebuild_alias (1 << 20) |
309 | 312 |
310 /* Rebuild the addressable-vars bitmap and do register promotion. */ | 313 /* Rebuild the addressable-vars bitmap and do register promotion. */ |
311 #define TODO_update_address_taken (1 << 21) | 314 #define TODO_update_address_taken (1 << 21) |
315 | |
316 /* Rebuild the callgraph edges. */ | |
317 #define TODO_rebuild_cgraph_edges (1 << 22) | |
312 | 318 |
313 /* Internally used in execute_function_todo(). */ | 319 /* Internally used in execute_function_todo(). */ |
314 #define TODO_update_ssa_any \ | 320 #define TODO_update_ssa_any \ |
315 (TODO_update_ssa \ | 321 (TODO_update_ssa \ |
316 | TODO_update_ssa_no_phi \ | 322 | TODO_update_ssa_no_phi \ |
349 extern struct gimple_opt_pass pass_refactor_eh; | 355 extern struct gimple_opt_pass pass_refactor_eh; |
350 extern struct gimple_opt_pass pass_lower_eh; | 356 extern struct gimple_opt_pass pass_lower_eh; |
351 extern struct gimple_opt_pass pass_lower_eh_dispatch; | 357 extern struct gimple_opt_pass pass_lower_eh_dispatch; |
352 extern struct gimple_opt_pass pass_lower_resx; | 358 extern struct gimple_opt_pass pass_lower_resx; |
353 extern struct gimple_opt_pass pass_build_cfg; | 359 extern struct gimple_opt_pass pass_build_cfg; |
354 extern struct gimple_opt_pass pass_tree_profile; | |
355 extern struct gimple_opt_pass pass_early_tree_profile; | 360 extern struct gimple_opt_pass pass_early_tree_profile; |
356 extern struct gimple_opt_pass pass_cleanup_cfg; | |
357 extern struct gimple_opt_pass pass_referenced_vars; | 361 extern struct gimple_opt_pass pass_referenced_vars; |
358 extern struct gimple_opt_pass pass_cleanup_eh; | 362 extern struct gimple_opt_pass pass_cleanup_eh; |
359 extern struct gimple_opt_pass pass_fixup_cfg; | |
360 extern struct gimple_opt_pass pass_sra; | 363 extern struct gimple_opt_pass pass_sra; |
361 extern struct gimple_opt_pass pass_sra_early; | 364 extern struct gimple_opt_pass pass_sra_early; |
362 extern struct gimple_opt_pass pass_early_ipa_sra; | 365 extern struct gimple_opt_pass pass_early_ipa_sra; |
363 extern struct gimple_opt_pass pass_tail_recursion; | 366 extern struct gimple_opt_pass pass_tail_recursion; |
364 extern struct gimple_opt_pass pass_tail_calls; | 367 extern struct gimple_opt_pass pass_tail_calls; |
369 extern struct gimple_opt_pass pass_predcom; | 372 extern struct gimple_opt_pass pass_predcom; |
370 extern struct gimple_opt_pass pass_iv_canon; | 373 extern struct gimple_opt_pass pass_iv_canon; |
371 extern struct gimple_opt_pass pass_scev_cprop; | 374 extern struct gimple_opt_pass pass_scev_cprop; |
372 extern struct gimple_opt_pass pass_empty_loop; | 375 extern struct gimple_opt_pass pass_empty_loop; |
373 extern struct gimple_opt_pass pass_record_bounds; | 376 extern struct gimple_opt_pass pass_record_bounds; |
377 extern struct gimple_opt_pass pass_graphite; | |
374 extern struct gimple_opt_pass pass_graphite_transforms; | 378 extern struct gimple_opt_pass pass_graphite_transforms; |
375 extern struct gimple_opt_pass pass_if_conversion; | 379 extern struct gimple_opt_pass pass_if_conversion; |
376 extern struct gimple_opt_pass pass_loop_distribution; | 380 extern struct gimple_opt_pass pass_loop_distribution; |
377 extern struct gimple_opt_pass pass_vectorize; | 381 extern struct gimple_opt_pass pass_vectorize; |
378 extern struct gimple_opt_pass pass_slp_vectorize; | 382 extern struct gimple_opt_pass pass_slp_vectorize; |
426 extern struct gimple_opt_pass pass_nrv; | 430 extern struct gimple_opt_pass pass_nrv; |
427 extern struct gimple_opt_pass pass_rename_ssa_copies; | 431 extern struct gimple_opt_pass pass_rename_ssa_copies; |
428 extern struct gimple_opt_pass pass_rest_of_compilation; | 432 extern struct gimple_opt_pass pass_rest_of_compilation; |
429 extern struct gimple_opt_pass pass_sink_code; | 433 extern struct gimple_opt_pass pass_sink_code; |
430 extern struct gimple_opt_pass pass_fre; | 434 extern struct gimple_opt_pass pass_fre; |
431 extern struct gimple_opt_pass pass_linear_transform; | |
432 extern struct gimple_opt_pass pass_check_data_deps; | 435 extern struct gimple_opt_pass pass_check_data_deps; |
433 extern struct gimple_opt_pass pass_copy_prop; | 436 extern struct gimple_opt_pass pass_copy_prop; |
434 extern struct gimple_opt_pass pass_vrp; | 437 extern struct gimple_opt_pass pass_vrp; |
435 extern struct gimple_opt_pass pass_uncprop; | 438 extern struct gimple_opt_pass pass_uncprop; |
436 extern struct gimple_opt_pass pass_return_slot; | 439 extern struct gimple_opt_pass pass_return_slot; |
439 extern struct gimple_opt_pass pass_remove_cgraph_callee_edges; | 442 extern struct gimple_opt_pass pass_remove_cgraph_callee_edges; |
440 extern struct gimple_opt_pass pass_build_cgraph_edges; | 443 extern struct gimple_opt_pass pass_build_cgraph_edges; |
441 extern struct gimple_opt_pass pass_local_pure_const; | 444 extern struct gimple_opt_pass pass_local_pure_const; |
442 extern struct gimple_opt_pass pass_tracer; | 445 extern struct gimple_opt_pass pass_tracer; |
443 extern struct gimple_opt_pass pass_warn_unused_result; | 446 extern struct gimple_opt_pass pass_warn_unused_result; |
447 extern struct gimple_opt_pass pass_split_functions; | |
448 extern struct gimple_opt_pass pass_feedback_split_functions; | |
444 | 449 |
445 /* IPA Passes */ | 450 /* IPA Passes */ |
451 extern struct simple_ipa_opt_pass pass_ipa_lower_emutls; | |
446 extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; | 452 extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; |
447 extern struct simple_ipa_opt_pass pass_ipa_early_inline; | 453 extern struct simple_ipa_opt_pass pass_ipa_tree_profile; |
448 | 454 |
449 extern struct simple_ipa_opt_pass pass_early_local_passes; | 455 extern struct simple_ipa_opt_pass pass_early_local_passes; |
450 | 456 |
451 extern struct ipa_opt_pass_d pass_ipa_whole_program_visibility; | 457 extern struct ipa_opt_pass_d pass_ipa_whole_program_visibility; |
452 extern struct ipa_opt_pass_d pass_ipa_lto_gimple_out; | 458 extern struct ipa_opt_pass_d pass_ipa_lto_gimple_out; |
461 extern struct simple_ipa_opt_pass pass_ipa_pta; | 467 extern struct simple_ipa_opt_pass pass_ipa_pta; |
462 extern struct simple_ipa_opt_pass pass_ipa_struct_reorg; | 468 extern struct simple_ipa_opt_pass pass_ipa_struct_reorg; |
463 extern struct ipa_opt_pass_d pass_ipa_lto_wpa_fixup; | 469 extern struct ipa_opt_pass_d pass_ipa_lto_wpa_fixup; |
464 extern struct ipa_opt_pass_d pass_ipa_lto_finish_out; | 470 extern struct ipa_opt_pass_d pass_ipa_lto_finish_out; |
465 extern struct ipa_opt_pass_d pass_ipa_profile; | 471 extern struct ipa_opt_pass_d pass_ipa_profile; |
472 extern struct ipa_opt_pass_d pass_ipa_cdtor_merge; | |
466 | 473 |
467 extern struct gimple_opt_pass pass_all_optimizations; | 474 extern struct gimple_opt_pass pass_all_optimizations; |
468 extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing; | 475 extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing; |
469 extern struct gimple_opt_pass pass_init_datastructures; | 476 extern struct gimple_opt_pass pass_init_datastructures; |
470 extern struct gimple_opt_pass pass_fixup_cfg; | 477 extern struct gimple_opt_pass pass_fixup_cfg; |
542 extern struct rtl_opt_pass pass_cprop_hardreg; | 549 extern struct rtl_opt_pass pass_cprop_hardreg; |
543 extern struct rtl_opt_pass pass_reorder_blocks; | 550 extern struct rtl_opt_pass pass_reorder_blocks; |
544 extern struct rtl_opt_pass pass_branch_target_load_optimize2; | 551 extern struct rtl_opt_pass pass_branch_target_load_optimize2; |
545 extern struct rtl_opt_pass pass_leaf_regs; | 552 extern struct rtl_opt_pass pass_leaf_regs; |
546 extern struct rtl_opt_pass pass_split_before_sched2; | 553 extern struct rtl_opt_pass pass_split_before_sched2; |
554 extern struct rtl_opt_pass pass_compare_elim_after_reload; | |
547 extern struct rtl_opt_pass pass_sched2; | 555 extern struct rtl_opt_pass pass_sched2; |
548 extern struct rtl_opt_pass pass_stack_regs; | 556 extern struct rtl_opt_pass pass_stack_regs; |
549 extern struct rtl_opt_pass pass_stack_regs_run; | 557 extern struct rtl_opt_pass pass_stack_regs_run; |
550 extern struct rtl_opt_pass pass_df_finish; | 558 extern struct rtl_opt_pass pass_df_finish; |
551 extern struct rtl_opt_pass pass_compute_alignments; | 559 extern struct rtl_opt_pass pass_compute_alignments; |